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

ALL — All stations (mean of daily station errors)

Cross-station aggregate: the daily error series is first averaged over the stations that have a value that day, then scored and bootstrapped over days exactly like a single station.

These pages are always bilinear interpolation, the headline method. The nearest-node variant, and every other window/initialization/interpolation/variable combination, is published on each permanent link below — follow any number.

Daily maximum temperature — MAE °F

the last 90 days, 00Z, bilinear. MAE with the bias and n underneath; every cell links to its permanent page. The sparkline shows the same model across lead days 1–9 on a scale shared within this table.
Modeld0d1d2d3d4d5d6d7d8d9lead 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, tmax
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, tmax
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, tmax
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, tmax
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, tmax
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, tmax
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, tmax
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, tmax
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, tmax
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, tmax
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, tmax
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, tmax

Up to 2 of the scored days in this table carry a QC flag on the observation (a CLI value that disagreed with the hourly observations, or a fallback source). They are kept in the scores and counted here rather than dropped — see methodology.

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

Daily minimum temperature — MAE °F

the last 90 days, 00Z, bilinear. MAE with the bias and n underneath; every cell links to its permanent page. The sparkline shows the same model across lead days 1–9 on a scale shared within this table.
Modeld0d1d2d3d4d5d6d7d8d9lead 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, tmin
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, tmin
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, tmin
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, tmin
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, tmin
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, tmin
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, tmin
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, tmin
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, tmin
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, tmin
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, tmin
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, tmin

Up to 2 of the scored days in this table carry a QC flag on the observation (a CLI value that disagreed with the hourly observations, or a fallback source). They are kept in the scores and counted here rather than dropped — see methodology.

Month by month

MAE °F at lead day 1, 00Z, bilinear, daily maximum — the seasonal slice behind the window averages. A model that is excellent in one season and poor in another shows up here and nowhere else.

Monthaifs_singleaurora_gfsaurora_ifsfourcastnet_gfsfourcastnet_ifsgfsgraphcast_gfsgraphcast_ifsifs_hrespangu_gfspangu_ifs
2026-08 3.08-3.08 · n=296.29-6.29 · n=15.27-5.27 · n=23.85-3.85 · n=13.60-3.60 · n=21.17-1.06 · n=295.95-5.95 · n=14.84-4.84 · n=272.83-2.83 · n=232.72-2.72 · n=13.37-3.37 · n=2
2026-01 4.58-4.58 · n=6

Model availability at this station

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

All scores as JSON scores_latest.csv daily_errors.csv.gz data & licences