Daily verification · methodology v0.3.1

How far off was each weather model?

Over all available history, across 23 U.S. stations, the most accurate raw instantaneous temperature forecast 1 day ahead is ECMWF AIFS Single: mean absolute error 2.44 °F [2.35, 2.53], bias −0.99 °F, on n = 87 scored days.

Scope: raw model output on the native 0.25° grid. The headline variable is the instantaneous 2 m temperature at 00/06/12/18 UTC, scored against the observed 2 m temperature at the same instant (ASOS routine METAR) — the same four instants on both sides, so nothing in the number depends on a model's own diurnal amplitude. Errors are computed in °C and shown in °F (methodology v0.3.1).

Window
all available history
Variable
instantaneous temperature
Init
00Z
Interpolation
nearest
Data through
2026-10-28
Updated
Next update

Leader, lead day 1

2.44°F

[2.35, 2.53] MAE

ECMWF AIFS Single

Persistence baseline

4.75°F

[4.32, 5.21]

the observation lead_day days earlier — the bar every model has to clear at its own lead

Scored days

87

23 stations · 12 systems

in all available history, lead day 1

Systems ranked

11/12

next update

below n = 30: published, greyed, unranked

Mean absolute error with 95 % confidence intervals

Lead day 1 · all available history · 23 stations pooled · 00Z · nearest · instantaneous temperature. Whiskers are moving-block bootstrap intervals; models whose whiskers overlap are not distinguishable at this sample size. Baselines are drawn in grey and never ranked.

MAE by model with 95 % confidence intervals, lead day 1, all, 00Z, nearest0246810mean absolute error, °FECMWF AIFS SingleECMWF AIFS Single: 2.44 °F2.44ECMWF IFS HRESECMWF IFS HRES: 2.74 °F2.74Aurora (IFS init)Aurora (IFS init): 2.81 °F2.81GraphCast (IFS init)GraphCast (IFS init): 2.84 °F2.84Pangu-Weather (IFS init)Pangu-Weather (IFS init): 3.03 °F3.03NCEP GFSNCEP GFS: 3.03 °F3.03FourCastNet v2 (IFS init)FourCastNet v2 (IFS init): 3.14 °F3.14Aurora (GFS init)Aurora (GFS init): 3.14 °F3.14Pangu-Weather (GFS init)Pangu-Weather (GFS init): 3.2 °F3.2GraphCast (GFS init)GraphCast (GFS init): 3.34 °F3.34FourCastNet v2 (GFS init)FourCastNet v2 (GFS init): 3.35 °F3.35Persistence (baseline)Persistence (baseline): 4.75 °F4.75

Source: CastCheck 0.3.3, methodology v0.3.1 · ECMWF open data, NOAA/NCEP GFS, NOAA/CIRA AIWP, NWS ASOS · data through 2026-10-28 · CC BY 4.0. Hover a bar for its value.

Lead day 1target = init + 1 d

permalink

All available history, all 23 stations pooled, 00Z initialization, nearest interpolation, instantaneous temperature against the observed 2 m temperature at the same instant (ASOS routine METAR). Lower MAE is better; bias is positive when the model is too warm. Every number links to its permanent page.

Skill is 1 − MAE ÷ MAE(persistence) computed on the days both have a value — the small print in that column is that denominator and the size of the intersection, so the number can be checked against the persistence row rather than contradicting it. The persistence row's own n is its whole record, marked all days. Skill, debiased (out-of-sample) repeats the score after removing a bias estimated on the 30 scored days before each day and applied forward, never on the day itself. An interval reads — when the bootstrap could not run: fewer than 28 scored days or fewer than 4 blocks. Hit-rate intervals are Wilson score intervals, not bootstraps.

