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 maximum temperature

the last 90 days, all stations pooled, 12Z initialization, nearest 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
NCEP GFSgfs 3.01 [2.88, 3.12] -0.88 [-1.30, -0.39] 58% -0.12 +0.08 2923 stns · 2 QC
Persistence (baseline)persistence · baseline 3.22 [2.96, 3.51] -0.08 [-0.27, 0.11] 61% 9023 stns · 2 QC
ECMWF AIFS Singleaifs_single 3.56 [3.41, 3.74] -3.05 [-3.37, -2.83] 42% -0.32 +0.39 2923 stns · 2 QC
ECMWF IFS HRESifs_hres 3.76 [3.58, 4.02] -3.16 [-3.53, -2.74] 44% -0.41 +0.21 2423 stns · 2 QC
Pangu-Weather (IFS init)pangu_ifs 3.86 [3.54, 4.17] -3.20 [-3.63, -2.77] 39% -0.25 +0.36 223 stns · 2 QC
FourCastNet v2 (GFS init)fourcastnet_gfs 4.01 [3.64, 4.38] -3.68 [-3.75, -3.61] 43% -0.30 +0.89 223 stns · 2 QC
FourCastNet v2 (IFS init)fourcastnet_ifs 4.14 [3.92, 4.36] -3.83 [-3.92, -3.75] 43% -0.34 +0.87 223 stns · 2 QC
Pangu-Weather (GFS init)pangu_gfs 4.22 [3.96, 4.48] -3.46 [-3.91, -3.01] 33% -0.37 +0.33 223 stns · 2 QC
GraphCast (IFS init)graphcast_ifs 5.43 [5.20, 5.70] -5.12 [-5.46, -4.81] 20% -1.03 +0.46 2723 stns · 2 QC
Aurora (IFS init)aurora_ifs 5.53 [5.19, 5.87] -5.53 [-5.87, -5.19] 22% -0.79 +0.49 223 stns · 2 QC
GraphCast (GFS init)graphcast_gfs 5.88 [5.48, 6.27] -5.84 [-6.27, -5.40] 17% -0.90 +0.34 223 stns · 2 QC
Aurora (GFS init)aurora_gfs 6.42 [6.12, 6.72] -6.40 [-6.72, -6.08] 15% -1.08 +0.52 223 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 maximum temperature

the last 90 days, all stations pooled, 12Z initialization, nearest 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
NCEP GFSgfs 3.37 [3.03, 3.76] -0.75 [-1.53, 0.06] 52% +0.07 +0.23 2723 stns · 2 QC
ECMWF AIFS Singleaifs_single 3.74 [3.56, 3.95] -3.18 [-3.45, -2.97] 40% -0.03 +0.59 2723 stns · 2 QC
ECMWF IFS HRESifs_hres 3.79 [3.59, 4.03] -2.94 [-3.18, -2.54] 45% -0.07 +0.52 2223 stns · 2 QC
Persistence (baseline)persistence · baseline 4.83 [4.30, 5.38] -0.28 [-0.80, 0.22] 47% 9023 stns · 2 QC
GraphCast (IFS init)graphcast_ifs 5.71 [5.30, 6.26] -5.35 [-5.91, -4.82] 20% -0.57 +0.47 2523 stns

Lead day 5 — daily maximum temperature

the last 90 days, all stations pooled, 12Z initialization, nearest 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
NCEP GFSgfs 3.57 [3.37, 3.73] -1.08 [-1.74, 0.04] 52% +0.09 +0.36 2523 stns · 2 QC
ECMWF IFS HRESifs_hres 3.84 [3.61, 4.01] -2.65 [-3.31, -2.19] 44% +0.00 +0.52 2023 stns · 2 QC
ECMWF AIFS Singleaifs_single 3.90 [3.70, 4.11] -3.28 [-3.60, -2.98] 39% +0.00 +0.60 2423 stns · 2 QC
Persistence (baseline)persistence · baseline 5.18 [4.54, 5.84] -0.48 [-1.29, 0.28] 43% 9023 stns · 2 QC
GraphCast (IFS init)graphcast_ifs 5.87 [5.38, 6.46] -5.39 [-5.92, -4.87] 21% -0.49 +0.48 2523 stns · 2 QC

Lead day 7 — daily maximum temperature

