Skip to the log
The Wire Testthe.net.im

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.

Screenshot of the labs.llc Airports page at desktop width: the headline 'Which airports are delayed. Right now, in the FAA's words.' followed by two paragraphs describing the FAA's status document, the board and its relay.
EXHIBIT AThe top of the page as the local copy of build 537 served it for this log, at 1280 × 800.

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

Seconds for our own probes; rival pages were logged to the minute.

Every probe in run 06, in time order, with what came back
#TimeProbeReturned
01Loaded /airports/ from the local copyHTTP 200, 54,688 bytes.
02Called faa-proxy.phpHTTP 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.
03Called the relay with ?u=https://example.comHTTP 400: 'This relay takes no parameters.'
04Counted the page's airport register119 airports with code, name, place and rounded position.
05Looked up the FAA's NAS Status siterival pagePages for a map, active airport events and active en route events. The site draws itself by script; a plain fetch saw only its heading.
06Read FlightAware's MiseryMaprival pageDelays and cancellations by airport on a misery-to-on-time scale; time-range filter.

Findings

The lengths it goes to

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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

Rival 01read

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.
Rival 02read

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

  1. Programmes, not flights: no cancellation counts or flight-level delays, which MiseryMap maps airport by airport.
  2. Airport events only; the en route events listed on the FAA's own site are not shown.
  3. US-centric: the register covers US airports plus the Canadian fields the FAA's document names.
  4. 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.