fid information fidelity measurement

How fast facts go stale

fid scores a stored fact by how long ago it was measured, using a half-life per type of information. Tested against four public datasets where the truth is known, the hand-picked half-lives were off by up to —×, and most facts decay toward a baseline rather than to zero.

Guessed half-lives against measured ones

Half-life here is the time until half of the stored facts are wrong. A company's CEO lasts —, not the 1 year guessed. A moving ship's position lasts —, not 4 hours. Log scale.

Every fact, scored on data the fit never saw

Each model is fitted on half of the companies, airports or ships and scored on the other half. Brier score is the mean squared error of a probability; lower is better, and the best in each row is bold. "Constant" ignores age entirely.

Brier score
Fact Data Observations Guess Measured Baseline Guess Decay to 0 To baseline Constant

Facts decay toward a baseline, not to zero

A week-old "the airport is VFR" is still right — of the time, because clear weather is the usual weather. fid's original formula sends every stale fact to 0. Adding a baseline b, the chance a stale fact is right anyway, cuts the largest gap from — to —. Where nothing is right by chance, as with a former CEO, the fit finds b = —.

Airport flight category unchanged

VFR, MVFR, IFR or LIFR, 10 US airports, a full year of reports

Airport still IFR or worse

Only reports of low ceiling or visibility

Same person still CEO

Wikidata, yearly snapshots 2004–2016

Half-life depends on what the thing is doing

Ship still within 1 km of its reported position

Cargo ships and tankers in US waters on six days spread through 2023, from AIS. Same ships, same days: a moving ship's position is half wrong after —, while — of moored or anchored ships are still within 1 km after 12 hours. Square-root time scale.

Some facts come back

Airport temperature still within ±2 °F

A reading 24 hours old is right — of the time; one 12 hours old, —. The daily cycle brings it back, and no decay model can express that.

Flight legs are not independent steps

— US flights in 2024. fid multiplies a fixed noise per processing step, which assumes the steps are independent. For an aircraft's legs through a day, they are not: what happened on the last leg matters far more than the average.

On time, by what the previous leg did

Arrived within 15 minutes of schedule, not cancelled or diverted

On time, by scheduled departure

Delays build through the day

On time, by month

The same schedule is a weaker source in some months than others

On time, by airline

One score per source hides a spread from — to —. Carrier codes as reported to the DOT.

Sources: Wikidata CEO statements (P169) with start and end dates; routine METAR reports from the Iowa Environmental Mesonet ASOS archive; the Bureau of Transportation Statistics on-time database; NOAA MarineCadastre AIS. "Still correct" thresholds (±2 °F, 1 km, 15 minutes) are choices, and the half-lives scale with them. Six days of ship data, a year of flights, ten airports.

Code and full tables: calibration/ in the fid repository.

Right now: airport reports going stale

The latest routine weather report (METAR) from each airport, scored by fid as it ages, using the half-lives and baselines measured below and a calibrated instrument as the source (0.97). Scores fall every second until the next report lands, usually once an hour. The floor is 0.75, fid's example threshold for safety decisions.

Loading reports from the Iowa Environmental Mesonet…