Lead day 1, all available history, 00Z, nearest, instantaneous temperature.
RankModelMAE °FBias °F±3 °F SkillSkill, debiased (out-of-sample) nvs leader
1ECMWF AIFS Singleaifs_single2.44[2.35, 2.53]−0.99[−1.12, −0.87]69% +0.32[+0.24, +0.40]vs 3.59 (n=87)+0.53n=72 8722.9 stns · 5 QC★ lowest MAE among ranked models (n >= 30) in this view
2ECMWF IFS HRESifs_hres2.74[2.63, 2.85]−0.60[−0.80, −0.40]65% +0.24[+0.15, +0.32]vs 3.59 (n=87)+0.42n=72 8722.9 stns · 5 QC▼ worse than the leader; distinguishable after the Holm correction within this table
3Aurora (IFS init)aurora_ifs2.81[2.75, 2.87]−1.65[−1.77, −1.52]62% +0.43[+0.37, +0.49]vs 4.95 (n=232)+0.63n=217 23222.9 stns · 14 QC▼ worse than the leader; distinguishable after the Holm correction within this table
4GraphCast (IFS init)graphcast_ifs2.84[2.79, 2.90]−1.65[−1.72, −1.57]61% +0.41[+0.34, +0.46]vs 4.82 (n=256)+0.63n=241 25622.9 stns · 17 QC▼ worse than the leader; distinguishable after the Holm correction within this table
5Pangu-Weather (IFS init)pangu_ifs3.03[2.96, 3.09]−1.53[−1.65, −1.43]59% +0.39[+0.33, +0.44]vs 4.97 (n=234)+0.61n=219 23422.9 stns · 14 QC▼ worse than the leader; distinguishable after the Holm correction within this table
6NCEP GFSgfs3.03[2.89, 3.18]+0.48[0.27, 0.68]60% +0.16[+0.04, +0.27]vs 3.59 (n=87)+0.38n=72 8722.9 stns · 5 QC▼ worse than the leader; distinguishable after the Holm correction within this table
7FourCastNet v2 (IFS init)fourcastnet_ifs3.14[3.04, 3.24]−1.45[−1.62, −1.29]57% +0.37[+0.31, +0.41]vs 4.96 (n=237)+0.50n=222 23722.9 stns · 14 QC▼ worse than the leader; distinguishable after the Holm correction within this table
8Aurora (GFS init)aurora_gfs3.14[3.03, 3.24]−2.05[−2.23, −1.86]56% +0.38[+0.30, +0.45]vs 5.11 (n=216)+0.62n=201 21622.7 stns · 14 QC▼ worse than the leader; distinguishable after the Holm correction within this table
9Pangu-Weather (GFS init)pangu_gfs3.20[3.10, 3.30]−1.63[−1.81, −1.45]57% +0.37[+0.31, +0.43]vs 5.11 (n=216)+0.59n=201 21622.7 stns · 14 QC▼ worse than the leader; distinguishable after the Holm correction within this table
10GraphCast (GFS init)graphcast_gfs3.34[3.24, 3.43]−2.27[−2.42, −2.12]54% +0.35[+0.27, +0.41]vs 5.11 (n=216)+0.60n=201 21622.7 stns · 14 QC▼ worse than the leader; distinguishable after the Holm correction within this table
11FourCastNet v2 (GFS init)fourcastnet_gfs3.35[3.22, 3.48]−1.82[−2.02, −1.62]54% +0.34[+0.28, +0.39]vs 5.11 (n=216)+0.51n=201 21622.7 stns · 14 QC▼ worse than the leader; distinguishable after the Holm correction within this table
—Persistence (baseline)persistence · baseline4.75[4.32, 5.21]−0.09[−0.30, 0.11]49% —— 300all days · 19 QC

+ model too warm − model too cold bias interval includes zero ★ lowest MAE among ranked models (n ≥ 30) = not distinguishable from the leader ▼ worse than the leader ▲ better than the leader — all three Holm-corrected within this table, over the family of comparisons against the leader; the uncorrected verdict for every pair is published in the pairwise table of each permanent link and in pairwise_latest.csv.gzn < 30 greyed and unranked CI is a 95 % moving-block bootstrap interval on the group's own days, and reads — when it could not be computed skill reads — when fewer than 10 days are common to the model and the baseline: the ratio of two means over a handful of shared days is not a number worth printing

Lead day 3target = init + 3 d

permalink

Same sampling as lead day 1. Skill is 1 − MAE ÷ MAE(persistence) on the days both have a value.

