How FlightQueue measures airport wait times
This page documents our data sources, how security predictions are built, how often numbers refresh, how confidence labels are assigned, and how we backtest accuracy against real readings — using the same ml_training_pairs and prediction_accuracy tables that power calibration in production. See also our coverage map for which airports sit in each tier.
Data sources by tier
Live official feeds
245 airports worldwide have official wait-time data that airports and their queue-measurement providers publish online, checked automatically. These power the "Live" badge, /tsa-wait-times, and ground-truth archiving into ml_training_pairs.
Typical refresh: scheduled rechecks on each feed (cache up to 50 minutes; varies by source).
Enhanced predictions
200+ major US hubs and global airports without a dedicated live API still receive ML-assisted security forecasts built from historical patterns, FAA delay context, flight density, crowd reports, and per-airport calibration factors stored after each retrain run (ml_retrain_runs).
Predictions refresh when you load an airport page or call the API.
Directory & baseline estimates
Remaining airports in our 8,700+ directory use conservative statistical baselines (median check-in/security times, seasonal factors). These are labeled as estimates, not live readings, and carry lower confidence scores.
How predictions are made
- Rules engine — hour-of-day, day-of-week, airport profile, weather, and FAA delay multipliers produce a baseline wait (
rules_predin snapshots). - Live overlay — when a fresh official reading exists, it anchors or replaces the model for that checkpoint until the feed goes stale.
- Crowd & feedback — validated traveler reports adjust short-term bias; outcomes land in
prediction_accuracyfor calibration. - ML shadow model — an optional gradient-boosted model trains on
ml_training_pairs; airports graduate when shadow MAE beats the rules engine inml_retrain_runs.
Freshness & confidence
Each airport page shows the timestamp of the underlying reading when we have one. Predictions without a live feed display the model run time. Confidence is a 0–1 score from the estimation engine; we map it to user-facing bands:
- High — score > 0.8 (low uncertainty)
- Medium — 0.5–0.8
- Low — below 0.5 or thin sample size at the airport
We never label fallback baselines as "Live · High confidence." If you only see a band (Fast / Moderate / Busy) without minutes, you are on the free tier or the airport lacks a fresh feed.
Accuracy backtest (real production data)
Rolling 90-day window computed 2026-10-29. Ground-truth pairs come from archived snapshot ↔ official feed matches (ml_training_pairs). Traveler feedback uses prediction_accuracy. When sample sizes are small, we show the count honestly rather than extrapolating.
Official feed ground truth (rules prediction vs measured queue)
| Tier | Samples | MAE (min) | Within 5 min | Within 10 min | Within 15 min |
|---|---|---|---|---|---|
| All airports | 5,079 | 10.8 | 31% | 61% | 80% |
| Live official feeds | 5,079 | 10.8 | 31% | 61% | 80% |
| Enhanced predictions | 0 | — | — | — | — |
| Directory & estimates | 0 | — | — | — | — |
Traveler feedback (shown wait vs reported actual)
| Tier | Samples | MAE (min) | Within 5 min | Within 10 min | Within 15 min |
|---|---|---|---|---|---|
| All airports | 93 | 28.8 | 34% | 52% | 62% |
| Live official feeds | 63 | 23 | 40% | 54% | 67% |
| Enhanced predictions | 3 | 11.3 | 0% | 67% | 67% |
| Directory & estimates | 27 | 44.5 | 26% | 44% | 52% |
Airports with the most feed-matched samples
| Airport | Tier | n | MAE | Within 10 min |
|---|---|---|---|---|
| ORD | Live official feeds | 710 | 20.7 min | 34% |
| MXP | Live official feeds | 616 | 8.1 min | 76% |
| LIS | Live official feeds | 525 | 9.2 min | 65% |
| ATH | Live official feeds | 439 | 12.2 min | 30% |
| LTN | Live official feeds | 384 | 5.1 min | 91% |
| VIE | Live official feeds | 322 | 8.4 min | 71% |
| BRS | Live official feeds | 315 | 7.3 min | 82% |
| LBA | Live official feeds | 247 | 15.3 min | 28% |
| SJU | Live official feeds | 205 | 11.6 min | 54% |
| PRG | Live official feeds | 180 | 5.2 min | 84% |
| MEL | Live official feeds | 106 | 9 min | 80% |
| CGN | Live official feeds | 105 | 15.3 min | 24% |
Questions
For press or data-licensing questions, email press@flightqueue.com. Compare live US security waits on /tsa-wait-times or read how FlightQueue stacks up to MyTSA on our comparison page.