How Turbulence works

Pick a flight, and the app works out which aeroplane you're likely on, how it usually flies the route, what the air will be doing along the way, and how safe the whole thing is – all from free or metered public data.

Where the data comes from

SourceWhat it providesHow it's updatedLimits that shape the appCost
AeroDataBox via RapidAPIThe departures board: what's leaving your airport in the next 3 hours or tomorrow – flight numbers, destinations, times, status, gate, and sometimes the aircraft registration.Live, per request.Free tier ≈ 700 calls a month; one call per board view (two for "tomorrow"). Not cached.Free tier (key)
OpenSky NetworkHistoric flights per airport and per aircraft (who flew the route in the last 7–30 days), flown tracks (position and altitude), and live positions of candidate aircraft.Flight lists are built overnight, so today never appears; live positions are real-time.Track downloads are capped at roughly 10 a day – the app fetches tracks for the newest legs of your flight first, stops cleanly at the limit and keeps everything on disk, so coverage grows day by day.Free (account)
FlightRadar24 APIFlight history by flight number and by registration (with airports and flight numbers OpenSky lacks), and full tracks with ground speed – used when OpenSky has gaps.Live; history back 14 days.Metered credits: about 27 per history page (20 flights) and 40 per track. The app makes one history call per aircraft and at most two track downloads per new route, all cached permanently.Paid (credits)
Open-Meteo GFS modelUpper-air wind and temperature at seven pressure levels along the route – the basis of the wind/temperature and turbulence forecasts.New model run every 6 hours, hourly steps, 16 days ahead.Free for non-commercial use with a per-minute budget weighted by locations and variables; results cached for 3 hours.Free, no key
Aviation Weather Center NOAA, aviationweather.govLive turbulence SIGMETs worldwide; airport METARs and TAFs; pilot reports used to calibrate the turbulence scale.SIGMETs as issued (valid up to 4 h); METAR every 30 min; TAF every 6 h.100 requests a minute, custom User-Agent required; cached 5–20 minutes.Free, no key
adsbdb.com / hexdb.ioAircraft registry: transponder code → registration, type, operator, country, photo link.Static registry data.None to speak of; cached permanently.Free, no key
planespotters.netA photo of the actual airframe, with photographer credit.As uploaded by photographers.Requires a contactable User-Agent and a credit link; cached 30 days.Free, no key
FlightFinder himaxym.comSafety corpus: 164,000 accident and incident records merged from 130 investigation authorities, plus type-family statistics.Periodic merges of the source registries.100 requests a day per IP without a key; one call per airline, cached 24 h. Searchable by airline but not by airport.Free tier (paid tiers exist)
Bundled datasetsAirports and runways (OurAirports, public domain), airframe build/registration dates (OpenSky aircraft database, 260k airframes), curated aircraft type facts.Shipped with the app; refreshed by hand.None.Free
CARTO / OpenStreetMapMap tiles.Continuous.Fair use.Free

How a request flows

Rounded boxes are things this app does; rectangles are calls to outside services. Grey boxes are results kept on disk so the next visit is faster.

flowchart TD
    classDef ext fill:#e4eefb,stroke:#5b8def,stroke-width:1.5px,color:#1f2f4d
    classDef int fill:#fff7e0,stroke:#FFBA00,stroke-width:1.5px,color:#222,rx:10,ry:10
    classDef cache fill:#eceff3,stroke:#8a94a6,stroke-dasharray:4 3,color:#333
    classDef paid fill:#fdecec,stroke:#c0392b,stroke-width:1.5px,color:#5a1a1a

    U([You: pick airports and a flight]):::int --> ADB[AeroDataBox: departures board]:::ext
    ADB --> PICK([Pick your flight: number, callsign, scheduled time]):::int
    PICK --> HIST([Find recent flights of this number]):::int
    HIST --> OSD[OpenSky: departures from origin, last 7-30 days]:::ext
    HIST --> FR24S[FlightRadar24: flights by number]:::paid
    OSD --> MATCH([Match legs to your flight: callsign, else airline + time]):::int
    FR24S --> MATCH
    MATCH --> REG[adsbdb / hexdb: registration, type, operator]:::ext
    MATCH --> TRK[OpenSky: flown tracks]:::ext
    MATCH --> FR24T[FlightRadar24: tracks with speed]:::paid
    REG --> GUESS([Which aircraft today? board reg, single tail, or nearest by live position]):::int
    GUESS --> LIVE[OpenSky: live positions of candidates]:::ext
    GUESS --> PHOTO[planespotters: photo]:::ext
    GUESS --> AGE[(Airframe database: age)]:::cache
    GUESS --> MOVE[FlightRadar24: where this aircraft has been]:::paid
    TRK --> ROUTE([Expected route per minute: latest flown track, else great circle]):::int
    FR24T --> ROUTE
    ROUTE --> WX[Open-Meteo: GFS wind and temperature at 7 levels]:::ext
    WX --> WIND([Wind, head/tailwind, temperature along the route]):::int
    WX --> TURB([Turbulence: Ellrod index + Richardson number on a 55 km stencil, mapped to EDR bands]):::int
    CAL[(PIREP calibration table)]:::cache --> TURB
    ROUTE --> SIG[AWC: live turbulence SIGMETs]:::ext
    SIG --> HIT([Route within 25 km, altitude in band, valid at the time]):::int
    PICK --> APW[AWC: METAR and TAF for both airports]:::ext
    APW --> FLAGS([Runway crosswinds and plain-English safety flags]):::int
    GUESS --> SAFE[FlightFinder: airline accident and incident records]:::ext
    SAFE --> SAFE4([Four views: this aircraft, airline, departure airport, arrival airport]):::int
    WIND --> PAGE([Route page: tabs, charts, map]):::int
    TURB --> PAGE
    HIT --> PAGE
    FLAGS --> PAGE
    SAFE4 --> PAGE
    PHOTO --> PAGE
    MOVE --> PAGE
    DISK[(On-disk cache of every response)]:::cache -.-> OSD
    DISK -.-> TRK
    DISK -.-> WX
    DISK -.-> SAFE
        

What runs in the background

Once an hour the app scores recent US pilot turbulence reports with the same shear-and-stability maths it uses on your route, and rebuilds the table that maps those numbers onto the EDR scale. That's the Calibration page; it makes the turbulence forecast honest over time instead of relying on textbook thresholds.

What it is not

Not an operational briefing. Weather models resolve 25–50 km, the turbulence scale is derived rather than the official WAFS product, and the aircraft is an educated guess until the departures board names it. Use it to understand your flight, and treat the airline's own information as authoritative.