Lead day 3, all available history, 00Z, nearest, instantaneous temperature.
RankModelMAE °FBias °FSkillnvs leader
1ECMWF AIFS Singleaifs_single2.64[2.52, 2.75]−0.95[−1.12, −0.80]+0.49[+0.39, +0.58]vs 5.20 (n=85)8522.9 stns · 5 QC★ lowest MAE among ranked models (n >= 30) in this view
2ECMWF IFS HRESifs_hres3.09[2.98, 3.19]−0.55[−0.86, −0.22]+0.41[+0.30, +0.50]vs 5.20 (n=85)8522.9 stns · 5 QC▼ worse than the leader; distinguishable after the Holm correction within this table
3GraphCast (IFS init)graphcast_ifs3.14[3.05, 3.23]−1.70[−1.81, −1.60]+0.55[+0.50, +0.60]vs 7.02 (n=254)25422.9 stns · 16 QC▼ worse than the leader; distinguishable after the Holm correction within this table
4Aurora (IFS init)aurora_ifs3.23[3.13, 3.32]−1.83[−2.01, −1.66]+0.55[+0.49, +0.60]vs 7.17 (n=230)23022.9 stns · 13 QC▼ worse than the leader; distinguishable after the Holm correction within this table
5NCEP GFSgfs3.35[3.23, 3.50]+0.55[0.26, 0.83]+0.35[+0.22, +0.48]vs 5.20 (n=85)8522.9 stns · 5 QC▼ worse than the leader; distinguishable after the Holm correction within this table
6Pangu-Weather (IFS init)pangu_ifs3.48[3.38, 3.58]−1.67[−1.81, −1.54]+0.52[+0.45, +0.57]vs 7.19 (n=232)23222.9 stns · 13 QC▼ worse than the leader; distinguishable after the Holm correction within this table
7FourCastNet v2 (IFS init)fourcastnet_ifs3.56[3.40, 3.77]−1.64[−1.92, −1.40]+0.50[+0.45, +0.55]vs 7.19 (n=235)23522.9 stns · 13 QC▼ worse than the leader; distinguishable after the Holm correction within this table
8Pangu-Weather (GFS init)pangu_gfs3.80[3.65, 3.95]−1.99[−2.21, −1.76]+0.49[+0.44, +0.54]vs 7.46 (n=214)21422.9 stns · 13 QC▼ worse than the leader; distinguishable after the Holm correction within this table
9GraphCast (GFS init)graphcast_gfs3.81[3.67, 3.95]−2.51[−2.71, −2.30]+0.49[+0.43, +0.55]vs 7.46 (n=214)21422.9 stns · 13 QC▼ worse than the leader; distinguishable after the Holm correction within this table
10FourCastNet v2 (GFS init)fourcastnet_gfs3.82[3.61, 4.03]−2.02[−2.32, −1.74]+0.49[+0.44, +0.54]vs 7.46 (n=214)21422.9 stns · 13 QC▼ worse than the leader; distinguishable after the Holm correction within this table
11Aurora (GFS init)aurora_gfs3.87[3.73, 4.05]−2.66[−2.94, −2.37]+0.48[+0.41, +0.54]vs 7.46 (n=214)21422.9 stns · 13 QC▼ worse than the leader; distinguishable after the Holm correction within this table
—Persistence (baseline)persistence · baseline7.03[6.29, 7.78]−0.21[−0.74, 0.31]—300all days · 19 QC

Lead day 5target = init + 5 d

permalink

Same sampling as lead day 1. Skill is 1 − MAE ÷ MAE(persistence) on the days both have a value.

