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

KIAH — Houston Bush

29.9844, -95.3607 · 27 m· standard offset UTC-6 h · truth product CLIIAH

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 4.08-4.08 · n=29 3.81-3.81 · n=28 3.79-3.79 · n=27 3.81-3.81 · n=26 3.93-3.93 · n=24 3.73-3.69 · n=24 3.53-3.46 · n=23 3.32-3.31 · n=22 4.26-3.88 · n=21 ECMWF AIFS Single MAE by lead day 1 to 9, tmax
Aurora (GFS init)aurora_gfs 6.44-6.44 · n=2 7.54-7.54 · n=1 Aurora (GFS init) MAE by lead day 1 to 9, tmax
Aurora (IFS init)aurora_ifs 6.49-6.49 · n=2 6.68-6.68 · n=1 Aurora (IFS init) MAE by lead day 1 to 9, tmax
FourCastNet v2 (GFS init)fourcastnet_gfs 3.69-3.69 · n=2 3.19-3.19 · n=1 FourCastNet v2 (GFS init) MAE by lead day 1 to 9, tmax
FourCastNet v2 (IFS init)fourcastnet_ifs 3.71-3.71 · n=2 3.46-3.46 · n=1 FourCastNet v2 (IFS init) MAE by lead day 1 to 9, tmax
NCEP GFSgfs 1.28-0.20 · n=29 1.53-0.34 · n=28 1.97-0.47 · n=27 1.74-0.20 · n=26 2.23-0.77 · n=25 1.92-1.21 · n=24 2.40-0.61 · n=23 2.40-0.69 · n=22 2.50-0.73 · n=21 NCEP GFS MAE by lead day 1 to 9, tmax
GraphCast (GFS init)graphcast_gfs 6.09-6.09 · n=2 7.16-7.16 · n=1 GraphCast (GFS init) MAE by lead day 1 to 9, tmax
GraphCast (IFS init)graphcast_ifs 7.26-7.26 · n=27 7.20-7.20 · n=26 7.22-7.22 · n=25 7.08-7.08 · n=25 6.69-6.69 · n=25 6.54-6.54 · n=24 6.49-6.48 · n=23 6.63-6.63 · n=22 6.72-6.72 · n=21 GraphCast (IFS init) MAE by lead day 1 to 9, tmax
ECMWF IFS HRESifs_hres 4.96-4.96 · n=24 4.91-4.91 · n=22 4.03-4.03 · n=22 3.99-3.99 · n=21 4.15-4.15 · n=20 3.72-3.68 · n=19 3.56-3.56 · n=17 3.84-3.81 · n=17 4.49-4.12 · n=15 ECMWF IFS HRES MAE by lead day 1 to 9, tmax
Pangu-Weather (GFS init)pangu_gfs 2.65-2.65 · n=2 3.43-3.43 · n=1 Pangu-Weather (GFS init) MAE by lead day 1 to 9, tmax
Pangu-Weather (IFS init)pangu_ifs 3.67-3.67 · n=2 3.85-3.85 · n=1 Pangu-Weather (IFS init) MAE by lead day 1 to 9, tmax
Persistence (baseline)persistence 2.12-0.03 · n=90 2.98-0.11 · n=90 3.42-0.18 · n=90 3.64-0.27 · n=90 3.92-0.39 · n=90 4.31-0.62 · n=90 4.24-0.78 · n=90 4.02-0.91 · n=90 3.88-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 1.60-0.55 · n=29 1.57-0.41 · n=28 1.58-0.21 · n=27 1.67-0.22 · n=26 1.61-0.44 · n=24 1.88-0.11 · n=24 1.93+0.05 · n=23 2.06+0.01 · n=22 2.45-0.09 · n=21 ECMWF AIFS Single MAE by lead day 1 to 9, tmin
Aurora (GFS init)aurora_gfs 0.74+0.74 · n=2 0.48+0.48 · n=1 Aurora (GFS init) MAE by lead day 1 to 9, tmin
Aurora (IFS init)aurora_ifs 0.43+0.43 · n=2 0.68+0.68 · n=1 Aurora (IFS init) MAE by lead day 1 to 9, tmin
FourCastNet v2 (GFS init)fourcastnet_gfs 2.02+2.02 · n=2 2.20+2.20 · n=1 FourCastNet v2 (GFS init) MAE by lead day 1 to 9, tmin
FourCastNet v2 (IFS init)fourcastnet_ifs 1.71+1.71 · n=2 2.10+2.10 · n=1 FourCastNet v2 (IFS init) MAE by lead day 1 to 9, tmin
NCEP GFSgfs 3.49+3.49 · n=29 3.60+3.58 · n=28 3.63+3.56 · n=27 3.42+3.27 · n=26 3.66+3.47 · n=25 3.64+3.20 · n=24 3.55+3.22 · n=23 3.65+3.03 · n=22 3.70+2.87 · n=21 NCEP GFS MAE by lead day 1 to 9, tmin
GraphCast (GFS init)graphcast_gfs 1.06+1.06 · n=2 0.27+0.27 · n=1 GraphCast (GFS init) MAE by lead day 1 to 9, tmin
GraphCast (IFS init)graphcast_ifs 1.84+0.06 · n=27 1.87-0.05 · n=26 2.05+0.19 · n=25 2.00+0.32 · n=25 2.07+0.35 · n=25 2.33+0.50 · n=24 2.64+0.76 · n=23 2.64+0.70 · n=22 3.05+0.32 · n=21 GraphCast (IFS init) MAE by lead day 1 to 9, tmin
ECMWF IFS HRESifs_hres 1.80+0.82 · n=24 1.62+0.88 · n=22 1.70+1.02 · n=22 1.90+1.36 · n=21 2.00+1.61 · n=20 1.69+1.30 · n=19 2.17+1.99 · n=17 2.54+2.06 · n=17 2.48+1.88 · n=15 ECMWF IFS HRES MAE by lead day 1 to 9, tmin
Pangu-Weather (GFS init)pangu_gfs 2.26+2.26 · n=2 1.35+1.35 · n=1 Pangu-Weather (GFS init) MAE by lead day 1 to 9, tmin
Pangu-Weather (IFS init)pangu_ifs 0.48-0.12 · n=2 0.01-0.01 · n=1 Pangu-Weather (IFS init) MAE by lead day 1 to 9, tmin
Persistence (baseline)persistence 1.99-0.01 · n=90 2.38-0.02 · n=90 2.50-0.03 · n=90 2.47-0.16 · n=90 2.47-0.31 · n=90 2.47-0.47 · n=90 2.78-0.56 · n=90 2.87-0.67 · n=90 3.17-0.83 · 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