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, 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
Persistence (baseline)persistence · baseline 2.73 [2.42, 3.03] +0.06 [-0.16, 0.29] 66% 3022.9 stns · 2 QC
NCEP GFSgfs 2.93 [2.78, 3.09] -1.06 [-1.44, -0.59] 60% -0.09 +0.03 2923 stns · 2 QC
ECMWF AIFS Singleaifs_single 3.46 [3.32, 3.61] -3.08 [-3.29, -2.91] 44% -0.29 +0.39 2923 stns · 2 QC
Pangu-Weather (GFS init)pangu_gfs 3.51 [3.51, 3.51] -2.72 [-2.72, -2.72] 48% -0.11 123 stns · 1 QC
ECMWF IFS HRESifs_hres 3.56 [3.39, 3.74] -2.83 [-3.25, -2.38] 46% -0.33 +0.06 2322.7 stns · 2 QC
FourCastNet v2 (GFS init)fourcastnet_gfs 3.90 [3.90, 3.90] -3.85 [-3.85, -3.85] 39% -0.23 123 stns · 1 QC
FourCastNet v2 (IFS init)fourcastnet_ifs 4.00 [3.67, 4.34] -3.60 [-3.67, -3.54] 43% -0.30 +0.90 223 stns · 2 QC
Pangu-Weather (IFS init)pangu_ifs 4.09 [3.74, 4.43] -3.37 [-3.58, -3.17] 26% -0.32 +0.69 223 stns · 2 QC
GraphCast (IFS init)graphcast_ifs 4.91 [4.75, 5.08] -4.84 [-5.03, -4.66] 22% -0.84 +0.45 2723 stns · 2 QC
Aurora (IFS init)aurora_ifs 5.28 [5.07, 5.48] -5.27 [-5.48, -5.06] 22% -0.71 +0.68 223 stns · 2 QC
GraphCast (GFS init)graphcast_gfs 5.95 [5.95, 5.95] -5.95 [-5.95, -5.95] 4% -0.87 123 stns · 1 QC
Aurora (GFS init)aurora_gfs 6.29 [6.29, 6.29] -6.29 [-6.29, -6.29] 13% -0.98 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, 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
NCEP GFSgfs 3.20 [3.06, 3.38] -0.81 [-1.40, -0.27] 56% +0.11 +0.31 2723 stns · 2 QC
ECMWF IFS HRESifs_hres 3.60 [3.44, 3.72] -2.51 [-2.80, -2.11] 47% -0.01 +0.41 2223 stns · 2 QC
ECMWF AIFS Singleaifs_single 3.60 [3.44, 3.80] -3.04 [-3.27, -2.81] 43% +0.00 +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
GraphCast (IFS init)graphcast_ifs 5.11 [4.80, 5.52] -4.94 [-5.40, -4.62] 25% -0.41 +0.51 2523 stns

Lead day 5 — daily maximum temperature

the last 30 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
NCEP GFSgfs 3.56 [3.18, 3.97] -1.23 [-1.80, -0.60] 52% +0.09 +0.35 2523 stns · 2 QC
ECMWF IFS HRESifs_hres 3.69 [3.43, 3.93] -2.55 [-2.91, -2.07] 46% +0.03 +0.51 1822.9 stns · 2 QC
ECMWF AIFS Singleaifs_single 3.90 [3.69, 4.10] -3.22 [-3.53, -2.94] 40% +0.01 +0.52 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
GraphCast (IFS init)graphcast_ifs 5.41 [4.95, 5.85] -5.07 [-5.43, -4.67] 23% -0.38 +0.59 2523 stns · 2 QC

Lead day 7 — daily maximum temperature

the last 30 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 IFS HRESifs_hres 3.64 [3.22, 3.85] -2.35 [-2.81, -1.74] 48% +0.15 +0.34 1822.9 stns · 2 QC
NCEP GFSgfs 3.92 [3.54, 4.18] -1.48 [-1.90, -0.89] 50% +0.06 +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.38 [4.00, 4.76] -3.92 [-4.33, -3.48] 40% -0.05 +0.40 2323 stns · 2 QC
GraphCast (IFS init)graphcast_ifs 5.88 [5.34, 6.40] -5.49 [-6.07, -4.91] 25% -0.40 +0.40 2323 stns · 2 QC

Every model × every lead day