Lead day 5, all available history, 00Z, nearest, instantaneous temperature.
RankModelMAE °FBias °FSkillnvs leader
1ECMWF AIFS Singleaifs_single3.06[2.90, 3.22]−0.81[−1.04, −0.58]+0.47[+0.37, +0.55]vs 5.78 (n=83)8322.9 stns · 5 QC★ lowest MAE among ranked models (n >= 30) in this view
2ECMWF IFS HRESifs_hres3.59[3.37, 3.86]−0.50[−0.94, −0.08]+0.38[+0.27, +0.46]vs 5.78 (n=83)8322.9 stns · 5 QC▼ worse than the leader; distinguishable after the Holm correction within this table
3GraphCast (IFS init)graphcast_ifs3.81[3.62, 4.00]−1.66[−1.87, −1.47]+0.50[+0.45, +0.54]vs 7.54 (n=252)25222.8 stns · 15 QC▼ worse than the leader; distinguishable after the Holm correction within this table
4Aurora (IFS init)aurora_ifs3.93[3.75, 4.13]−1.81[−2.10, −1.54]+0.49[+0.43, +0.54]vs 7.68 (n=227)22722.8 stns · 12 QC▼ worse than the leader; distinguishable after the Holm correction within this table
5NCEP GFSgfs3.99[3.80, 4.19]+0.37[0.10, 0.65]+0.31[+0.18, +0.42]vs 5.78 (n=83)8322.9 stns · 5 QC▼ worse than the leader; distinguishable after the Holm correction within this table
6Pangu-Weather (IFS init)pangu_ifs4.25[4.04, 4.47]−1.88[−2.19, −1.61]+0.45[+0.39, +0.49]vs 7.69 (n=230)23022.8 stns · 12 QC▼ worse than the leader; distinguishable after the Holm correction within this table
7FourCastNet v2 (IFS init)fourcastnet_ifs4.30[4.00, 4.63]−1.87[−2.32, −1.51]+0.44[+0.39, +0.49]vs 7.71 (n=233)23322.8 stns · 12 QC▼ worse than the leader; distinguishable after the Holm correction within this table
8GraphCast (GFS init)graphcast_gfs4.50[4.28, 4.73]−2.43[−2.85, −2.03]+0.44[+0.38, +0.48]vs 8.01 (n=214)21422.8 stns · 14 QC▼ worse than the leader; distinguishable after the Holm correction within this table
9FourCastNet v2 (GFS init)fourcastnet_gfs4.52[4.20, 4.86]−2.26[−2.76, −1.84]+0.44[+0.38, +0.48]vs 8.01 (n=214)21422.8 stns · 14 QC▼ worse than the leader; distinguishable after the Holm correction within this table
10Pangu-Weather (GFS init)pangu_gfs4.54[4.34, 4.76]−2.16[−2.51, −1.84]+0.43[+0.38, +0.48]vs 8.01 (n=214)21422.8 stns · 14 QC▼ worse than the leader; distinguishable after the Holm correction within this table
11Aurora (GFS init)aurora_gfs4.76[4.56, 4.98]−3.06[−3.47, −2.67]+0.41[+0.33, +0.46]vs 8.01 (n=214)21422.8 stns · 14 QC▼ worse than the leader; distinguishable after the Holm correction within this table
—Persistence (baseline)persistence · baseline7.53[6.79, 8.30]−0.28[−1.07, 0.51]—300all days · 18 QC

Lead day 7target = init + 7 d

permalink

Same sampling as lead day 1. Skill is 1 − MAE ÷ MAE(persistence) on the days both have a value.

Lead day 7, all available history, 00Z, nearest, instantaneous temperature.
RankModelMAE °FBias °FSkillnvs leader
1ECMWF AIFS Singleaifs_single3.83[3.41, 4.27]−1.17[−1.50, −0.82]+0.36[+0.28, +0.43]vs 6.01 (n=81)8122.9 stns · 5 QC★ lowest MAE among ranked models (n >= 30) in this view
2ECMWF IFS HRESifs_hres4.37[3.98, 4.84]−0.32[−1.00, 0.31]+0.27[+0.17, +0.36]vs 6.01 (n=81)8122.9 stns · 5 QC▼ worse than the leader; distinguishable after the Holm correction within this table
3GraphCast (IFS init)graphcast_ifs4.79[4.42, 5.17]−1.78[−2.17, −1.41]+0.41[+0.36, +0.45]vs 8.12 (n=250)25022.8 stns · 16 QC▼ worse than the leader; distinguishable after the Holm correction within this table
4Aurora (IFS init)aurora_ifs4.82[4.49, 5.15]−1.33[−1.81, −0.81]+0.42[+0.37, +0.46]vs 8.27 (n=225)22522.8 stns · 13 QC= not distinguishable from the leader after the Holm correction within this table
5NCEP GFSgfs4.85[4.45, 5.32]+0.39[−0.11, 0.83]+0.19[+0.06, +0.31]vs 6.01 (n=81)8122.9 stns · 5 QC▼ worse than the leader; distinguishable after the Holm correction within this table
6FourCastNet v2 (IFS init)fourcastnet_ifs5.19[4.76, 5.63]−2.14[−2.64, −1.67]+0.37[+0.32, +0.42]vs 8.29 (n=231)23122.8 stns · 13 QC▼ worse than the leader; distinguishable after the Holm correction within this table
7Pangu-Weather (IFS init)pangu_ifs5.30[4.99, 5.61]−2.12[−2.49, −1.68]+0.36[+0.30, +0.40]vs 8.28 (n=228)22822.8 stns · 13 QC▼ worse than the leader; distinguishable after the Holm correction within this table
8FourCastNet v2 (GFS init)fourcastnet_gfs5.46[5.02, 5.94]−2.21[−2.73, −1.75]+0.36[+0.31, +0.40]vs 8.53 (n=212)21222.8 stns · 12 QC= not distinguishable from the leader after the Holm correction within this table
9GraphCast (GFS init)graphcast_gfs5.61[5.19, 6.10]−2.15[−2.75, −1.47]+0.34[+0.28, +0.40]vs 8.53 (n=212)21222.8 stns · 12 QC▼ worse than the leader; distinguishable after the Holm correction within this table
10Pangu-Weather (GFS init)pangu_gfs5.66[5.31, 6.06]−2.13[−2.55, −1.70]+0.34[+0.27, +0.39]vs 8.53 (n=212)21222.8 stns · 12 QC▼ worse than the leader; distinguishable after the Holm correction within this table
11Aurora (GFS init)aurora_gfs5.73[5.43, 6.08]−3.13[−3.63, −2.60]+0.33[+0.26, +0.38]vs 8.53 (n=212)21222.8 stns · 12 QC▼ worse than the leader; distinguishable after the Holm correction within this table
—Persistence (baseline)persistence · baseline7.94[7.16, 8.76]−0.32[−1.33, 0.64]—300all days · 19 QC

