Raw model output on the native 0.25° grid — no MOS, no bias correction, no post-processing. Scores understate operational forecast quality. Read the fairness statement →

CastCheck methodology v0.2 · data through 2026-08-30

KORD — Chicago O'Hare

41.9797, -87.9044 · 203 m· standard offset UTC-6 h · truth product CLIORD

These pages are always bilinear interpolation, the headline method. The nearest-node variant, and every other window/initialization/interpolation/variable combination, is published on each permanent link below — follow any number.

Daily maximum temperature — MAE °F

the last 90 days, 00Z, bilinear. MAE with the bias and n underneath; every cell links to its permanent page. The sparkline shows the same model across lead days 1–9 on a scale shared within this table.
Modeld0d1d2d3d4d5d6d7d8d9lead 1–9
ECMWF AIFS Singleaifs_single 3.20-3.17 · n=30 3.29-3.29 · n=29 3.58-3.56 · n=28 3.66-3.20 · n=27 3.19-2.87 · n=26 3.47-2.99 · n=25 4.24-3.50 · n=24 4.66-4.45 · n=23 5.53-4.54 · n=22 5.28-4.26 · n=21 ECMWF AIFS Single MAE by lead day 1 to 9, tmax
Aurora (GFS init)aurora_gfs 5.11-5.11 · n=2 6.69-6.69 · n=1 Aurora (GFS init) MAE by lead day 1 to 9, tmax
Aurora (IFS init)aurora_ifs 2.95-2.95 · n=3 2.70-2.70 · n=2 1.43-1.43 · n=1 Aurora (IFS init) MAE by lead day 1 to 9, tmax
FourCastNet v2 (GFS init)fourcastnet_gfs 1.52-1.52 · n=2 2.63-2.63 · n=1 FourCastNet v2 (GFS init) MAE by lead day 1 to 9, tmax
FourCastNet v2 (IFS init)fourcastnet_ifs 3.36-3.36 · n=3 2.45-2.45 · n=2 0.02-0.02 · n=1 FourCastNet v2 (IFS init) MAE by lead day 1 to 9, tmax
NCEP GFSgfs 2.26-2.11 · n=30 2.57-1.96 · n=29 2.94-1.21 · n=28 3.92-1.27 · n=27 3.15-1.15 · n=26 3.40-1.22 · n=25 2.84-1.04 · n=24 5.61-3.56 · n=23 4.65-2.17 · n=22 7.17-3.20 · n=21 NCEP GFS MAE by lead day 1 to 9, tmax
GraphCast (GFS init)graphcast_gfs 3.52-3.52 · n=2 6.94-6.94 · n=1 GraphCast (GFS init) MAE by lead day 1 to 9, tmax
GraphCast (IFS init)graphcast_ifs 3.54-3.54 · n=28 3.52-3.49 · n=27 4.29-4.20 · n=26 3.98-3.94 · n=25 4.08-3.86 · n=25 3.67-3.36 · n=25 4.09-3.65 · n=24 4.22-3.30 · n=23 4.57-2.86 · n=22 5.11-3.01 · n=21 GraphCast (IFS init) MAE by lead day 1 to 9, tmax
ECMWF IFS HRESifs_hres 2.42-1.73 · n=24 2.98-2.01 · n=23 2.77-1.90 · n=22 2.62-1.54 · n=22 2.51-1.98 · n=20 2.79-1.17 · n=18 3.45-1.85 · n=19 3.40-2.89 · n=18 5.13-2.53 · n=17 5.73-2.56 · n=16 ECMWF IFS HRES MAE by lead day 1 to 9, tmax
Pangu-Weather (GFS init)pangu_gfs 2.36-2.36 · n=2 4.23-4.23 · n=1 Pangu-Weather (GFS init) MAE by lead day 1 to 9, tmax
Pangu-Weather (IFS init)pangu_ifs 2.71-2.71 · n=3 4.02-4.02 · n=2 1.44-1.44 · n=1 Pangu-Weather (IFS init) MAE by lead day 1 to 9, tmax
Persistence (baseline)persistence 4.12-0.10 · n=90 5.41-0.17 · n=90 5.52-0.28 · n=90 6.04-0.24 · n=90 6.40-0.38 · n=90 6.93-0.36 · n=90 7.49-0.29 · n=90 7.04-0.22 · n=90 6.72-0.28 · n=90 Persistence (baseline) MAE by lead day 1 to 9, tmax

