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 30 days, all stations pooled, 00Z 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
Persistence (baseline)persistence · baseline 2.73 [2.42, 3.03] +0.06 [-0.16, 0.29] 66% 3022.9 stns · 2 QC
NCEP GFSgfs 3.17 [3.06, 3.29] -0.99 [-1.41, -0.45] 55% -0.18 -0.01 2923 stns · 2 QC
ECMWF AIFS Singleaifs_single 3.49 [3.36, 3.63] -3.00 [-3.23, -2.80] 45% -0.30 +0.37 2923 stns · 2 QC
ECMWF IFS HRESifs_hres 3.64 [3.40, 3.93] -2.80 [-3.30, -2.25] 46% -0.36 -0.02 2322.7 stns · 2 QC
Pangu-Weather (GFS init)pangu_gfs 3.68 [3.68, 3.68] -2.86 [-2.86, -2.86] 48% -0.16 123 stns · 1 QC
FourCastNet v2 (GFS init)fourcastnet_gfs 4.02 [4.02, 4.02] -3.96 [-3.96, -3.96] 39% -0.27 123 stns · 1 QC
FourCastNet v2 (IFS init)fourcastnet_ifs 4.07 [3.75, 4.38] -3.68 [-3.75, -3.60] 39% -0.32 +0.88 223 stns · 2 QC
Pangu-Weather (IFS init)pangu_ifs 4.27 [3.94, 4.60] -3.53 [-3.73, -3.32] 24% -0.38 +0.69 223 stns · 2 QC
GraphCast (IFS init)graphcast_ifs 5.10 [4.97, 5.25] -4.77 [-4.99, -4.55] 21% -0.91 +0.43 2723 stns · 2 QC
Aurora (IFS init)aurora_ifs 5.21 [4.92, 5.51] -5.19 [-5.49, -4.88] 24% -0.69 +0.54 223 stns · 2 QC
GraphCast (GFS init)graphcast_gfs 5.97 [5.97, 5.97] -5.88 [-5.88, -5.88] 9% -0.88 123 stns · 1 QC
Aurora (GFS init)aurora_gfs 6.15 [6.15, 6.15] -6.10 [-6.10, -6.10] 17% -0.94 123 stns · 1 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 30 days, all stations pooled, 00Z 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.46 [3.31, 3.62] -0.76 [-1.36, -0.18] 52% +0.04 +0.28 2723 stns · 2 QC
ECMWF AIFS Singleaifs_single 3.65 [3.47, 3.85] -2.97 [-3.21, -2.74] 42% -0.01 +0.55 2723 stns · 2 QC
Persistence (baseline)persistence · baseline 3.69 [3.41, 4.05] +0.05 [-0.43, 0.58] 55% 3023 stns · 2 QC
ECMWF IFS HRESifs_hres 3.77 [3.60, 3.88] -2.51 [-2.91, -1.98] 44% -0.06 +0.36 2223 stns · 2 QC
GraphCast (IFS init)graphcast_ifs 5.30 [4.96, 5.79] -4.88 [-5.40, -4.50] 25% -0.46 +0.49 2523 stns

Lead day 5 — daily maximum temperature

the last 30 days, all stations pooled, 00Z 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.72 [3.37, 4.14] -1.15 [-1.71, -0.51] 50% +0.05 +0.35 2523 stns · 2 QC
Persistence (baseline)persistence · baseline 3.91 [3.65, 4.18] +0.07 [-0.60, 0.80] 49% 3023 stns · 2 QC
ECMWF IFS HRESifs_hres 3.93 [3.66, 4.11] -2.59 [-3.11, -1.93] 43% -0.03 +0.43 1822.9 stns · 2 QC
ECMWF AIFS Singleaifs_single 3.94 [3.67, 4.18] -3.16 [-3.46, -2.88] 42% -0.00 +0.52 2523 stns · 2 QC
GraphCast (IFS init)graphcast_ifs 5.56 [5.08, 6.03] -5.03 [-5.45, -4.57] 22% -0.42 +0.56 2523 stns · 2 QC

Lead day 7 — daily maximum temperature

