Every aircraft with ADS-B Out broadcasts its position, altitude, and speed about once a second, in the clear, on 1090 MHz. Thousands of hobbyists around the country run little rooftop receivers that hear those broadcasts, and a volunteer network called adsb.lol pools them and publishes the whole thing — every flight, every day, free and public.
Two things make this source right for our purpose:
The raw feed is enormous — about 3 gigabytes per day for the whole country — so the first job was carving out just Colorado. Try it: see which days are already in → STATUS
Think of it as three sieves, each finer than the last:
One correction that surprised us into being careful: altimeter settings. Denver pressure swings move raw ADS-B altitudes by up to ±500 feet, so every altitude in the analysis is corrected with that hour’s local altimeter — otherwise “level at 9,000” detection would be garbage.
Here’s the key insight the whole analysis turns on. A rerouted flight usually flies its clearance perfectly. Since the DUN can’t be filed anymore, the reroute happens on the ground or from Kansas City/Albuquerque Center — by the time the airplane reaches Denver airspace, its track looks “clean.” So instead of asking “did the pilot wander off the route?” we ask two questions the reroute can’t hide from:
When we do compare flights against the charted procedures, we compare against the actual published routes from the FAA’s own navigation database — the same data your FMS loads, edition-matched to each flight’s date — and record the ratio of miles flown to miles published (TMR), plus the break fix where a flight left the procedure partway. That matters because the legacy arrivals into BJC are legally circuitous (LARKS to Falcon VOR and back is 67 miles for a 40-mile trip); measuring against straight-line distance would falsely flag every normal arrival, and the FAA would rightly dismiss it.
We also detect: holds (circling with no progress, published missed-approach holds excluded), altitude caps (pinned under the Class B shelves — both the Class B rings and the MVA floors are toggleable layers on the replay map), and — using the transponder — IFR cancellations: the moment a flight switches from its assigned code to 1200 is visible in the data, and we mark it on the map at the exact spot it happened. We’re careful with those: a visual approach can look similar, so cancellations are labeled likely, never proven. Try it: replay a flight against its published arrival → REPLAY
Try it: every threshold, live from the calibration file → HOW SCORING WORKS
Across ~530 days analyzed so far — roughly 150,000 arrivals (live totals on the dashboard):
Every number above traces to individual flights you can replay on the map against the exact published procedure — nothing is an aggregate you have to take on faith. (Exact figures move slightly as the remaining history loads; the dashboard always shows the current values.) The dashboard also splits deviation by transient vs local operators — visiting crews take the hit hardest. Try it: the replay list opens sorted by severity → REPLAY
The one thing the data can’t do alone is confirm it’s catching your events. The companion document (reports/QUESTIONS_working_group.md) lists what would sharpen it — the top three: dates and tail numbers from the form reports so we can verify the detector against known incidents, the group’s cost-per-hour figure to turn miles into dollars, and Heidi’s read on what the FAA responds to first.
Tools: the dashboard (one-page story), the replay map (any flight vs. its published arrival), and the data tracker — hover any ⓘ on screen for a plain-language explanation of what you’re looking at.