Up to 1 of the scored days in this table carry a QC flag on the observation (a CLI value that disagreed with the hourly observations, or a fallback source). They are kept in the scores and counted here rather than dropped — see methodology.

+ model too warm · − model too cold · bias interval includes zero · ★ lowest MAE · = not distinguishable from the leader · ▼ significantly worse · n < 30 greyed and unranked · CI is a 95 % moving-block bootstrap interval.

Daily minimum temperature — MAE °F

the last 90 days, 00Z, bilinear. MAE with the bias and n underneath; every cell links to its permanent page. The sparkline shows the same model across lead days 1–9 on a scale shared within this table.
Modeld0d1d2d3d4d5d6d7d8d9lead 1–9
ECMWF AIFS Singleaifs_single 1.55+0.69 · n=30 1.71+0.51 · n=29 1.59+0.10 · n=28 1.61+0.17 · n=27 1.94+0.53 · n=26 2.24+0.62 · n=25 1.93+0.32 · n=24 2.55-0.28 · n=23 2.83-0.27 · n=22 3.62-0.35 · n=21 ECMWF AIFS Single MAE by lead day 1 to 9, tmin
Aurora (GFS init)aurora_gfs 0.91+0.91 · n=2 0.87+0.87 · n=1 Aurora (GFS init) MAE by lead day 1 to 9, tmin
Aurora (IFS init)aurora_ifs 0.90+0.90 · n=3 1.32+1.32 · n=2 0.40+0.40 · n=1 Aurora (IFS init) MAE by lead day 1 to 9, tmin
FourCastNet v2 (GFS init)fourcastnet_gfs 1.56+1.56 · n=2 2.97+2.97 · n=1 FourCastNet v2 (GFS init) MAE by lead day 1 to 9, tmin
FourCastNet v2 (IFS init)fourcastnet_ifs 1.66+0.14 · n=3 2.27+2.27 · n=2 2.44+2.44 · n=1 FourCastNet v2 (IFS init) MAE by lead day 1 to 9, tmin
NCEP GFSgfs 1.76+0.40 · n=30 1.65+0.41 · n=29 1.88+0.46 · n=28 2.27+0.79 · n=27 2.45+0.57 · n=26 3.20+1.30 · n=25 3.94+0.62 · n=24 3.64-0.27 · n=23 5.17-0.17 · n=22 5.58-0.53 · n=21 NCEP GFS MAE by lead day 1 to 9, tmin
GraphCast (GFS init)graphcast_gfs 0.75+0.75 · n=2 0.90+0.90 · n=1 GraphCast (GFS init) MAE by lead day 1 to 9, tmin
GraphCast (IFS init)graphcast_ifs 1.28+0.68 · n=28 1.47+0.57 · n=27 1.39+0.09 · n=26 1.77+0.09 · n=25 1.92+0.04 · n=25 1.50+0.11 · n=25 2.06+0.10 · n=24 3.53-0.00 · n=23 4.81+0.42 · n=22 5.70+0.11 · n=21 GraphCast (IFS init) MAE by lead day 1 to 9, tmin
ECMWF IFS HRESifs_hres 1.20+0.36 · n=24 1.57+0.48 · n=23 1.60+1.05 · n=22 1.79+0.39 · n=22 2.29+0.82 · n=20 2.35+0.86 · n=18 1.44+0.48 · n=19 2.17+0.43 · n=18 3.66+0.98 · n=17 4.30+1.27 · n=16 ECMWF IFS HRES MAE by lead day 1 to 9, tmin
Pangu-Weather (GFS init)pangu_gfs 1.79+1.79 · n=2 2.01+2.01 · n=1 Pangu-Weather (GFS init) MAE by lead day 1 to 9, tmin
Pangu-Weather (IFS init)pangu_ifs 2.10+2.10 · n=3 1.85+1.85 · n=2 1.54+1.54 · n=1 Pangu-Weather (IFS init) MAE by lead day 1 to 9, tmin
Persistence (baseline)persistence 3.32-0.17 · n=90 4.32-0.28 · n=90 5.32-0.41 · n=90 5.37-0.59 · n=90 5.86-0.81 · n=90 6.53-0.82 · n=90 6.91-0.76 · n=90 6.80-0.78 · n=90 6.83-0.88 · n=90 Persistence (baseline) MAE by lead day 1 to 9, tmin

