Forecast accuracy
How far each forecast landed from the value the market settled on.
Day-ahead (D1) at 24 Kalshi stations (NWS climate report): our market forecast (the station's NBM) missed the settled high by 2.0 °F on average, the blend median by 2.8 °F; the low by 2.1 and 2.2 °F (same 22,358 station-days, backfill period). There the blend is the median of the archived models (GFS, AIFS, ENS, and NBM where it covers); the live blend's own record publishes after its first 30 days.
Kalshi · NWS climate report · °F Backfill · 24 stations
Decision days Apr 1, 2024 to Oct 22, 2026, rebuilt from archived runs; the blend here is the median of the archived models (GFS, AIFS, ENS, and NBM where it covers).
| Highs, MAE °F (vs blend) | D1 | D2 | D3 | Bias D1 | Within 1° D1 | Days D1 |
|---|---|---|---|---|---|---|
| Market forecast | 2.0 (−0.8) | 2.2 (−0.7) | 2.5 (−0.6) | −0.2 | 50% | 22,358 |
| Blend (median) | 2.8 | 2.9 | 3.1 | −1.3 | 33% | 22,358 |
| NBM | 2.0 (−0.8) | 2.2 (−0.7) | 2.5 (−0.6) | −0.2 | 50% | 22,358 |
| AIFS | 3.8 (+1.0) | 3.9 (+1.0) | 4.0 (+0.9) | −3.2 | 20% | 22,358 |
| ENS | 3.5 (+0.8) | 3.7 (+0.8) | 3.9 (+0.8) | −1.5 | 24% | 22,351 |
| GFS | 3.4 (+0.6) | 3.7 (+0.7) | 4.0 (+0.8) | −0.4 | 29% | 22,358 |
| Lows, MAE °F (vs blend) | D1 | D2 | D3 | Bias D1 | Within 1° D1 | Days D1 |
|---|---|---|---|---|---|---|
| Market forecast | 2.1 (−0.1) | 2.2 (−0.1) | 2.3 (−0.1) | +0.7 | 51% | 22,353 |
| Blend (median) | 2.2 | 2.3 | 2.4 | +0.5 | 48% | 22,353 |
| NBM | 2.1 (−0.1) | 2.2 (−0.1) | 2.3 (−0.1) | +0.7 | 51% | 22,353 |
| AIFS | 2.6 (+0.4) | 2.6 (+0.4) | 2.7 (+0.3) | +0.7 | 40% | 22,353 |
| ENS | 2.8 (+0.6) | 2.9 (+0.6) | 3.0 (+0.6) | 0.0 | 36% | 22,346 |
| GFS | 3.4 (+1.2) | 3.6 (+1.3) | 3.8 (+1.4) | +1.0 | 29% | 22,353 |
Stations
Day-ahead (D1) MAE in the market's unit, the blend median and the market forecast on the same days. Each station's page has every source and lead.
| Station | ICAO | Venue | High blend | High market | Low blend | Low market | Days | Period |
|---|---|---|---|---|---|---|---|---|
| Atlanta, GA, US | KATL | Kalshi | 2.5 | 2.0 | 1.4 | 1.7 | 932 | Backfill |
| Austin, TX, US | KAUS | Kalshi | 2.5 | 1.9 | 4.2 | 3.0 | 934 | Backfill |
| Boston, MA, US | KBOS | Kalshi | 2.7 | 2.6 | 1.7 | 2.0 | 928 | Backfill |
| Chicago, IL, US | KMDW | Kalshi | 2.5 | 2.2 | 1.8 | 2.4 | 935 | Backfill |
| Dallas, TX, US | KDFW | Kalshi | 2.4 | 2.1 | 2.1 | 2.1 | 929 | Backfill |
| Denver, CO, US | KDEN | Kalshi | 2.8 | 2.3 | 3.8 | 3.0 | 934 | Backfill |
| Houston, TX, US | KHOU | Kalshi | 2.1 | 1.6 | 1.7 | 1.8 | 928 | Backfill |
| Las Vegas, NV, US | KLAS | Kalshi | 3.8 | 1.2 | 3.4 | 1.9 | 933 | Backfill |
| Los Angeles, CA, US | KLAX | Kalshi | 5.1 | 2.2 | 1.4 | 1.4 | 933 | Backfill |
| Louisville, KY, US | KSDF | Kalshi | 3.0 | 2.3 | 1.8 | 2.2 | 933 | Backfill |
| Miami, FL, US | KMIA | Kalshi | 3.1 | 1.1 | 1.9 | 1.7 | 926 | Backfill |
| Minneapolis, MN, US | KMSP | Kalshi | 2.6 | 2.3 | 1.9 | 2.4 | 935 | Backfill |
| New Orleans, LA, US | KMSY | Kalshi | 3.0 | 1.6 | 2.2 | 2.1 | 934 | Backfill |
| New York City, NY, US | KNYC | Kalshi | 2.1 | 2.1 | 1.9 | 2.2 | 931 | Backfill |
| Newark, NJ, US | KEWR | Kalshi | 3.1 | 2.2 | 1.7 | 2.1 | 931 | Backfill |
| Oklahoma City, OK, US | KOKC | Kalshi | 2.4 | 2.4 | 3.5 | 2.5 | 929 | Backfill |
| Philadelphia, PA, US | KPHL | Kalshi | 2.4 | 2.0 | 1.8 | 2.1 | 931 | Backfill |
| Phoenix, AZ, US | KPHX | Kalshi | 2.8 | 1.3 | 1.6 | 1.7 | 933 | Backfill |
| San Antonio, TX, US | KSAT | Kalshi | 2.2 | 1.9 | 2.4 | 2.3 | 934 | Backfill |
| San Diego, CA, US | KSAN | Kalshi | 3.5 | 2.0 | 2.2 | 1.8 | 933 | Backfill |
| San Francisco, CA, US | KSFO | Kalshi | 2.7 | 2.3 | 1.5 | 1.3 | 930 | Backfill |
| Seattle, WA, US | KSEA | Kalshi | 2.1 | 1.8 | 1.3 | 1.4 | 933 | Backfill |
| Trenton, NJ, US | KTTN | Kalshi | 1.9 | 2.0 | 2.7 | 2.4 | 931 | Backfill |
| Washington, DC, US | KDCA | Kalshi | 2.7 | 2.2 | 1.9 | 2.0 | 928 | Backfill |
Held back
- Kalshi · NWS climate report · °F, live: 24 of 24 stations held back, 3 of 30 days so far.
- Polymarket · routine METARs · °F, live: 11 of 11 stations held back, 3 of 30 days so far.
- Polymarket · routine METARs · °F, backfill: 11 of 11 stations held back, scored on 3% of day-ahead station-days (needs 80%).
- Polymarket · routine METARs · °C, live: 37 of 37 stations held back, 3 of 30 days so far.
- Polymarket · routine METARs · °C, backfill: 37 of 37 stations held back, scored on 6% of day-ahead station-days (needs 80%).
Method
- Forecast: what groundhog had at 11:00 local time 1, 2 or 3 days before the day (D1-D3): the market forecast (what /api/v1/markets serves: for Kalshi climate-report markets the station's NBM on days after the market's day, else the blend median), the blend median rebuilt with the live rules from the runs on hand then, and each source on hand (not a twin or stale). No same-day (D0) score: that number mixes the rest of the day with what was observed so far, which the history does not keep.
- Settle value: Kalshi = the NWS climate report (CLI, whole °F); Polymarket = routine METARs (whole °F in the US, °C elsewhere). Final days only. Backfilled CLI values are the latest report, not always the first final one.
- MAE = average miss; bias = average of forecast minus settle value (+ = too warm); within 1° = the forecast rounded to a whole degree is within 1° of the settle value. "vs blend" = the source's MAE minus the blend's on the same days (negative = better than the blend).
- A station's period is published once it spans 30 days and at least 80% of its day-ahead days were scored (a forecast and a complete settle value).
- Not modelled: the shift to the standard-time day the markets page applies to the blend median for Kalshi during daylight time (the market forecast's NBM needs none; its rare blend fallback is scored unshifted).
- To rebuild a number: /api/v1/history?kind=daily&place=<slug>&asof=<decision time> lists the rows on hand and kind=obs the settle values. Two rules differ from that API: here a run counts only once all its rows are in, and a backfilled (bf:*) run counts from its source's usual live arrival after the run (AIFS 420 min, ENS 670 min, GFS 280 min, NBM 80 min), not its archive stamp.
- Sources and their licences: /sources#credits.
Scored 2026-10-28 03:48 UTC, daily at 16:30 UTC. Markdown · Markets · Receipts