the last 30 days, all stations pooled, 00Z 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
ECMWF IFS HRESifs_hres 3.82 [3.44, 4.01] -2.41 [-2.88, -1.75] 46% +0.10 +0.30 1822.9 stns · 2 QC
NCEP GFSgfs 4.11 [3.76, 4.34] -1.47 [-1.89, -0.88] 46% +0.02 +0.24 2323 stns · 2 QC
Persistence (baseline)persistence · baseline 4.20 [4.01, 4.44] +0.04 [-0.76, 0.91] 46% 3023 stns · 2 QC
ECMWF AIFS Singleaifs_single 4.39 [4.00, 4.79] -3.87 [-4.27, -3.44] 40% -0.05 +0.41 2323 stns · 2 QC
GraphCast (IFS init)graphcast_ifs 6.00 [5.41, 6.54] -5.44 [-6.04, -4.85] 25% -0.43 +0.40 2323 stns · 2 QC

Every model × every lead day

MAE in °F with the bias underneath, the last 30 days, 00Z, nearest, daily maximum. 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 3.44-2.97 · n=30 3.49-3.00 · n=29 3.66-3.08 · n=28 3.65-2.97 · n=27 3.71-3.10 · n=26 3.94-3.16 · n=25 4.20-3.50 · n=24 4.39-3.87 · n=23 4.80-4.16 · n=22 5.06-4.10 · n=21 ECMWF AIFS Single MAE by lead day 1 to 9
Aurora (GFS init)aurora_gfs 5.71-5.71 · n=2 6.15-6.10 · n=1 Aurora (GFS init) MAE by lead day 1 to 9
Aurora (IFS init)aurora_ifs 5.22-4.96 · n=3 5.21-5.19 · n=2 4.93-4.71 · n=1 Aurora (IFS init) MAE by lead day 1 to 9
FourCastNet v2 (GFS init)fourcastnet_gfs 4.45-4.27 · n=2 4.02-3.96 · n=1 FourCastNet v2 (GFS init) MAE by lead day 1 to 9
FourCastNet v2 (IFS init)fourcastnet_ifs 4.70-4.48 · n=3 4.07-3.68 · n=2 3.75-3.58 · n=1 FourCastNet v2 (IFS init) MAE by lead day 1 to 9
NCEP GFSgfs 2.88-1.05 · n=30 3.17-0.99 · n=29 3.33-1.03 · n=28 3.46-0.76 · n=27 3.45-0.93 · n=26 3.72-1.15 · n=25 3.82-1.04 · n=24 4.11-1.47 · n=23 4.51-1.54 · n=22 4.88-1.02 · n=21 NCEP GFS MAE by lead day 1 to 9
GraphCast (GFS init)graphcast_gfs 5.61-5.61 · n=2 5.97-5.88 · n=1 GraphCast (GFS init) MAE by lead day 1 to 9
GraphCast (IFS init)graphcast_ifs 4.77-4.41 · n=28 5.10-4.77 · n=27 5.27-4.92 · n=26 5.30-4.88 · n=25 5.49-5.00 · n=25 5.56-5.03 · n=25 5.79-5.29 · n=24 6.00-5.44 · n=23 6.49-5.62 · n=22 6.17-4.73 · n=21 GraphCast (IFS init) MAE by lead day 1 to 9
ECMWF IFS HRESifs_hres 3.34-2.67 · n=25 3.64-2.80 · n=23 3.63-2.62 · n=23 3.77-2.51 · n=22 3.74-2.50 · n=20 3.93-2.59 · n=18 4.27-2.26 · n=19 3.82-2.41 · n=18 4.52-2.61 · n=17 4.28-1.27 · n=16 ECMWF IFS HRES MAE by lead day 1 to 9
Pangu-Weather (GFS init)pangu_gfs 3.92-3.24 · n=2 3.68-2.86 · n=1 Pangu-Weather (GFS init) MAE by lead day 1 to 9
Pangu-Weather (IFS init)pangu_ifs 3.81-3.19 · n=3 4.27-3.53 · n=2 4.22-3.52 · n=1 Pangu-Weather (IFS init) MAE by lead day 1 to 9
Persistence (baseline)persistence 2.73+0.06 · n=30 3.41+0.12 · n=30 3.69+0.05 · n=30 3.87+0.04 · n=30 3.91+0.07 · n=30 4.01+0.10 · n=30 4.20+0.04 · n=30 4.25-0.05 · n=30 4.33-0.10 · n=30 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, 30d window, 00Z, nearest125°W115°W105°W95°W85°W75°W65°W25°N30°N35°N40°N45°N50°NKATL Atlanta Hartsfield: bias -1.24 °F, n = 23KATLKAUS Austin Bergstrom: bias -1.15 °F, n = 29KAUSKBOS Boston Logan: bias -0.21 °F, n = 22KBOSKDCA Washington Reagan: bias -1.65 °F, n = 2KDCAKDEN Denver Intl: bias -0.23 °F, n = 1KDENKDFW Dallas-Fort Worth: bias -1.65 °F, n = 1KDFWKEWR Newark Liberty: bias +0.74 °F, n = 2KEWR+KIAH Houston Bush: bias -0.38 °F, n = 29KIAHKLAS Las Vegas Harry Reid: bias -3.25 °F, n = 22KLASKLAX Los Angeles Intl: bias +0.55 °F, n = 29KLAX+KMIA Miami Intl: bias -3.16 °F, n = 29KMIAKMSP Minneapolis-St Paul: bias -0.96 °F, n = 1KMSPKMSY New Orleans Intl: bias -2.86 °F, n = 1KMSYKNYC New York Central Park: bias -0.02 °F, n = 1KNYCKOKC Oklahoma City: bias -2.38 °F, n = 1KOKCKORD Chicago O'Hare: bias -2.46 °F, n = 2KORDKPHL Philadelphia Intl: bias -1.52 °F, n = 2KPHLKPHX Phoenix Sky Harbor: bias -2.08 °F, n = 22KPHXKSAN San Diego Lindbergh: bias -1.38 °F, n = 1KSANKSAT San Antonio Intl: bias -1.25 °F, n = 29KSATKSEA Seattle-Tacoma: bias -1.83 °F, n = 1KSEAKSFO San Francisco Intl: bias +0.58 °F, n = 1KSFO+KTTN Trenton Mercer: bias -0.18 °F, n = 2KTTN
Each station's best model at lead day 1 (the last 30 days, 00Z, 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 ECMWF IFS HRES2.10 -1.24 23
KAUS Austin Bergstrom NCEP GFS1.48 -1.15 29
KBOS Boston Logan ECMWF IFS HRES2.39 -0.21 22
KDCA Washington Reagan Pangu-Weather (IFS init)1.65 -1.65 2
KDEN Denver Intl Pangu-Weather (GFS init)0.23 -0.23 1
KDFW Dallas-Fort Worth Pangu-Weather (GFS init)1.65 -1.65 1
KEWR Newark Liberty Pangu-Weather (IFS init)0.74 +0.74 2
KIAH Houston Bush NCEP GFS1.28 -0.38 29
KLAS Las Vegas Harry Reid ECMWF IFS HRES4.29 -3.25 22
KLAX Los Angeles Intl ECMWF AIFS Single1.47 +0.55 29
KMIA Miami Intl NCEP GFS3.16 -3.16 29
KMSP Minneapolis-St Paul Pangu-Weather (GFS init)0.96 -0.96 1
KMSY New Orleans Intl FourCastNet v2 (GFS init)2.86 -2.86 1
KNYC New York Central Park Aurora (GFS init)0.02 -0.02 1
KOKC Oklahoma City Pangu-Weather (GFS init)2.38 -2.38 1
KORD Chicago O'Hare FourCastNet v2 (IFS init)2.46 -2.46 2
KPHL Philadelphia Intl Pangu-Weather (IFS init)1.70 -1.52 2
KPHX Phoenix Sky Harbor ECMWF IFS HRES2.39 -2.08 22
KSAN San Diego Lindbergh FourCastNet v2 (GFS init)1.38 -1.38 1
KSAT San Antonio Intl NCEP GFS1.72 -1.25 29
KSEA Seattle-Tacoma FourCastNet v2 (GFS init)1.83 -1.83 1
KSFO San Francisco Intl Aurora (GFS init)0.58 +0.58 1
KTTN Trenton Mercer Aurora (IFS init)0.38 -0.18 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-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