Up to 1 of the scored days in this table carry a QC flag on the observation (a CLI value that disagreed with the hourly observations, or a fallback source). They are kept in the scores and counted here rather than dropped — see methodology.

Month by month

MAE °F at lead day 1, 00Z, bilinear, daily maximum — the seasonal slice behind the window averages. A model that is excellent in one season and poor in another shows up here and nowhere else.

Monthaifs_singleaurora_gfsaurora_ifsfourcastnet_gfsfourcastnet_ifsgfsgraphcast_gfsgraphcast_ifsifs_hrespangu_gfspangu_ifs
2026-08 3.29-3.29 · n=296.69-6.69 · n=12.70-2.70 · n=22.63-2.63 · n=12.45-2.45 · n=22.57-1.96 · n=296.94-6.94 · n=13.52-3.49 · n=272.98-2.01 · n=234.23-4.23 · n=14.02-4.02 · n=2
2026-01 3.81-3.81 · n=6

Model availability at this station

ModelPeriod Scored daysCoverage
ECMWF AIFS Single 2026-08-02 → 2026-08-3029
Aurora (GFS init) 2026-08-30 → 2026-08-301
Aurora (IFS init) 2026-08-29 → 2026-08-302
FourCastNet v2 (GFS init) 2026-08-30 → 2026-08-301
FourCastNet v2 (IFS init) 2026-08-29 → 2026-08-302
NCEP GFS 2026-08-02 → 2026-08-3029
GraphCast (GFS init) 2026-08-30 → 2026-08-301
GraphCast (IFS init) 2026-01-02 → 2026-08-3033
ECMWF IFS HRES 2026-08-02 → 2026-08-3023
Pangu-Weather (GFS init) 2026-08-30 → 2026-08-301
Pangu-Weather (IFS init) 2026-08-29 → 2026-08-302
Persistence (baseline) 2024-01-02 → 2026-08-30972

Observed truth — last 30 days

Climatological dayTmax °F Tmin °FSourceFlag
2026-08-308269OBSobs_fallback
2026-08-298165CLI
2026-08-288366CLI
2026-08-278265CLI
2026-08-268470CLI
2026-08-258160CLI
2026-08-247858CLI
2026-08-237761CLI
2026-08-228266CLI
2026-08-218062CLI
2026-08-207862CLI
2026-08-198065CLI
2026-08-188166CLI
2026-08-178067CLI
2026-08-168670CLI
2026-08-157973CLI
2026-08-148070CLI
2026-08-137869CLI
2026-08-128471CLI
2026-08-118169CLI
2026-08-108772CLI
2026-08-098466CLI
2026-08-088470CLI
2026-08-078768CLI
2026-08-068269CLI
2026-08-058270CLI
2026-08-048669CLI
2026-08-038362CLI
2026-08-027865CLI
2026-08-017365CLI

All scores as JSON scores_latest.csv daily_errors.csv.gz data & licences