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

How far off was each weather model?

No group in this view yet has enough scored days to rank (n < 30). Every number below is still published, greyed out, with its sample size.

Scope: raw model output on the native 0.25° grid, daily maximum/minimum taken as the max/min of the four common 6-hourly samples, scored against the first final NWS Daily Climate Report, errors computed in °C and shown in °F (methodology v0.2).

Lead day 1 — daily minimum temperature

the last 90 days, all stations pooled, 00Z initialization, bilinear interpolation. Lower MAE is better; bias is positive when the model is too warm. Every number links to its permanent page. Skill is measured against persistence; skill, debiased repeats it after removing each station's constant offset, which is why a station with a steady warm bias can look skill-less in one column and skilful in the other. Under n: the mean number of stations behind each scored day, and how many of those days carry a QC flag on the observation. in the rank column means fewer than 30 scored days, so the group is published but not ranked.
rankModel MAE °FBias °F ±3 °F Skill Skill, debiased nvs leader
GraphCast (IFS init)graphcast_ifs 2.09 [1.96, 2.28] +0.71 [0.43, 0.95] 73% +0.10 +0.22 2723 stns · 2 QC
Pangu-Weather (IFS init)pangu_ifs 2.22 [2.12, 2.32] +0.08 [-1.11, 1.27] 74% +0.14 +0.26 223 stns · 2 QC
ECMWF AIFS Singleaifs_single 2.23 [2.03, 2.44] +0.24 [-0.01, 0.41] 72% +0.05 +0.48 2923 stns · 2 QC
Aurora (IFS init)aurora_ifs 2.24 [2.12, 2.36] +0.24 [-0.71, 1.20] 70% +0.13 +0.40 223 stns · 2 QC
ECMWF IFS HRESifs_hres 2.33 [2.17, 2.53] +1.16 [0.77, 1.49] 71% +0.00 +0.29 2322.7 stns · 2 QC
Pangu-Weather (GFS init)pangu_gfs 2.37 [2.37, 2.37] -0.17 [-0.17, -0.17] 74% -0.13 123 stns · 1 QC
FourCastNet v2 (GFS init)fourcastnet_gfs 2.43 [2.43, 2.43] +0.13 [0.13, 0.13] 74% -0.16 123 stns · 1 QC
Persistence (baseline)persistence · baseline 2.43 [2.29, 2.59] -0.09 [-0.26, 0.07] 70% 9023 stns · 2 QC
FourCastNet v2 (IFS init)fourcastnet_ifs 2.64 [2.16, 3.12] +0.93 [-0.02, 1.87] 67% -0.02 +0.41 223 stns · 2 QC
GraphCast (GFS init)graphcast_gfs 2.74 [2.74, 2.74] -0.32 [-0.32, -0.32] 70% -0.31 123 stns · 1 QC
Aurora (GFS init)aurora_gfs 2.77 [2.77, 2.77] -0.49 [-0.49, -0.49] 65% -0.33 123 stns · 1 QC
NCEP GFSgfs 2.91 [2.73, 3.11] +1.76 [1.31, 2.22] 59% -0.24 +0.20 2923 stns · 2 QC

+ 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.

Lead day 3 — daily minimum temperature

the last 90 days, all stations pooled, 00Z initialization, bilinear interpolation. Lower MAE is better; bias is positive when the model is too warm. Every number links to its permanent page. Skill is measured against persistence; skill, debiased repeats it after removing each station's constant offset, which is why a station with a steady warm bias can look skill-less in one column and skilful in the other. Under n: the mean number of stations behind each scored day, and how many of those days carry a QC flag on the observation. in the rank column means fewer than 30 scored days, so the group is published but not ranked.
rankModel MAE °FBias °F ±3 °F Skill Skill, debiased nvs leader
GraphCast (IFS init)graphcast_ifs 2.25 [2.12, 2.37] +0.65 [0.27, 0.93] 71% +0.29 +0.44 2523 stns
ECMWF AIFS Singleaifs_single 2.37 [2.16, 2.59] +0.39 [0.11, 0.65] 69% +0.25 +0.52 2723 stns · 2 QC
ECMWF IFS HRESifs_hres 2.77 [2.60, 3.18] +1.60 [1.29, 2.05] 63% +0.11 +0.39 2223 stns · 2 QC
NCEP GFSgfs 3.17 [2.88, 3.51] +2.07 [1.65, 2.49] 56% -0.01 +0.44 2723 stns · 2 QC
Persistence (baseline)persistence · baseline 3.69 [3.43, 3.98] -0.31 [-0.77, 0.13] 56% 9023 stns · 2 QC