The same four samples as a daily maximum and minimum

Lead day 1, all available history, 00Z, nearest. Here the forecast's max/min of the four samples is scored against the observation's max/min of the same four instants. Like for like: whatever the four-sample definition misses, it misses on both sides. The comparison against the true NWS daily extremes is a different question and lives on the station and permanent-link pages.

Sampled daily maximumtmax_s

RankModelMAE °FBias °FSkillnvs leader
1ECMWF AIFS Singleaifs_single2.10[2.00, 2.21]−0.36[−0.50, −0.22]+0.42vs 3.60 (n=87)87★
2ECMWF IFS HRESifs_hres2.62[2.50, 2.78]−0.63[−0.95, −0.29]+0.27vs 3.60 (n=87)87▼
3Pangu-Weather (IFS init)pangu_ifs2.83[2.70, 2.96]−1.23[−1.47, −1.00]+0.43vs 4.96 (n=234)234▼
4GraphCast (IFS init)graphcast_ifs2.85[2.75, 2.95]−1.84[−1.97, −1.72]+0.41vs 4.82 (n=256)256▼
5Aurora (IFS init)aurora_ifs2.95[2.84, 3.05]−2.04[−2.19, −1.88]+0.40vs 4.95 (n=232)232▼
6NCEP GFSgfs2.97[2.68, 3.27]+0.59[0.07, 1.10]+0.17vs 3.60 (n=87)87▼
7Pangu-Weather (GFS init)pangu_gfs3.03[2.89, 3.18]−1.59[−1.86, −1.31]+0.40vs 5.05 (n=216)216▼
8FourCastNet v2 (IFS init)fourcastnet_ifs3.15[2.98, 3.31]−1.90[−2.14, −1.69]+0.36vs 4.95 (n=237)237▼
9FourCastNet v2 (GFS init)fourcastnet_gfs3.44[3.25, 3.63]−2.37[−2.64, −2.08]+0.32vs 5.05 (n=216)216▼
10Aurora (GFS init)aurora_gfs3.59[3.39, 3.79]−2.95[−3.18, −2.70]+0.29vs 5.05 (n=216)216▼
11GraphCast (GFS init)graphcast_gfs3.69[3.53, 3.84]−3.07[−3.26, −2.88]+0.27vs 5.05 (n=216)216▼
—Persistence (baseline)persistence4.74[4.29, 5.22]−0.08[−0.29, 0.13]—300all days

Sampled daily minimumtmin_s

