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

KMSP — Minneapolis-St Paul

44.8831, -93.2289 · 256 m· standard offset UTC-6 h · truth product CLIMSP

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, 12Z, 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.25-2.90 · n=29 3.83-3.67 · n=28 3.91-3.40 · n=27 4.02-3.34 · n=26 4.46-3.92 · n=24 5.48-4.95 · n=24 6.70-6.43 · n=23 7.11-7.07 · n=22 6.84-5.98 · n=21 ECMWF AIFS Single MAE by lead day 1 to 9, tmax
Aurora (GFS init)aurora_gfs 7.82-7.82 · n=2 8.97-8.97 · n=1 Aurora (GFS init) MAE by lead day 1 to 9, tmax
Aurora (IFS init)aurora_ifs 7.61-7.61 · n=2 8.47-8.47 · n=1 Aurora (IFS init) MAE by lead day 1 to 9, tmax
FourCastNet v2 (GFS init)fourcastnet_gfs 6.68-6.68 · n=2 5.65-5.65 · n=1 FourCastNet v2 (GFS init) MAE by lead day 1 to 9, tmax
FourCastNet v2 (IFS init)fourcastnet_ifs 6.11-6.11 · n=2 6.66-6.66 · n=1 FourCastNet v2 (IFS init) MAE by lead day 1 to 9, tmax
NCEP GFSgfs 2.53+2.21 · n=29 3.64+1.61 · n=28 3.78+2.37 · n=27 4.56+1.94 · n=26 5.64-0.06 · n=25 4.60+0.09 · n=24 3.82-1.27 · n=23 6.22-2.55 · n=22 4.70-1.70 · n=21 NCEP GFS MAE by lead day 1 to 9, tmax
GraphCast (GFS init)graphcast_gfs 8.47-8.47 · n=2 8.96-8.96 · n=1 GraphCast (GFS init) MAE by lead day 1 to 9, tmax
GraphCast (IFS init)graphcast_ifs 6.71-6.71 · n=27 6.82-6.82 · n=26 6.41-6.36 · n=25 6.53-6.35 · n=25 6.47-6.43 · n=25 6.70-6.31 · n=24 7.32-7.26 · n=23 7.69-7.41 · n=22 7.00-5.94 · n=21 GraphCast (IFS init) MAE by lead day 1 to 9, tmax
ECMWF IFS HRESifs_hres 4.11-3.64 · n=24 4.11-2.99 · n=22 4.20-3.45 · n=22 3.76-3.33 · n=21 3.72-3.41 · n=20 3.66-2.56 · n=19 5.04-4.06 · n=17 4.75-4.54 · n=17 3.74-3.57 · n=15 ECMWF IFS HRES MAE by lead day 1 to 9, tmax
Pangu-Weather (GFS init)pangu_gfs 6.57-6.57 · n=2 2.74-2.74 · n=1 Pangu-Weather (GFS init) MAE by lead day 1 to 9, tmax
Pangu-Weather (IFS init)pangu_ifs 4.77-4.77 · n=2 2.36-2.36 · n=1 Pangu-Weather (IFS init) MAE by lead day 1 to 9, tmax
Persistence (baseline)persistence 3.53-0.07 · n=90 4.71-0.20 · n=90 5.17-0.19 · n=90 5.93-0.13 · n=90 6.36-0.11 · n=90 6.34-0.03 · n=90 6.33-0.00 · n=90 6.80+0.07 · n=90 6.63+0.10 · n=90 Persistence (baseline) MAE by lead day 1 to 9, tmax

Up to 1 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, 12Z, 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.75-2.36 · n=29 2.49-2.04 · n=28 2.71-2.16 · n=27 2.64-2.13 · n=26 2.58-1.83 · n=24 3.46-1.88 · n=24 4.59-3.43 · n=23 5.71-4.63 · n=22 5.70-3.20 · n=21 ECMWF AIFS Single MAE by lead day 1 to 9, tmin
Aurora (GFS init)aurora_gfs 1.45-0.53 · n=2 1.98-1.98 · n=1 Aurora (GFS init) MAE by lead day 1 to 9, tmin
Aurora (IFS init)aurora_ifs 1.02-0.77 · n=2 1.74-1.74 · n=1 Aurora (IFS init) MAE by lead day 1 to 9, tmin
FourCastNet v2 (GFS init)fourcastnet_gfs 2.16-2.16 · n=2 2.49-2.49 · n=1 FourCastNet v2 (GFS init) MAE by lead day 1 to 9, tmin
FourCastNet v2 (IFS init)fourcastnet_ifs 1.89-1.89 · n=2 1.60-1.60 · n=1 FourCastNet v2 (IFS init) MAE by lead day 1 to 9, tmin
NCEP GFSgfs 1.84-0.08 · n=29 2.32-0.12 · n=28 3.35+0.44 · n=27 2.48+0.10 · n=26 4.24+0.04 · n=25 4.74-1.27 · n=24 5.25-0.75 · n=23 5.24-2.09 · n=22 6.11-1.97 · n=21 NCEP GFS MAE by lead day 1 to 9, tmin
GraphCast (GFS init)graphcast_gfs 1.69+0.46 · n=2 0.84-0.84 · n=1 GraphCast (GFS init) MAE by lead day 1 to 9, tmin
GraphCast (IFS init)graphcast_ifs 2.15-1.86 · n=27 2.08-1.66 · n=26 2.33-1.78 · n=25 2.14-1.53 · n=25 2.41-1.49 · n=25 3.28-1.39 · n=24 3.93-1.74 · n=23 5.12-2.37 · n=22 6.08-1.58 · n=21 GraphCast (IFS init) MAE by lead day 1 to 9, tmin
ECMWF IFS HRESifs_hres 1.53-0.25 · n=24 1.67-0.13 · n=22 1.64-0.06 · n=22 1.36-0.31 · n=21 2.03+0.08 · n=20 1.77+0.67 · n=19 2.91+0.87 · n=17 2.84-0.33 · n=17 3.62+0.13 · n=15 ECMWF IFS HRES MAE by lead day 1 to 9, tmin
Pangu-Weather (GFS init)pangu_gfs 1.92-0.43 · n=2 1.52-1.52 · n=1 Pangu-Weather (GFS init) MAE by lead day 1 to 9, tmin
Pangu-Weather (IFS init)pangu_ifs 0.98-0.98 · n=2 1.25-1.25 · n=1 Pangu-Weather (IFS init) MAE by lead day 1 to 9, tmin
Persistence (baseline)persistence 3.11-0.09 · n=90 4.44-0.16 · n=90 4.76-0.07 · n=90 5.10-0.03 · n=90 5.61-0.06 · n=90 6.31-0.07 · n=90 6.73+0.04 · n=90 6.48+0.10 · n=90 6.33-0.02 · n=90 Persistence (baseline) MAE by lead day 1 to 9, tmin

Up to 1 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 slices, model availability and the observed-truth table live on the canonical page: they do not depend on the window, initialization or interpolation selected here.

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