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 365 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.94-3.91 · n=30 3.92-3.77 · n=29 4.01-3.59 · n=28 3.99-3.59 · n=27 4.26-4.06 · n=26 4.62-4.52 · n=25 5.58-5.35 · n=24 6.66-6.37 · n=23 4.94-4.61 · n=22 ECMWF AIFS Single MAE by lead day 1 to 9, tmax
Aurora (GFS init)aurora_gfs 6.09-6.09 · n=2 5.01-5.01 · n=1 Aurora (GFS init) MAE by lead day 1 to 9, tmax
Aurora (IFS init)aurora_ifs 4.79-4.79 · n=3 5.03-5.03 · n=2 3.36-3.36 · n=1 Aurora (IFS init) MAE by lead day 1 to 9, tmax
FourCastNet v2 (GFS init)fourcastnet_gfs 7.39-7.39 · n=2 4.15-4.15 · n=1 FourCastNet v2 (GFS init) MAE by lead day 1 to 9, tmax
FourCastNet v2 (IFS init)fourcastnet_ifs 5.50-5.50 · n=3 5.56-5.56 · n=2 4.08-4.08 · n=1 FourCastNet v2 (IFS init) MAE by lead day 1 to 9, tmax
NCEP GFSgfs 3.72-3.04 · n=30 3.85-2.77 · n=29 3.39-1.85 · n=28 3.99-1.95 · n=27 4.48-2.88 · n=26 4.84-4.07 · n=25 4.02-2.03 · n=24 6.35-4.20 · n=23 5.33-3.20 · n=22 NCEP GFS MAE by lead day 1 to 9, tmax
GraphCast (GFS init)graphcast_gfs 5.27-5.27 · n=2 3.06-3.06 · n=1 GraphCast (GFS init) MAE by lead day 1 to 9, tmax
GraphCast (IFS init)graphcast_ifs 5.98-5.98 · n=34 6.26-6.26 · n=33 6.64-6.61 · n=32 6.65-6.65 · n=31 7.08-7.08 · n=31 7.61-7.61 · n=31 7.77-7.62 · n=30 8.67-8.20 · n=29 9.28-8.76 · n=28 GraphCast (IFS init) MAE by lead day 1 to 9, tmax
ECMWF IFS HRESifs_hres 3.45-3.28 · n=25 3.76-3.72 · n=22 3.46-2.99 · n=23 4.46-3.24 · n=22 4.51-3.77 · n=20 3.63-2.72 · n=18 5.09-2.95 · n=19 4.59-4.06 · n=18 6.03-3.91 · n=17 ECMWF IFS HRES MAE by lead day 1 to 9, tmax
Pangu-Weather (GFS init)pangu_gfs 4.14-4.14 · n=2 0.26+0.26 · n=1 Pangu-Weather (GFS init) MAE by lead day 1 to 9, tmax
Pangu-Weather (IFS init)pangu_ifs 2.30-2.03 · n=3 1.80-1.80 · n=2 0.70+0.70 · n=1 Pangu-Weather (IFS init) MAE by lead day 1 to 9, tmax
Persistence (baseline)persistence 7.62-0.02 · n=365 9.98-0.05 · n=365 10.65-0.10 · n=365 10.60-0.13 · n=365 10.77-0.16 · n=365 11.22-0.19 · n=365 11.48-0.23 · n=365 11.21-0.25 · n=365 11.23-0.28 · n=365 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 365 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.49+1.45 · n=30 3.02+2.01 · n=29 3.01+2.18 · n=28 3.09+2.30 · n=27 2.95+2.24 · n=26 2.64+1.70 · n=25 2.82+1.70 · n=24 3.21+0.86 · n=23 3.42+0.90 · n=22 ECMWF AIFS Single MAE by lead day 1 to 9, tmin
Aurora (GFS init)aurora_gfs 4.22+4.22 · n=2 2.89+2.89 · n=1 Aurora (GFS init) MAE by lead day 1 to 9, tmin
Aurora (IFS init)aurora_ifs 4.25+4.25 · n=3 4.41+4.41 · n=2 2.69+2.69 · n=1 Aurora (IFS init) MAE by lead day 1 to 9, tmin
FourCastNet v2 (GFS init)fourcastnet_gfs 0.22-0.22 · n=2 0.06+0.06 · n=1 FourCastNet v2 (GFS init) MAE by lead day 1 to 9, tmin
FourCastNet v2 (IFS init)fourcastnet_ifs 2.09+1.75 · n=3 1.89+1.89 · n=2 1.38+1.38 · n=1 FourCastNet v2 (IFS init) MAE by lead day 1 to 9, tmin
NCEP GFSgfs 3.59+2.96 · n=30 4.14+3.66 · n=29 4.79+4.61 · n=28 4.79+4.61 · n=27 5.25+4.75 · n=26 4.51+3.53 · n=25 5.08+3.76 · n=24 5.36+4.37 · n=23 5.73+4.47 · n=22 NCEP GFS MAE by lead day 1 to 9, tmin
GraphCast (GFS init)graphcast_gfs 4.74+4.74 · n=2 3.27+3.27 · n=1 GraphCast (GFS init) MAE by lead day 1 to 9, tmin
GraphCast (IFS init)graphcast_ifs 3.22+2.80 · n=34 3.49+2.98 · n=33 3.21+2.65 · n=32 2.95+2.48 · n=31 3.07+2.68 · n=31 2.85+2.02 · n=31 2.69+1.99 · n=30 3.14+1.64 · n=29 3.54+1.10 · n=28 GraphCast (IFS init) MAE by lead day 1 to 9, tmin
ECMWF IFS HRESifs_hres 2.39+1.99 · n=25 2.96+2.17 · n=22 3.38+2.94 · n=23 3.47+2.97 · n=22 3.33+2.89 · n=20 3.36+2.99 · n=18 3.58+3.23 · n=19 3.29+3.29 · n=18 3.50+3.16 · n=17 ECMWF IFS HRES MAE by lead day 1 to 9, tmin
Pangu-Weather (GFS init)pangu_gfs 1.32+1.32 · n=2 0.63+0.63 · n=1 Pangu-Weather (GFS init) MAE by lead day 1 to 9, tmin
Pangu-Weather (IFS init)pangu_ifs 1.86+1.86 · n=3 1.49+1.38 · n=2 1.22+1.22 · n=1 Pangu-Weather (IFS init) MAE by lead day 1 to 9, tmin
Persistence (baseline)persistence 4.98-0.01 · n=365 6.74-0.02 · n=365 7.53-0.04 · n=365 7.81-0.04 · n=365 8.12-0.04 · n=365 8.60-0.05 · n=365 8.67-0.06 · n=365 8.60-0.07 · n=365 8.68-0.08 · n=365 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