RankModelMAE °FBias °FSkillnvs leader
1ECMWF IFS HRESifs_hres2.35[2.16, 2.55]−0.30[−0.45, −0.16]+0.20vs 2.92 (n=87)87★
2Aurora (IFS init)aurora_ifs2.37[2.28, 2.45]−0.93[−1.12, −0.75]+0.44vs 4.27 (n=232)232▲
3ECMWF AIFS Singleaifs_single2.40[2.25, 2.57]−1.39[−1.55, −1.23]+0.18vs 2.92 (n=87)87=
4GraphCast (IFS init)graphcast_ifs2.47[2.35, 2.59]−1.01[−1.12, −0.90]+0.40vs 4.13 (n=256)256▲
5Aurora (GFS init)aurora_gfs2.52[2.43, 2.62]−0.89[−1.09, −0.69]+0.43vs 4.41 (n=216)216=
6Pangu-Weather (IFS init)pangu_ifs2.67[2.57, 2.78]−1.18[−1.31, −1.07]+0.38vs 4.28 (n=234)234=
7Pangu-Weather (GFS init)pangu_gfs2.75[2.62, 2.90]−1.03[−1.21, −0.87]+0.38vs 4.41 (n=216)216=
8GraphCast (GFS init)graphcast_gfs2.75[2.63, 2.88]−1.16[−1.34, −0.98]+0.38vs 4.41 (n=216)216=
9NCEP GFSgfs2.84[2.63, 3.09]+0.88[0.46, 1.36]+0.03vs 2.92 (n=87)87▼
10FourCastNet v2 (IFS init)fourcastnet_ifs2.99[2.86, 3.12]−1.22[−1.42, −1.02]+0.30vs 4.27 (n=237)237▼
11FourCastNet v2 (GFS init)fourcastnet_gfs3.13[3.00, 3.27]−1.48[−1.69, −1.27]+0.29vs 4.41 (n=216)216▼
—Persistence (baseline)persistence4.02[3.60, 4.47]−0.10[−0.34, 0.12]—300all days

Every model × every lead day

MAE in °F with the bias and n underneath, all available history, 00Z, nearest, instantaneous temperature. The sparkline is the same model's MAE across lead days 1–9 on a shared vertical scale.

Modeld0d1d2d3d4d5d6d7d8d9 lead 1–9
ECMWF AIFS Singleaifs_single2.33−1.00 · n=882.44−0.99 · n=872.53−1.00 · n=862.64−0.95 · n=852.84−0.92 · n=843.06−0.81 · n=833.40−0.86 · n=823.83−1.17 · n=814.24−1.15 · n=804.56−0.51 · n=79ECMWF AIFS Single MAE by lead day 1 to 9
Aurora (GFS init)aurora_gfs2.83−1.62 · n=2163.14−2.05 · n=2163.48−2.38 · n=2153.87−2.66 · n=2144.27−2.84 · n=2144.76−3.06 · n=2145.25−3.13 · n=2135.73−3.13 · n=2126.13−3.06 · n=2116.57−2.39 · n=211Aurora (GFS init) MAE by lead day 1 to 9
Aurora (IFS init)aurora_ifs2.60−1.47 · n=2332.81−1.65 · n=2323.01−1.77 · n=2313.23−1.83 · n=2303.54−1.88 · n=2283.93−1.81 · n=2274.38−1.55 · n=2264.82−1.33 · n=2255.26−1.20 · n=2245.79−0.43 · n=223Aurora (IFS init) MAE by lead day 1 to 9
FourCastNet v2 (GFS init)fourcastnet_gfs3.21−1.81 · n=2163.35−1.82 · n=2163.56−1.90 · n=2153.82−2.02 · n=2144.15−2.13 · n=2144.52−2.26 · n=2144.95−2.21 · n=2135.46−2.21 · n=2125.93−2.20 · n=2116.44−1.56 · n=211FourCastNet v2 (GFS init) MAE by lead day 1 to 9
FourCastNet v2 (IFS init)fourcastnet_ifs2.97−1.58 · n=2383.14−1.45 · n=2373.33−1.53 · n=2363.56−1.64 · n=2353.93−1.77 · n=2344.30−1.87 · n=2334.71−1.98 · n=2325.19−2.14 · n=2315.65−2.19 · n=2306.19−1.71 · n=229FourCastNet v2 (IFS init) MAE by lead day 1 to 9
NCEP GFSgfs2.82+0.48 · n=883.03+0.48 · n=873.13+0.44 · n=863.35+0.55 · n=853.59+0.48 · n=843.99+0.37 · n=834.41+0.46 · n=824.85+0.39 · n=815.45+0.13 · n=805.83−0.49 · n=79NCEP GFS MAE by lead day 1 to 9
GraphCast (GFS init)graphcast_gfs3.05−1.81 · n=2163.34−2.27 · n=2163.57−2.44 · n=2153.81−2.51 · n=2144.10−2.49 · n=2144.50−2.43 · n=2145.03−2.30 · n=2135.61−2.15 · n=2126.00−2.14 · n=2116.64−1.52 · n=211GraphCast (GFS init) MAE by lead day 1 to 9
GraphCast (IFS init)graphcast_ifs2.62−1.39 · n=2572.84−1.65 · n=2562.99−1.72 · n=2553.14−1.70 · n=2543.40−1.70 · n=2533.81−1.66 · n=2524.28−1.61 · n=2514.79−1.78 · n=2505.41−1.91 · n=2496.16−1.77 · n=248GraphCast (IFS init) MAE by lead day 1 to 9
ECMWF IFS HRESifs_hres2.56−0.59 · n=882.74−0.60 · n=872.90−0.56 · n=863.09−0.55 · n=853.26−0.58 · n=843.59−0.50 · n=833.98−0.33 · n=824.37−0.32 · n=814.64−0.27 · n=805.01−0.05 · n=79ECMWF IFS HRES MAE by lead day 1 to 9
Pangu-Weather (GFS init)pangu_gfs2.90−1.31 · n=2163.20−1.63 · n=2163.47−1.86 · n=2153.80−1.99 · n=2144.15−2.07 · n=2144.54−2.16 · n=2145.12−2.17 · n=2135.66−2.13 · n=2126.25−2.18 · n=2116.66−1.58 · n=211Pangu-Weather (GFS init) MAE by lead day 1 to 9
Pangu-Weather (IFS init)pangu_ifs2.73−1.24 · n=2353.03−1.53 · n=2343.22−1.62 · n=2333.48−1.67 · n=2323.81−1.80 · n=2314.25−1.88 · n=2304.74−1.96 · n=2295.30−2.12 · n=2285.86−2.12 · n=2276.45−1.32 · n=226Pangu-Weather (IFS init) MAE by lead day 1 to 9
Persistence (baseline)persistence—4.75−0.09 · n=3006.39−0.16 · n=3007.03−0.21 · n=3007.22−0.22 · n=3007.53−0.28 · n=3007.75−0.31 · n=3007.94−0.32 · n=3008.03−0.36 · n=3008.10−0.39 · n=300Persistence (baseline) MAE by lead day 1 to 9

