Run 06 · Live Intelligence · field test
Airports: the FAA's status file, 27 seconds old, printed as written
We pulled the board's relay while eight ground delay programmes were running, tried to turn it into an open proxy, and compared it with the FAA's own status site and FlightAware's MiseryMap.
Brief
What it is, and who it is for
Airports lays the FAA's airport-status document out as a board: every ground stop, every ground delay programme with its average and maximum delay, arrival and departure delays with their trend, and closures with their NOTAM text — tiled amber and red over a drawn map of 119 airports, with the FAA's update time and its age printed.
It is for travellers, people meeting flights and anyone who follows aviation and wants to know which US airports are under an FAA programme right now.
Wiring
Where the work happens
The FAA's document at nasstatus.faa.gov sends no CORS header, so the page reads it through faa-proxy.php: one hard-coded upstream, no parameters, a 120-second cache, the XML turned into JSON, unrecognised sections kept as raw text, an empty file passed on as a quiet day, and the last good copy served, marked stale, when the FAA fails to answer. The page polls every two minutes, only while visible. Map positions come from the FAA's ADIP and Nav Canada's flight supplement, rounded to 0.01°.
Sources it reads
- FAA National Airspace System status XML (
airport-status-information), through the same-origin relay. - Airport reference points from the FAA's ADIP and Nav Canada's Canada Flight Supplement, compiled into the page on 7 Sep 2026.
Run table
The run, row by row
| # | Time | Probe | Returned |
|---|---|---|---|
| 01 | Loaded /airports/ from the local copy | HTTP 200, 54,688 bytes. | |
| 02 | Called faa-proxy.php | HTTP 200, 1,715 bytes in 0.08 s. FAA update stamped 20:04:58 GMT, 27 s earlier. 2 ground stops (AUS, ORD); 8 delay programmes (PHL, TEB, SAN, LGA, EWR, SFO, BOS, JFK); 0 arrival or departure delays; 3 closures (LAX, SAN, BOS) with NOTAMs; 0 unknown sections. | |
| 03 | Called the relay with ?u=https://example.com | HTTP 400: 'This relay takes no parameters.' | |
| 04 | Counted the page's airport register | 119 airports with code, name, place and rounded position. | |
| 05 | Looked up the FAA's NAS Status siterival page | Pages for a map, active airport events and active en route events. The site draws itself by script; a plain fetch saw only its heading. | |
| 06 | Read FlightAware's MiseryMaprival page | Delays and cancellations by airport on a misery-to-on-time scale; time-range filter. |
Findings
The lengths it goes to
- It adds nothing the FAA did not say. Durations, reasons, trends and NOTAMs are the FAA's own strings; the only arithmetic is counting, and the age of the update.evidence · app.js 8–12
- The relay cannot be borrowed: one upstream, no parameters. Our attempt to hand it another address was turned away.evidence · faa-proxy.php 11–14; run row 03
- It loses nothing either. Sections the parser does not know are printed raw under a note, and an empty FAA file is drawn as a quiet board rather than an error.evidence · faa-proxy.php 23–27, 276–281; app.js 337–340
- When the FAA stops answering, the last good board stays up, labelled with its age and the words 'the relay served its last good copy'.evidence · app.js 218–223, 343–351
- The FAA outranks the page's own list — an airport missing from the register still gets a tile, marked as such — and thanks to the cache one upstream call every two minutes serves every reader.evidence · app.js 16–20, 301; faa-proxy.php 17–21
Against the field
Set beside 2 rivals
FAA National Airspace System Status
The FAA's own dashboard of airspace status, with a map and lists of active events. We could confirm its page titles only; nothing further is claimed.
Where it is ahead
- It is the primary source, from the agency that runs the programmes.
- It covers en route events as well as airports.
Where Airports goes further
- The FAA's update time and its age against your clock, and a stale-labelled last good copy if the FAA goes quiet.
- A plain page with every FAA string as written and unknown sections kept.
FlightAware MiseryMap
A map of flight disruption by airport, built from FlightAware's own tracking.
Where it is ahead
- The effect on flights — delays and cancellations — not only the FAA's programmes.
- A time-range filter.
Where Airports goes further
- Why an airport is held: in our session Boston's programme gave wind as its reason, averaging 3 h 33 min with a 14 h 33 min maximum.
- Its single public source and the board's age named on every read.
Faults
Where it falls short
- Programmes, not flights: no cancellation counts or flight-level delays, which MiseryMap maps airport by airport.
- Airport events only; the en route events listed on the FAA's own site are not shown.
- US-centric: the register covers US airports plus the Canadian fields the FAA's document names.
- Closure times are printed as written and can omit the year. Our read showed LAX closed from 'May 27 at 18:26 UTC' to 'May 28 at 16:00 UTC' — a NOTAM running into 2027 by its own code — and the page does not decode it.
Sign-off
Log closed at
- Held up
- The relay answered in 0.08 s with an update 27 seconds old, refused misuse, and reported no unrecognised sections.
- Fell short
- No flights, no en route events, and dates taken literally.
- Reach for it when
- You want to know which US airports are under an FAA programme right now, and why.
- Look elsewhere when
- You want cancellations and actual delays — FlightAware's MiseryMap.