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

KSAT — San Antonio Intl

29.5328, -98.4636 · 246 m· standard offset UTC-6 h · truth product CLISAT

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.67-3.67 · n=29 3.54-3.54 · n=28 3.50-3.50 · n=27 3.42-3.42 · n=26 3.22-3.22 · n=24 3.13-3.12 · n=24 3.11-3.11 · n=23 3.02-3.02 · n=22 3.39-3.31 · n=21 ECMWF AIFS Single MAE by lead day 1 to 9, tmax
Aurora (GFS init)aurora_gfs 7.90-7.90 · n=2 8.04-8.04 · n=1 Aurora (GFS init) MAE by lead day 1 to 9, tmax
Aurora (IFS init)aurora_ifs 6.57-6.57 · n=2 5.48-5.48 · n=1 Aurora (IFS init) MAE by lead day 1 to 9, tmax
FourCastNet v2 (GFS init)fourcastnet_gfs 3.62-3.62 · n=2 2.87-2.87 · n=1 FourCastNet v2 (GFS init) MAE by lead day 1 to 9, tmax
FourCastNet v2 (IFS init)fourcastnet_ifs 3.72-3.72 · n=2 2.68-2.68 · n=1 FourCastNet v2 (IFS init) MAE by lead day 1 to 9, tmax
NCEP GFSgfs 1.65-1.31 · n=29 1.65-1.31 · n=28 1.66-1.30 · n=27 1.31-0.58 · n=26 1.14-0.87 · n=25 1.26-0.42 · n=24 1.98-0.76 · n=23 1.76-0.23 · n=22 2.07-0.16 · n=21 NCEP GFS MAE by lead day 1 to 9, tmax
GraphCast (GFS init)graphcast_gfs 7.53-7.53 · n=2 7.95-7.95 · n=1 GraphCast (GFS init) MAE by lead day 1 to 9, tmax
GraphCast (IFS init)graphcast_ifs 6.63-6.63 · n=27 6.59-6.59 · n=26 6.58-6.58 · n=25 6.30-6.30 · n=25 6.02-6.02 · n=25 5.69-5.69 · n=24 5.85-5.85 · n=23 6.14-6.14 · n=22 6.16-6.16 · n=21 GraphCast (IFS init) MAE by lead day 1 to 9, tmax
ECMWF IFS HRESifs_hres 3.68-3.68 · n=24 3.36-3.36 · n=22 2.99-2.99 · n=22 3.00-3.00 · n=21 2.85-2.85 · n=20 2.87-2.87 · n=19 2.29-2.15 · n=17 2.98-2.62 · n=17 2.92-2.51 · n=15 ECMWF IFS HRES MAE by lead day 1 to 9, tmax
Pangu-Weather (GFS init)pangu_gfs 4.07-4.07 · n=2 4.18-4.18 · n=1 Pangu-Weather (GFS init) MAE by lead day 1 to 9, tmax
Pangu-Weather (IFS init)pangu_ifs 3.38-3.38 · n=2 3.37-3.37 · n=1 Pangu-Weather (IFS init) MAE by lead day 1 to 9, tmax
Persistence (baseline)persistence 1.92-0.08 · n=90 2.67-0.20 · n=90 2.97-0.37 · n=90 3.00-0.51 · n=90 3.02-0.64 · n=90 3.28-0.83 · n=90 3.42-1.02 · n=90 3.48-1.21 · n=90 3.41-1.39 · 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.64-1.22 · n=29 1.56-1.03 · n=28 1.70-1.00 · n=27 1.69-0.90 · n=26 1.65-0.80 · n=24 1.64-0.90 · n=24 1.63-0.75 · n=23 1.68-0.66 · n=22 1.60-0.70 · n=21 ECMWF AIFS Single MAE by lead day 1 to 9, tmin
Aurora (GFS init)aurora_gfs 1.54-0.31 · n=2 2.60-2.60 · n=1 Aurora (GFS init) MAE by lead day 1 to 9, tmin
Aurora (IFS init)aurora_ifs 1.61-0.69 · n=2 2.59-2.59 · n=1 Aurora (IFS init) MAE by lead day 1 to 9, tmin
FourCastNet v2 (GFS init)fourcastnet_gfs 1.21-0.31 · n=2 1.56-1.56 · n=1 FourCastNet v2 (GFS init) MAE by lead day 1 to 9, tmin
FourCastNet v2 (IFS init)fourcastnet_ifs 1.54-0.20 · n=2 1.48-1.48 · n=1 FourCastNet v2 (IFS init) MAE by lead day 1 to 9, tmin
NCEP GFSgfs 1.88-0.42 · n=29 2.10-0.51 · n=28 2.15-0.76 · n=27 2.18-0.72 · n=26 2.06-0.69 · n=25 2.37-0.85 · n=24 2.13-0.67 · n=23 2.13-0.87 · n=22 2.46-0.73 · n=21 NCEP GFS MAE by lead day 1 to 9, tmin
GraphCast (GFS init)graphcast_gfs 1.40-0.02 · n=2 2.50-2.50 · n=1 GraphCast (GFS init) MAE by lead day 1 to 9, tmin
GraphCast (IFS init)graphcast_ifs 0.93-0.19 · n=27 0.88-0.23 · n=26 1.11+0.16 · n=25 1.11+0.54 · n=25 1.22+0.57 · n=25 1.23+0.63 · n=24 1.37+0.94 · n=23 1.46+0.96 · n=22 1.32+0.80 · n=21 GraphCast (IFS init) MAE by lead day 1 to 9, tmin
ECMWF IFS HRESifs_hres 1.81+0.52 · n=24 2.32+0.89 · n=22 2.01+0.85 · n=22 2.21+1.22 · n=21 2.79+1.37 · n=20 2.51+1.32 · n=19 2.76+1.94 · n=17 2.91+2.25 · n=17 2.77+2.47 · n=15 ECMWF IFS HRES MAE by lead day 1 to 9, tmin
Pangu-Weather (GFS init)pangu_gfs 2.00+0.02 · n=2 2.05-2.05 · n=1 Pangu-Weather (GFS init) MAE by lead day 1 to 9, tmin
Pangu-Weather (IFS init)pangu_ifs 1.98-1.98 · n=2 3.46-3.46 · n=1 Pangu-Weather (IFS init) MAE by lead day 1 to 9, tmin
Persistence (baseline)persistence 1.64-0.07 · n=90 2.12-0.10 · n=90 2.07-0.09 · n=90 2.00-0.16 · n=90 1.91-0.31 · n=90 2.19-0.43 · n=90 2.48-0.57 · n=90 2.78-0.62 · n=90 2.81-0.72 · 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