Where the errors are

Both maps show a fixed quantity per station. Neither shows which model wins where: on samples this short the per-station winner is mostly noise, and a map of winners would invite a comparison the data cannot carry.

ECMWF IFS HRES bias

Mean bias of the fixed reference model ECMWF IFS HRES (lead day 1, instantaneous temperature, all window, 00Z, nearest). One model everywhere, so the colours compare stations, not models. 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). The frame is a latitude/longitude graticule on an Albers projection.

Source: CastCheck · station coordinates NWS/NOAA · Albers conic projection · stations.csv. Hover a dot for its numbers.

model too cold interval includes zero model too warm dot area ∝ scored days

ECMWF IFS HRES bias as a table
StationModelMAE °FBias °Fn
KATL Atlanta HartsfieldECMWF IFS HRES2.50−0.8087
KAUS Austin BergstromECMWF IFS HRES2.69+0.9887
KBOS Boston LoganECMWF IFS HRES2.50−0.8183
KDCA Washington ReaganECMWF IFS HRES2.70−1.1787
KDEN Denver IntlECMWF IFS HRES3.17+1.2887
KDFW Dallas-Fort WorthECMWF IFS HRES2.19+0.9687
KEWR Newark LibertyECMWF IFS HRES2.88−2.2287
KIAH Houston BushECMWF IFS HRES2.31−0.6987
KLAS Las Vegas Harry ReidECMWF IFS HRES4.18−3.5987
KLAX Los Angeles IntlECMWF IFS HRES2.67−2.3387
KMIA Miami IntlECMWF IFS HRES2.64−1.8587
KMSP Minneapolis-St PaulECMWF IFS HRES2.33−0.2287
KMSY New Orleans IntlECMWF IFS HRES2.18+0.1587
KNYC New York Central ParkECMWF IFS HRES2.23−0.2886
KOKC Oklahoma CityECMWF IFS HRES4.06+2.7787
KORD Chicago O'HareECMWF IFS HRES2.43−1.4987
KPHL Philadelphia IntlECMWF IFS HRES3.12−2.3787
KPHX Phoenix Sky HarborECMWF IFS HRES3.15−1.0387
KSAN San Diego LindberghECMWF IFS HRES3.81−3.0687
KSAT San Antonio IntlECMWF IFS HRES2.12+1.2287
KSEA Seattle-TacomaECMWF IFS HRES2.18−0.1287
KSFO San Francisco IntlECMWF IFS HRES2.89+0.4887
KTTN Trenton MercerECMWF IFS HRES2.02+0.3986

