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, 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.15-2.94 · n=30 3.68-3.60 · n=29 3.96-3.63 · n=28 3.90-3.35 · n=27 4.01-3.27 · n=26 4.51-4.08 · n=25 5.85-5.10 · n=24 6.65-6.24 · n=23 6.48-5.57 · n=22 6.04-5.49 · n=21 ECMWF AIFS Single MAE by lead day 1 to 9, tmax
Aurora (GFS init)aurora_gfs 6.37-6.37 · n=2 8.11-8.11 · n=1 Aurora (GFS init) MAE by lead day 1 to 9, tmax
Aurora (IFS init)aurora_ifs 5.74-5.74 · n=3 6.55-6.55 · n=2 7.79-7.79 · n=1 Aurora (IFS init) MAE by lead day 1 to 9, tmax
FourCastNet v2 (GFS init)fourcastnet_gfs 5.20-5.20 · n=2 6.01-6.01 · n=1 FourCastNet v2 (GFS init) MAE by lead day 1 to 9, tmax
FourCastNet v2 (IFS init)fourcastnet_ifs 5.88-5.88 · n=3 6.41-6.41 · n=2 5.88-5.88 · n=1 FourCastNet v2 (IFS init) MAE by lead day 1 to 9, tmax
NCEP GFSgfs 2.07+0.90 · n=30 3.29+1.70 · n=29 3.89+1.91 · n=28 4.33+2.40 · n=27 3.81-0.59 · n=26 4.00+0.07 · n=25 4.75-1.20 · n=24 5.15-0.61 · n=23 7.09-2.37 · n=22 6.39-2.92 · n=21 NCEP GFS MAE by lead day 1 to 9, tmax
GraphCast (GFS init)graphcast_gfs 6.98-6.98 · n=2 7.60-7.60 · n=1 GraphCast (GFS init) MAE by lead day 1 to 9, tmax
GraphCast (IFS init)graphcast_ifs 5.55-5.55 · n=28 6.33-6.33 · n=27 6.26-6.25 · n=26 6.32-6.14 · n=25 6.04-5.92 · n=25 6.73-6.57 · n=25 6.93-6.77 · n=24 7.55-7.17 · n=23 6.31-6.05 · n=22 6.44-5.66 · n=21 GraphCast (IFS init) MAE by lead day 1 to 9, tmax
ECMWF IFS HRESifs_hres 2.93-2.62 · n=24 3.82-2.78 · n=23 3.42-2.18 · n=22 3.65-2.19 · n=22 3.04-2.36 · n=20 2.96-1.85 · n=18 4.95-2.68 · n=19 3.59-3.13 · n=18 5.02-3.81 · n=17 5.64-3.42 · n=16 ECMWF IFS HRES MAE by lead day 1 to 9, tmax
Pangu-Weather (GFS init)pangu_gfs 4.42-4.42 · n=2 0.54-0.54 · n=1 Pangu-Weather (GFS init) MAE by lead day 1 to 9, tmax
Pangu-Weather (IFS init)pangu_ifs 4.60-4.60 · n=3 4.57-4.57 · n=2 4.11-4.11 · 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, 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.52-2.07 · n=30 2.64-2.27 · n=29 2.71-2.22 · n=28 2.85-2.00 · n=27 2.83-1.99 · n=26 2.72-1.87 · n=25 3.66-2.08 · n=24 4.34-2.35 · n=23 4.69-2.76 · n=22 5.58-1.33 · n=21 ECMWF AIFS Single MAE by lead day 1 to 9, tmin
Aurora (GFS init)aurora_gfs 0.51+0.44 · n=2 2.13-2.13 · n=1 Aurora (GFS init) MAE by lead day 1 to 9, tmin
Aurora (IFS init)aurora_ifs 1.11-0.12 · n=3 1.01+0.02 · n=2 1.50-1.50 · n=1 Aurora (IFS init) MAE by lead day 1 to 9, tmin
FourCastNet v2 (GFS init)fourcastnet_gfs 1.51-1.51 · n=2 2.36-2.36 · n=1 FourCastNet v2 (GFS init) MAE by lead day 1 to 9, tmin
FourCastNet v2 (IFS init)fourcastnet_ifs 2.15-2.15 · n=3 1.97-1.97 · n=2 1.40-1.40 · n=1 FourCastNet v2 (IFS init) MAE by lead day 1 to 9, tmin
NCEP GFSgfs 1.81-1.18 · n=30 2.28-0.29 · n=29 2.27-0.03 · n=28 2.98+0.28 · n=27 3.57+0.13 · n=26 4.31-1.67 · n=25 4.46-2.13 · n=24 5.32-1.47 · n=23 7.11-1.90 · n=22 6.63-2.56 · n=21 NCEP GFS MAE by lead day 1 to 9, tmin
GraphCast (GFS init)graphcast_gfs 1.24+1.24 · n=2 1.36-1.36 · n=1 GraphCast (GFS init) MAE by lead day 1 to 9, tmin
GraphCast (IFS init)graphcast_ifs 1.45-0.61 · n=28 1.64-1.10 · n=27 2.13-1.34 · n=26 2.45-1.59 · n=25 2.22-1.61 · n=25 2.84-1.69 · n=25 3.62-1.39 · n=24 4.76-1.65 · n=23 5.52-1.46 · n=22 5.95-1.25 · n=21 GraphCast (IFS init) MAE by lead day 1 to 9, tmin
ECMWF IFS HRESifs_hres 1.54+0.14 · n=24 1.47+0.04 · n=23 1.81+0.63 · n=22 2.39+0.79 · n=22 1.86+0.53 · n=20 1.91+0.65 · n=18 2.50+0.91 · n=19 3.28+1.28 · n=18 4.22+1.52 · n=17 5.51+1.55 · n=16 ECMWF IFS HRES MAE by lead day 1 to 9, tmin
Pangu-Weather (GFS init)pangu_gfs 0.81-0.81 · n=2 1.26-1.26 · n=1 Pangu-Weather (GFS init) MAE by lead day 1 to 9, tmin
Pangu-Weather (IFS init)pangu_ifs 0.77-0.73 · n=3 1.36-1.36 · n=2 3.69-3.69 · 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

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.68-3.60 · n=298.11-8.11 · n=16.55-6.55 · n=26.01-6.01 · n=16.41-6.41 · n=23.29+1.70 · n=297.60-7.60 · n=16.33-6.33 · n=273.82-2.78 · n=230.54-0.54 · n=14.57-4.57 · n=2
2026-01 3.54-3.54 · 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

Observed truth — last 30 days

Climatological dayTmax °F Tmin °FSourceFlag
2026-08-308669OBSobs_fallback
2026-08-298367CLI
2026-08-288359CLI
2026-08-278362CLI
2026-08-268266CLI
2026-08-258268CLI
2026-08-248560CLI
2026-08-238056CLI
2026-08-228061CLI
2026-08-218467CLI
2026-08-207960CLI
2026-08-198257CLI
2026-08-188465CLI
2026-08-178562CLI
2026-08-168368CLI
2026-08-158268CLI
2026-08-148367CLI
2026-08-137970CLI
2026-08-128971CLI
2026-08-118871CLI
2026-08-108668CLI
2026-08-098768CLI
2026-08-088160CLI
2026-08-078065CLI
2026-08-068262CLI
2026-08-058061CLI
2026-08-047764CLI
2026-08-038669CLI
2026-08-028566CLI
2026-08-018664CLI

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