the last 90 days, all stations pooled, 12Z initialization, nearest 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
NCEP GFSgfs 4.05 [3.84, 4.26] -1.18 [-1.65, -0.15] 47% +0.03 +0.15 2323 stns · 2 QC
ECMWF IFS HRESifs_hres 4.28 [3.87, 4.58] -3.10 [-3.78, -2.13] 39% +0.01 +0.28 1722.9 stns · 2 QC
ECMWF AIFS Singleaifs_single 4.35 [4.03, 4.69] -3.77 [-4.14, -3.47] 39% -0.04 +0.56 2323 stns · 2 QC
Persistence (baseline)persistence · baseline 5.38 [4.82, 5.99] -0.68 [-1.61, 0.28] 40% 9023 stns · 2 QC
GraphCast (IFS init)graphcast_ifs 5.98 [5.23, 6.71] -5.54 [-6.25, -4.79] 24% -0.43 +0.39 2323 stns · 2 QC

Every model × every lead day

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

Model d1d2d3d4d5d6d7d8d9lead 1–9
ECMWF AIFS Singleaifs_single 3.56-3.05 · n=29 3.67-3.22 · n=28 3.74-3.18 · n=27 3.74-3.13 · n=26 3.90-3.28 · n=24 4.20-3.45 · n=24 4.35-3.77 · n=23 4.71-4.17 · n=22 5.18-4.66 · n=21 ECMWF AIFS Single MAE by lead day 1 to 9
Aurora (GFS init)aurora_gfs 6.42-6.40 · n=2 6.71-6.60 · n=1 Aurora (GFS init) MAE by lead day 1 to 9
Aurora (IFS init)aurora_ifs 5.53-5.53 · n=2 5.12-5.06 · n=1 Aurora (IFS init) MAE by lead day 1 to 9
FourCastNet v2 (GFS init)fourcastnet_gfs 4.01-3.68 · n=2 3.78-3.78 · n=1 FourCastNet v2 (GFS init) MAE by lead day 1 to 9
FourCastNet v2 (IFS init)fourcastnet_ifs 4.14-3.83 · n=2 3.52-3.47 · n=1 FourCastNet v2 (IFS init) MAE by lead day 1 to 9
NCEP GFSgfs 3.01-0.88 · n=29 3.23-0.92 · n=28 3.37-0.75 · n=27 3.49-0.97 · n=26 3.57-1.08 · n=25 3.96-1.44 · n=24 4.05-1.18 · n=23 4.36-1.36 · n=22 5.06-1.49 · n=21 NCEP GFS MAE by lead day 1 to 9
GraphCast (GFS init)graphcast_gfs 5.88-5.84 · n=2 6.31-6.27 · n=1 GraphCast (GFS init) MAE by lead day 1 to 9
GraphCast (IFS init)graphcast_ifs 5.43-5.12 · n=27 5.60-5.27 · n=26 5.71-5.35 · n=25 5.71-5.25 · n=25 5.87-5.39 · n=25 5.79-5.30 · n=24 5.98-5.54 · n=23 6.55-5.94 · n=22 6.71-5.95 · n=21 GraphCast (IFS init) MAE by lead day 1 to 9
ECMWF IFS HRESifs_hres 3.76-3.16 · n=24 3.80-3.01 · n=22 3.79-2.94 · n=22 3.77-2.78 · n=21 3.84-2.65 · n=20 3.96-2.58 · n=19 4.28-3.10 · n=17 4.42-3.08 · n=17 4.84-3.59 · n=15 ECMWF IFS HRES MAE by lead day 1 to 9
Pangu-Weather (GFS init)pangu_gfs 4.22-3.46 · n=2 4.02-3.46 · n=1 Pangu-Weather (GFS init) MAE by lead day 1 to 9
Pangu-Weather (IFS init)pangu_ifs 3.86-3.20 · n=2 3.73-2.96 · n=1 Pangu-Weather (IFS init) MAE by lead day 1 to 9
Persistence (baseline)persistence 3.22-0.08 · n=90 4.34-0.15 · n=90 4.83-0.28 · n=90 5.04-0.38 · n=90 5.18-0.48 · n=90 5.32-0.58 · n=90 5.38-0.68 · n=90 5.43-0.80 · n=90 5.50-0.95 · 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 maximum, 90d window, 12Z, nearest125°W115°W105°W95°W85°W75°W65°W25°N30°N35°N40°N45°N50°NKATL Atlanta Hartsfield: bias -1.86 °F, n = 2KATLKAUS Austin Bergstrom: bias -0.77 °F, n = 29KAUSKBOS Boston Logan: bias -1.46 °F, n = 2KBOSKDCA Washington Reagan: bias -1.39 °F, n = 2KDCAKDEN Denver Intl: bias -3.50 °F, n = 24KDENKDFW Dallas-Fort Worth: bias +0.84 °F, n = 29KDFW+KEWR Newark Liberty: bias +0.52 °F, n = 2KEWR+KIAH Houston Bush: bias -0.18 °F, n = 29KIAHKLAS Las Vegas Harry Reid: bias -4.99 °F, n = 24KLASKLAX Los Angeles Intl: bias +0.11 °F, n = 29KLAX+KMIA Miami Intl: bias -3.50 °F, n = 29KMIAKMSP Minneapolis-St Paul: bias +2.62 °F, n = 29KMSP+KMSY New Orleans Intl: bias -2.70 °F, n = 2KMSYKNYC New York Central Park: bias -0.86 °F, n = 2KNYCKOKC Oklahoma City: bias +1.90 °F, n = 29KOKC+KORD Chicago O'Hare: bias -0.82 °F, n = 2KORDKPHL Philadelphia Intl: bias -1.00 °F, n = 2KPHLKPHX Phoenix Sky Harbor: bias -2.45 °F, n = 29KPHXKSAN San Diego Lindbergh: bias -3.26 °F, n = 2KSANKSAT San Antonio Intl: bias -1.13 °F, n = 29KSATKSEA Seattle-Tacoma: bias -0.97 °F, n = 24KSEAKSFO San Francisco Intl: bias -0.64 °F, n = 2KSFOKTTN Trenton Mercer: bias -0.68 °F, n = 2KTTN
Each station's best model at lead day 1 (the last 90 days, 12Z, nearest, daily maximum): 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 (IFS init)1.86 -1.86 2
KAUS Austin Bergstrom NCEP GFS1.31 -0.77 29
KBOS Boston Logan Pangu-Weather (IFS init)2.09 -1.46 2
KDCA Washington Reagan Pangu-Weather (GFS init)1.39 -1.39 2
KDEN Denver Intl ECMWF IFS HRES3.78 -3.50 24
KDFW Dallas-Fort Worth NCEP GFS1.70 +0.84 29
KEWR Newark Liberty Pangu-Weather (IFS init)1.33 +0.52 2
KIAH Houston Bush NCEP GFS1.32 -0.18 29
KLAS Las Vegas Harry Reid ECMWF IFS HRES5.29 -4.99 24
KLAX Los Angeles Intl ECMWF AIFS Single1.42 +0.11 29
KMIA Miami Intl NCEP GFS3.50 -3.50 29
KMSP Minneapolis-St Paul NCEP GFS2.78 +2.62 29
KMSY New Orleans Intl FourCastNet v2 (IFS init)2.70 -2.70 2
KNYC New York Central Park Aurora (IFS init)0.86 -0.86 2
KOKC Oklahoma City NCEP GFS2.67 +1.90 29
KORD Chicago O'Hare FourCastNet v2 (GFS init)0.82 -0.82 2
KPHL Philadelphia Intl Pangu-Weather (GFS init)1.00 -1.00 2
KPHX Phoenix Sky Harbor NCEP GFS2.67 -2.45 29
KSAN San Diego Lindbergh FourCastNet v2 (IFS init)3.26 -3.26 2
KSAT San Antonio Intl NCEP GFS1.58 -1.13 29
KSEA Seattle-Tacoma ECMWF IFS HRES2.08 -0.97 24
KSFO San Francisco Intl Aurora (GFS init)1.16 -0.64 2
KTTN Trenton Mercer GraphCast (GFS init)0.68 -0.68 2

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-29 → 2026-08-302
Aurora (IFS init) 2026-08-29 → 2026-08-302
FourCastNet v2 (GFS init) 2026-08-29 → 2026-08-302
FourCastNet v2 (IFS init) 2026-08-29 → 2026-08-302
NCEP GFS 2026-08-02 → 2026-08-3029
GraphCast (GFS init) 2026-08-29 → 2026-08-302
GraphCast (IFS init) 2026-01-02 → 2026-08-3032
ECMWF IFS HRES 2026-08-02 → 2026-08-3024
Pangu-Weather (GFS init) 2026-08-29 → 2026-08-302
Pangu-Weather (IFS init) 2026-08-29 → 2026-08-302
Persistence (baseline) 2024-01-02 → 2026-08-30972

Stations