Lead day 5 — daily minimum temperature

the last 90 days, all stations pooled, 00Z initialization, bilinear interpolation. Lower MAE is better; bias is positive when the model is too warm. Every number links to its permanent page. Skill is measured against persistence; skill, debiased repeats it after removing each station's constant offset, which is why a station with a steady warm bias can look skill-less in one column and skilful in the other. Under n: the mean number of stations behind each scored day, and how many of those days carry a QC flag on the observation. in the rank column means fewer than 30 scored days, so the group is published but not ranked.
rankModel MAE °FBias °F ±3 °F Skill Skill, debiased nvs leader
GraphCast (IFS init)graphcast_ifs 2.47 [2.31, 2.70] +0.52 [0.19, 0.87] 67% +0.22 +0.36 2523 stns · 2 QC
ECMWF AIFS Singleaifs_single 2.51 [2.19, 2.87] +0.42 [0.06, 0.79] 68% +0.20 +0.27 2523 stns · 2 QC
ECMWF IFS HRESifs_hres 2.86 [2.55, 3.14] +1.59 [0.92, 2.11] 63% +0.09 +0.09 1822.9 stns · 2 QC
NCEP GFSgfs 3.37 [3.17, 3.57] +1.74 [1.16, 2.19] 54% -0.07 -0.04 2523 stns · 2 QC
Persistence (baseline)persistence · baseline 3.92 [3.52, 4.39] -0.52 [-1.27, 0.17] 54% 9023 stns · 2 QC

Lead day 7 — daily minimum temperature

the last 90 days, all stations pooled, 00Z initialization, bilinear interpolation. Lower MAE is better; bias is positive when the model is too warm. Every number links to its permanent page. Skill is measured against persistence; skill, debiased repeats it after removing each station's constant offset, which is why a station with a steady warm bias can look skill-less in one column and skilful in the other. Under n: the mean number of stations behind each scored day, and how many of those days carry a QC flag on the observation. in the rank column means fewer than 30 scored days, so the group is published but not ranked.
rankModel MAE °FBias °F ±3 °F Skill Skill, debiased nvs leader
ECMWF AIFS Singleaifs_single 2.74 [2.40, 3.01] +0.36 [-0.04, 0.75] 65% +0.25 +0.53 2323 stns · 2 QC
GraphCast (IFS init)graphcast_ifs 2.91 [2.72, 3.11] +0.45 [-0.07, 1.07] 60% +0.21 +0.32 2323 stns · 2 QC
ECMWF IFS HRESifs_hres 3.17 [2.86, 3.64] +1.82 [1.55, 2.19] 55% +0.15 +0.38 1822.9 stns · 2 QC
NCEP GFSgfs 3.69 [3.45, 3.89] +1.68 [1.06, 2.27] 47% -0.00 +0.25 2323 stns · 2 QC
Persistence (baseline)persistence · baseline 4.24 [3.86, 4.74] -0.66 [-1.65, 0.19] 49% 9023 stns · 2 QC

Every model × every lead day

MAE in °F with the bias underneath, the last 90 days, 00Z, bilinear, daily minimum. The sparkline is the same model's MAE across lead days 1–9 on a shared vertical scale.