All-model mean bias

Mean bias averaged over every scored model at each station (lead day 1, instantaneous temperature, all window, 00Z, nearest). A station that is cold for all of them is a station property — elevation, coastline, a grid cell that is partly sea — not a model ranking. Dot area grows with the number of scored days; fill is the mean bias (warm = model too warm, cool = too cold). The frame is a latitude/longitude graticule on an Albers projection.

Source: CastCheck · station coordinates NWS/NOAA · Albers conic projection · stations.csv. Hover a dot for its numbers.

model too cold interval includes zero model too warm dot area ∝ scored days

All-model mean bias as a table
StationModelsMAE °FBias °Fn
KATL Atlanta Hartsfield11 models3.20−1.90255
KAUS Austin Bergstrom11 models3.00−0.32255
KBOS Boston Logan11 models2.80−1.46242
KDCA Washington Reagan11 models2.94−1.58255
KDEN Denver Intl11 models3.68−1.32255
KDFW Dallas-Fort Worth11 models2.75−1.29252
KEWR Newark Liberty11 models3.30−2.49254
KIAH Houston Bush11 models2.55−1.00256
KLAS Las Vegas Harry Reid11 models4.85−4.57255
KLAX Los Angeles Intl11 models2.69−1.60256
KMIA Miami Intl11 models2.20−0.49254
KMSP Minneapolis-St Paul11 models3.29−2.14256
KMSY New Orleans Intl11 models2.25−0.75256
KNYC New York Central Park11 models2.79−0.85254
KOKC Oklahoma City11 models3.22+0.20255
KORD Chicago O'Hare11 models2.77−1.57256
KPHL Philadelphia Intl11 models3.07−2.09256
KPHX Phoenix Sky Harbor11 models4.07−2.96256
KSAN San Diego Lindbergh11 models3.27−2.05255
KSAT San Antonio Intl11 models2.49−0.71256
KSEA Seattle-Tacoma11 models2.50−0.70256
KSFO San Francisco Intl11 models2.98−0.46256
KTTN Trenton Mercer11 models2.42+0.52251

Data availability

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

ModelPeriodScored daysCoverage
ECMWF AIFS Single2026-08-02 → 2026-10-2787
2026-01-012026-10-27
Aurora (GFS init)2026-01-02 → 2026-10-27216
2026-01-012026-10-27
Aurora (IFS init)2026-01-02 → 2026-10-27232
2026-01-012026-10-27
FourCastNet v2 (GFS init)2026-01-02 → 2026-10-27216
2026-01-012026-10-27
FourCastNet v2 (IFS init)2026-01-02 → 2026-10-27237
2026-01-012026-10-27
NCEP GFS2026-08-02 → 2026-10-2787
2026-01-012026-10-27
GraphCast (GFS init)2026-01-02 → 2026-10-27216
2026-01-012026-10-27
GraphCast (IFS init)2026-01-02 → 2026-10-27256
2026-01-012026-10-27
ECMWF IFS HRES2026-08-02 → 2026-10-2787
2026-01-012026-10-27
Pangu-Weather (GFS init)2026-01-02 → 2026-10-27216
2026-01-012026-10-27
Pangu-Weather (IFS init)2026-01-02 → 2026-10-27234
2026-01-012026-10-27
Persistence (baseline)2026-01-01 → 2026-10-27300
2026-01-012026-10-27

Stations23

full station table
  • KNYC — New York Central Park
  • KEWR — Newark Liberty
  • KPHL — Philadelphia Intl
  • KTTN — Trenton Mercer
  • KBOS — Boston Logan
  • KDCA — Washington Reagan
  • KATL — Atlanta Hartsfield
  • KMIA — Miami Intl
  • KORD — Chicago O'Hare
  • KMSP — Minneapolis-St Paul
  • KDFW — Dallas-Fort Worth
  • KIAH — Houston Bush
  • KAUS — Austin Bergstrom
  • KSAT — San Antonio Intl
  • KMSY — New Orleans Intl
  • KOKC — Oklahoma City
  • KDEN — Denver Intl
  • KPHX — Phoenix Sky Harbor
  • KLAS — Las Vegas Harry Reid
  • KLAX — Los Angeles Intl
  • KSAN — San Diego Lindbergh
  • KSFO — San Francisco Intl
  • KSEA — Seattle-Tacoma