MAE in °F with the bias underneath, the last 30 days, 00Z, bilinear, 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.41-3.06 · n=30 3.46-3.08 · n=29 3.62-3.16 · n=28 3.60-3.04 · n=27 3.68-3.16 · n=26 3.90-3.22 · n=25 4.17-3.56 · n=24 4.38-3.92 · n=23 4.78-4.20 · n=22 5.01-4.10 · n=21 ECMWF AIFS Single MAE by lead day 1 to 9
Aurora (GFS init)aurora_gfs 5.80-5.80 · n=2 6.29-6.29 · n=1 Aurora (GFS init) MAE by lead day 1 to 9
Aurora (IFS init)aurora_ifs 5.08-5.04 · n=3 5.28-5.27 · n=2 5.03-4.86 · n=1 Aurora (IFS init) MAE by lead day 1 to 9
FourCastNet v2 (GFS init)fourcastnet_gfs 4.36-4.18 · n=2 3.90-3.85 · n=1 FourCastNet v2 (GFS init) MAE by lead day 1 to 9
FourCastNet v2 (IFS init)fourcastnet_ifs 4.59-4.42 · n=3 4.00-3.60 · n=2 3.67-3.49 · n=1 FourCastNet v2 (IFS init) MAE by lead day 1 to 9
NCEP GFSgfs 2.65-1.12 · n=30 2.93-1.06 · n=29 3.07-1.04 · n=28 3.20-0.81 · n=27 3.26-1.03 · n=26 3.56-1.23 · n=25 3.70-1.08 · n=24 3.92-1.48 · n=23 4.34-1.57 · n=22 4.67-1.02 · n=21 NCEP GFS MAE by lead day 1 to 9
GraphCast (GFS init)graphcast_gfs 5.60-5.60 · n=2 5.95-5.95 · n=1 GraphCast (GFS init) MAE by lead day 1 to 9
GraphCast (IFS init)graphcast_ifs 4.57-4.49 · n=28 4.91-4.84 · n=27 5.09-4.97 · n=26 5.11-4.94 · n=25 5.32-5.05 · n=25 5.41-5.07 · n=25 5.66-5.34 · n=24 5.88-5.49 · n=23 6.41-5.66 · n=22 6.14-4.75 · n=21 GraphCast (IFS init) MAE by lead day 1 to 9
ECMWF IFS HRESifs_hres 3.22-2.74 · n=25 3.56-2.83 · n=23 3.43-2.65 · n=23 3.60-2.51 · n=22 3.58-2.50 · n=20 3.69-2.55 · n=18 4.03-2.21 · n=19 3.64-2.35 · n=18 4.31-2.61 · n=17 4.25-1.41 · n=16 ECMWF IFS HRES MAE by lead day 1 to 9
Pangu-Weather (GFS init)pangu_gfs 3.74-3.07 · n=2 3.51-2.72 · n=1 Pangu-Weather (GFS init) MAE by lead day 1 to 9
Pangu-Weather (IFS init)pangu_ifs 3.62-3.08 · n=3 4.09-3.37 · n=2 4.05-3.35 · 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, bilinear125°W115°W105°W95°W85°W75°W65°W25°N30°N35°N40°N45°N50°NKATL Atlanta Hartsfield: bias -1.53 °F, n = 23KATLKAUS Austin Bergstrom: bias -1.20 °F, n = 29KAUSKBOS Boston Logan: bias -0.54 °F, n = 22KBOSKDCA Washington Reagan: bias -1.96 °F, n = 2KDCAKDEN Denver Intl: bias +0.26 °F, n = 1KDEN+KDFW Dallas-Fort Worth: bias +1.34 °F, n = 29KDFW+KEWR Newark Liberty: bias +0.60 °F, n = 2KEWR+KIAH Houston Bush: bias -0.36 °F, n = 29KIAHKLAS Las Vegas Harry Reid: bias -2.58 °F, n = 22KLASKLAX Los Angeles Intl: bias +1.02 °F, n = 29KLAX+KMIA Miami Intl: bias -1.39 °F, n = 29KMIAKMSP Minneapolis-St Paul: bias -0.54 °F, n = 1KMSPKMSY New Orleans Intl: bias -2.88 °F, n = 1KMSYKNYC New York Central Park: bias -0.24 °F, n = 1KNYCKOKC Oklahoma City: bias -2.66 °F, n = 1KOKCKORD Chicago O'Hare: bias -2.45 °F, n = 2KORDKPHL Philadelphia Intl: bias -1.66 °F, n = 2KPHLKPHX Phoenix Sky Harbor: bias -2.08 °F, n = 22KPHXKSAN San Diego Lindbergh: bias -0.54 °F, n = 1KSANKSAT San Antonio Intl: bias -1.45 °F, n = 29KSATKSEA Seattle-Tacoma: bias -1.70 °F, n = 2KSEAKSFO San Francisco Intl: bias -1.41 °F, n = 1KSFOKTTN Trenton Mercer: bias -0.54 °F, n = 2KTTN
Each station's best model at lead day 1 (the last 30 days, 00Z, bilinear, 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.08 -1.53 23
KAUS Austin Bergstrom NCEP GFS1.47 -1.20 29
KBOS Boston Logan ECMWF IFS HRES2.40 -0.54 22
KDCA Washington Reagan Pangu-Weather (IFS init)1.96 -1.96 2
KDEN Denver Intl Pangu-Weather (GFS init)0.26 +0.26 1
KDFW Dallas-Fort Worth NCEP GFS1.73 +1.34 29
KEWR Newark Liberty Pangu-Weather (IFS init)0.62 +0.60 2
KIAH Houston Bush NCEP GFS1.24 -0.36 29
KLAS Las Vegas Harry Reid ECMWF IFS HRES3.83 -2.58 22
KLAX Los Angeles Intl ECMWF AIFS Single1.57 +1.02 29
KMIA Miami Intl NCEP GFS1.65 -1.39 29
KMSP Minneapolis-St Paul Pangu-Weather (GFS init)0.54 -0.54 1
KMSY New Orleans Intl FourCastNet v2 (GFS init)2.88 -2.88 1
KNYC New York Central Park Aurora (GFS init)0.24 -0.24 1
KOKC Oklahoma City Pangu-Weather (GFS init)2.66 -2.66 1
KORD Chicago O'Hare FourCastNet v2 (IFS init)2.45 -2.45 2
KPHL Philadelphia Intl Pangu-Weather (IFS init)1.66 -1.66 2
KPHX Phoenix Sky Harbor ECMWF IFS HRES2.38 -2.08 22
KSAN San Diego Lindbergh FourCastNet v2 (GFS init)0.54 -0.54 1
KSAT San Antonio Intl NCEP GFS1.76 -1.45 29
KSEA Seattle-Tacoma FourCastNet v2 (IFS init)1.70 -1.70 2
KSFO San Francisco Intl FourCastNet v2 (GFS init)1.41 -1.41 1
KTTN Trenton Mercer Aurora (IFS init)0.54 -0.54 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