Model d0d1d2d3d4d5d6d7d8d9lead 1–9
ECMWF AIFS Singleaifs_single 2.12+0.09 · n=30 2.23+0.24 · n=29 2.34+0.34 · n=28 2.37+0.39 · n=27 2.43+0.39 · n=26 2.51+0.42 · n=25 2.65+0.40 · n=24 2.74+0.36 · n=23 2.89+0.16 · n=22 3.40+0.93 · n=21 ECMWF AIFS Single MAE by lead day 1 to 9
Aurora (GFS init)aurora_gfs 2.69+0.41 · n=2 2.77-0.49 · n=1 Aurora (GFS init) MAE by lead day 1 to 9
Aurora (IFS init)aurora_ifs 2.11+0.27 · n=3 2.24+0.24 · n=2 2.55-0.80 · n=1 Aurora (IFS init) MAE by lead day 1 to 9
FourCastNet v2 (GFS init)fourcastnet_gfs 2.82-0.10 · n=2 2.43+0.13 · n=1 FourCastNet v2 (GFS init) MAE by lead day 1 to 9
FourCastNet v2 (IFS init)fourcastnet_ifs 2.38-0.37 · n=3 2.64+0.93 · n=2 2.58+0.56 · n=1 FourCastNet v2 (IFS init) MAE by lead day 1 to 9
NCEP GFSgfs 2.67+1.59 · n=30 2.91+1.76 · n=29 2.95+1.74 · n=28 3.17+2.07 · n=27 3.26+1.93 · n=26 3.37+1.74 · n=25 3.54+1.77 · n=24 3.69+1.68 · n=23 3.85+1.52 · n=22 4.30+1.34 · n=21 NCEP GFS MAE by lead day 1 to 9
GraphCast (GFS init)graphcast_gfs 2.78+0.58 · n=2 2.74-0.32 · n=1 GraphCast (GFS init) MAE by lead day 1 to 9
GraphCast (IFS init)graphcast_ifs 2.01+0.95 · n=28 2.09+0.71 · n=27 2.17+0.58 · n=26 2.25+0.65 · n=25 2.38+0.63 · n=25 2.47+0.52 · n=25 2.62+0.59 · n=24 2.91+0.45 · n=23 3.18+0.29 · n=22 3.52+0.74 · n=21 GraphCast (IFS init) MAE by lead day 1 to 9
ECMWF IFS HRESifs_hres 2.06+1.02 · n=25 2.33+1.16 · n=23 2.53+1.32 · n=23 2.77+1.60 · n=22 2.84+1.71 · n=20 2.86+1.59 · n=18 2.98+1.74 · n=19 3.17+1.82 · n=18 3.47+1.85 · n=17 4.24+2.93 · n=16 ECMWF IFS HRES MAE by lead day 1 to 9
Pangu-Weather (GFS init)pangu_gfs 2.59+0.63 · n=2 2.37-0.17 · n=1 Pangu-Weather (GFS init) MAE by lead day 1 to 9
Pangu-Weather (IFS init)pangu_ifs 2.07+0.60 · n=3 2.22+0.08 · n=2 2.38-0.77 · n=1 Pangu-Weather (IFS init) MAE by lead day 1 to 9
Persistence (baseline)persistence 2.43-0.09 · n=90 3.33-0.19 · n=90 3.69-0.31 · n=90 3.80-0.42 · n=90 3.92-0.52 · n=90 4.13-0.58 · n=90 4.24-0.66 · n=90 4.32-0.75 · n=90 4.46-0.87 · n=90 Persistence (baseline) MAE by lead day 1 to 9

Where the errors are

