Show the working.
Always.
Threshold makes a verdict every time data refreshes. This page is the engine, documented in pilot-facing language. Every rule below is auditable from the app. Tap any metric on a verdict screen and Threshold shows you the exact line of METAR or TAF that produced it, with a link back to the rule on this page.
The three states
Cloudbase, visibility, wind, crosswind, and gust all comfortably within the preset you chose on the ground. No BECMG, FM, or PROB40 group in the next 2 hours that would push any metric over.
Marginal now or marginal soon. Threshold names the metric that triggered HOLD and the time of the predicted change so you can plan around it.
The line you drew, crossed. Threshold names the metric, the observed value, and the limit. The decision is yours; the data is honest.
Edge cases (the unglamorous half)
Most of the engine is straightforward. The interesting work is in the edge cases. Every one of these is documented below, and every one is reachable from the verdict screen with one tap.
Stale data
METAR under 1 hour old: compute normally. 1 to 3 hours old: compute, but render with a prominent STALE · {N}m tag. Over 3 hours old: render ? (unknown). Never silently use ancient data.
Missing metric
If any of the 5 minima inputs cannot be parsed from the latest METAR, Threshold renders ? and labels which input is missing. Never infer.
TAF probability handling
Inside the 2-hour look-ahead window:
- BECMG group: treated as definite at the midpoint of its transition window.
- TEMPO that violates minima: HOLD.
- PROB40 that violates minima: HOLD.
- PROB30: ignored.
No nearby feed
If your nearest licensed airfield has no METAR/TAF, Threshold falls back to the nearest aerodrome with data within 15 NM, with the source labelled prominently (e.g. “Source: EGLL · 12 nm SE”). Beyond 15 NM, Threshold renders no nearby data. Never invent a verdict.
Active runway selection
Crosswind is computed against the runway with the highest headwind component for the reported wind. The chosen runway is shown alongside the crosswind value. Pro users may override per-airfield.
METAR amendments
AMD and SPECI replace the cached METAR if their issue time is later. The verdict re-computes immediately and a flip notification fires if the new verdict differs from the old.
Tie-break for “nearest”
When two airfields are equidistant: prefer the one with a current METAR feed. If both have one, alphabetical ICAO wins.
Movement debouncing
“Nearest airfield” recomputes only after 1 km of device movement or 5 minutes elapsed, whichever first. Stops the active-airfield from flickering as you drive.
Personal minima: the contract
Threshold doesn't decide. You decide, once, on the ground, calm. Five sliders. Four presets. The app enforces what you said when no one was rushing you. If you nudge a limit while a verdict is HOLD or NO, Threshold notices and surfaces it in Settings. Not a banner. Not a notification. A single quiet row that says: “you raised this limit while the verdict was HOLD. Was that the call you wanted?”
500 to 5,000 ft AGL. Checked against METAR BKN/OVC ceiling.
1.5 to 10 km. Checked against METAR visibility.
5 to 40 kt. Checked against METAR wind speed.
0 to 25 kt. Computed against the active runway.
5 to 40 kt. Checked against METAR gust.
Sources
Threshold reads from public aviation weather feeds. We never invent or interpolate values.
- METAR aviationweather.gov global ADDS feed; EUROCONTROL B2B for UK and EU
- TAF same as above, every 6 hours plus amendments
- AIRFIELDS OurAirports static database, 928 UK and EU entries, refreshed per release
- RUNWAYS Same source. Bearings, designators, and surface types for crosswind computation.
Last reviewed 2026-05-13. Versioned with the app. Open /press for the press kit. Back to Threshold.