Track record
Every forecast is logged the moment it is made, hash-chained, and sealed daily to Bitcoin via OpenTimestamps. Nothing here can be edited after the fact.
Headline accuracy uses only forecasts written live (provenance=live) from the record start date onward. Rows captured before launch are shown separately as pre‑launch history and never counted in a headline number.
Two scoreboards — never blended
A day-ahead forecast is a genuine prediction. A live-confirmation read is taken at/after the extreme occurs and includes same-day observation — it is not forecast skill. We report them separately.
| City | Slot | Hit rate | Signed err (°F) | MAE | vs persistence | vs climatology | n |
|---|---|---|---|---|---|---|---|
| Populated once the record starts (see banner). Slots: eve_before, morning_of, low_eve_before. Bin bounds come from the venue ladder. CIs shown with the note that consecutive days are autocorrelated (effective n < n). | |||||||
| City | Slot | Hit rate | Signed err (°F) | MAE | n |
|---|---|---|---|---|---|
| Slots: pre_entry, low_pre_dawn. Reported apart from forecast skill because wd_center carries the day-0 live-METAR override. | |||||
Official snapshot rule
The graded snapshot for a slot is the first snapshot captured inside that slot's local time window. Metrics: hit-rate (argmax bin == venue winning bin), signed error and MAE vs the venue-settled value. No PMF-based calibration (Brier/log-loss) until the daemon's real PMF is logged.
Verify the seal
Each day we publish a seal file committing the head hash + row count of every chain, Bitcoin-anchored. Download seal_<day>.txt(.ots) and run ots verify seal_<day>.txt.ots. See Methodology → Verify it yourself for the row-level script.