Mean bias in °F of each station's best model, lead day 1, daily minimum, 90d window, 00Z, bilinear125°W115°W105°W95°W85°W75°W65°W25°N30°N35°N40°N45°N50°NKATL Atlanta Hartsfield: bias -0.09 °F, n = 1KATLKAUS Austin Bergstrom: bias +2.74 °F, n = 29KAUS+KBOS Boston Logan: bias -0.03 °F, n = 28KBOSKDCA Washington Reagan: bias -0.28 °F, n = 1KDCAKDEN Denver Intl: bias +0.06 °F, n = 1KDEN+KDFW Dallas-Fort Worth: bias +0.22 °F, n = 2KDFW+KEWR Newark Liberty: bias +0.80 °F, n = 1KEWR+KIAH Houston Bush: bias +0.31 °F, n = 2KIAH+KLAS Las Vegas Harry Reid: bias -2.66 °F, n = 27KLASKLAX Los Angeles Intl: bias -0.01 °F, n = 29KLAXKMIA Miami Intl: bias -0.07 °F, n = 1KMIAKMSP Minneapolis-St Paul: bias +0.02 °F, n = 2KMSP+KMSY New Orleans Intl: bias +1.40 °F, n = 29KMSY+KNYC New York Central Park: bias -0.24 °F, n = 1KNYCKOKC Oklahoma City: bias +1.54 °F, n = 1KOKC+KORD Chicago O'Hare: bias +0.87 °F, n = 1KORD+KPHL Philadelphia Intl: bias -0.41 °F, n = 2KPHLKPHX Phoenix Sky Harbor: bias -0.83 °F, n = 2KPHXKSAN San Diego Lindbergh: bias -0.66 °F, n = 1KSANKSAT San Antonio Intl: bias +0.36 °F, n = 27KSAT+KSEA Seattle-Tacoma: bias +0.01 °F, n = 1KSEA+KSFO San Francisco Intl: bias -0.33 °F, n = 1KSFOKTTN Trenton Mercer: bias +3.27 °F, n = 27KTTN+
Each station's best model at lead day 1 (the last 90 days, 00Z, bilinear, daily minimum): dot area grows with the number of scored days, fill is the mean bias (warm = model too warm, cool = too cold, grey = interval includes zero). There is no coastline because CastCheck ships no third-party boundary file; the frame is a latitude/longitude graticule. Hover a dot for its numbers.
The same data as a table
StationBest model MAE °FBias °F n
KATL Atlanta Hartsfield FourCastNet v2 (GFS init)0.09 -0.09 1
KAUS Austin Bergstrom ECMWF AIFS Single2.94 +2.74 29
KBOS Boston Logan ECMWF AIFS Single1.22 -0.03 28
KDCA Washington Reagan FourCastNet v2 (GFS init)0.28 -0.28 1
KDEN Denver Intl FourCastNet v2 (GFS init)0.06 +0.06 1
KDFW Dallas-Fort Worth Aurora (IFS init)0.27 +0.22 2
KEWR Newark Liberty Pangu-Weather (GFS init)0.80 +0.80 1
KIAH Houston Bush Pangu-Weather (IFS init)0.31 +0.31 2
KLAS Las Vegas Harry Reid GraphCast (IFS init)3.11 -2.66 27
KLAX Los Angeles Intl ECMWF AIFS Single0.60 -0.01 29
KMIA Miami Intl Pangu-Weather (GFS init)0.07 -0.07 1
KMSP Minneapolis-St Paul Aurora (IFS init)1.01 +0.02 2
KMSY New Orleans Intl NCEP GFS1.80 +1.40 29
KNYC New York Central Park FourCastNet v2 (GFS init)0.24 -0.24 1
KOKC Oklahoma City FourCastNet v2 (GFS init)1.54 +1.54 1
KORD Chicago O'Hare Aurora (GFS init)0.87 +0.87 1
KPHL Philadelphia Intl Aurora (IFS init)0.41 -0.41 2
KPHX Phoenix Sky Harbor Pangu-Weather (IFS init)0.89 -0.83 2
KSAN San Diego Lindbergh FourCastNet v2 (GFS init)0.66 -0.66 1
KSAT San Antonio Intl GraphCast (IFS init)0.96 +0.36 27
KSEA Seattle-Tacoma FourCastNet v2 (GFS init)0.01 +0.01 1
KSFO San Francisco Intl Aurora (GFS init)0.33 -0.33 1
KTTN Trenton Mercer GraphCast (IFS init)3.31 +3.27 27

Data availability

Each model is scored only over its own available period (2024-01-02 → 2026-08-30); the windows above are therefore not identical across models. Pairwise comparisons on the permanent-link pages use common days only.

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

Stations