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

KDEN — Denver Intl

39.8466, -104.6562 · 1647 m· standard offset UTC-7 h · truth product CLIDEN

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.68-3.47 · n=29 3.55-3.37 · n=28 3.86-3.34 · n=27 4.10-3.87 · n=26 4.45-4.35 · n=24 5.15-5.15 · n=24 6.51-6.39 · n=23 6.78-6.17 · n=22 6.56-6.23 · n=21 ECMWF AIFS Single MAE by lead day 1 to 9, tmax
Aurora (GFS init)aurora_gfs 7.61-7.61 · n=2 5.90-5.90 · n=1 Aurora (GFS init) MAE by lead day 1 to 9, tmax
Aurora (IFS init)aurora_ifs 5.59-5.59 · n=2 3.76-3.76 · n=1 Aurora (IFS init) MAE by lead day 1 to 9, tmax
FourCastNet v2 (GFS init)fourcastnet_gfs 4.28-4.28 · n=2 2.76-2.76 · n=1 FourCastNet v2 (GFS init) MAE by lead day 1 to 9, tmax
FourCastNet v2 (IFS init)fourcastnet_ifs 5.09-5.09 · n=2 3.61-3.61 · n=1 FourCastNet v2 (IFS init) MAE by lead day 1 to 9, tmax
NCEP GFSgfs 3.91-2.87 · n=29 3.83-2.42 · n=28 3.84-2.13 · n=27 3.55-2.72 · n=26 3.94-3.47 · n=25 5.11-3.52 · n=24 3.31-1.87 · n=23 5.38-3.35 · n=22 7.11-4.79 · n=21 NCEP GFS MAE by lead day 1 to 9, tmax
GraphCast (GFS init)graphcast_gfs 4.72-4.72 · n=2 2.76-2.76 · n=1 GraphCast (GFS init) MAE by lead day 1 to 9, tmax
GraphCast (IFS init)graphcast_ifs 6.82-6.82 · n=27 7.03-7.03 · n=26 7.42-7.42 · n=25 8.05-8.05 · n=25 7.97-7.97 · n=25 7.57-7.57 · n=24 8.72-8.72 · n=23 9.80-9.65 · n=22 9.49-9.49 · n=21 GraphCast (IFS init) MAE by lead day 1 to 9, tmax
ECMWF IFS HRESifs_hres 3.62-3.35 · n=24 3.48-3.33 · n=22 4.06-3.04 · n=22 4.95-4.47 · n=21 4.79-3.81 · n=20 5.54-3.98 · n=19 6.18-5.10 · n=17 6.42-5.30 · n=17 6.22-4.55 · n=14 ECMWF IFS HRES MAE by lead day 1 to 9, tmax
Pangu-Weather (GFS init)pangu_gfs 5.12-5.12 · n=2 0.85-0.85 · n=1 Pangu-Weather (GFS init) MAE by lead day 1 to 9, tmax
Pangu-Weather (IFS init)pangu_ifs 3.33-3.33 · n=2 2.05+2.05 · n=1 Pangu-Weather (IFS init) MAE by lead day 1 to 9, tmax
Persistence (baseline)persistence 4.89-0.07 · n=90 5.98-0.20 · n=90 6.33-0.40 · n=90 6.46-0.50 · n=90 6.28-0.61 · n=90 6.02-0.78 · n=90 6.54-0.90 · n=90 6.12-0.99 · n=90 6.32-1.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 3.08+2.12 · n=29 3.06+2.48 · n=28 3.02+2.33 · n=27 3.07+2.33 · n=26 2.48+1.65 · n=24 2.32+1.55 · n=24 2.62+1.24 · n=23 2.86+0.99 · n=22 2.81+0.63 · n=21 ECMWF AIFS Single MAE by lead day 1 to 9, tmin
Aurora (GFS init)aurora_gfs 3.99+3.99 · n=2 1.94+1.94 · n=1 Aurora (GFS init) MAE by lead day 1 to 9, tmin
Aurora (IFS init)aurora_ifs 3.99+3.99 · n=2 2.28+2.28 · n=1 Aurora (IFS init) MAE by lead day 1 to 9, tmin
FourCastNet v2 (GFS init)fourcastnet_gfs 2.98+2.98 · n=2 1.64+1.64 · n=1 FourCastNet v2 (GFS init) MAE by lead day 1 to 9, tmin
FourCastNet v2 (IFS init)fourcastnet_ifs 2.63+2.63 · n=2 0.96+0.96 · n=1 FourCastNet v2 (IFS init) MAE by lead day 1 to 9, tmin
NCEP GFSgfs 4.11+3.47 · n=29 4.22+4.18 · n=28 4.88+4.74 · n=27 4.88+4.72 · n=26 4.55+4.03 · n=25 4.73+4.11 · n=24 4.89+3.91 · n=23 5.62+3.27 · n=22 5.12+3.80 · n=21 NCEP GFS MAE by lead day 1 to 9, tmin
GraphCast (GFS init)graphcast_gfs 5.47+5.47 · n=2 3.15+3.15 · n=1 GraphCast (GFS init) MAE by lead day 1 to 9, tmin
GraphCast (IFS init)graphcast_ifs 2.42+1.46 · n=27 2.25+1.66 · n=26 2.21+1.60 · n=25 2.49+1.63 · n=25 2.31+1.42 · n=25 2.26+1.38 · n=24 2.33+1.22 · n=23 2.70+1.11 · n=22 2.80+1.01 · n=21 GraphCast (IFS init) MAE by lead day 1 to 9, tmin
ECMWF IFS HRESifs_hres 2.84+2.22 · n=24 3.40+3.10 · n=22 3.56+3.21 · n=22 3.80+3.24 · n=21 3.26+3.01 · n=20 3.13+2.63 · n=19 2.79+2.56 · n=17 3.06+2.81 · n=17 2.77+1.92 · n=14 ECMWF IFS HRES MAE by lead day 1 to 9, tmin
Pangu-Weather (GFS init)pangu_gfs 4.10+4.10 · n=2 2.77+2.77 · n=1 Pangu-Weather (GFS init) MAE by lead day 1 to 9, tmin
Pangu-Weather (IFS init)pangu_ifs 2.62+2.62 · n=2 1.70+1.70 · n=1 Pangu-Weather (IFS init) MAE by lead day 1 to 9, tmin
Persistence (baseline)persistence 3.50-0.06 · n=90 4.04-0.24 · n=90 4.94-0.37 · n=90 4.91-0.42 · n=90 5.24-0.49 · n=90 5.17-0.59 · n=90 5.10-0.68 · n=90 5.04-0.84 · n=90 5.04-0.93 · 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