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

KDFW — Dallas-Fort Worth

32.8974, -97.0220 · 165 m· standard offset UTC-6 h · truth product CLIDFW

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 2.77-2.61 · n=30 2.88-2.60 · n=29 3.15-3.04 · n=28 3.13-2.81 · n=27 3.21-2.67 · n=26 3.66-3.16 · n=25 3.84-3.55 · n=24 4.55-4.24 · n=23 4.80-4.27 · n=22 5.21-4.33 · n=21 ECMWF AIFS Single MAE by lead day 1 to 9, tmax
Aurora (GFS init)aurora_gfs 4.68-4.68 · n=2 6.05-6.05 · n=1 Aurora (GFS init) MAE by lead day 1 to 9, tmax
Aurora (IFS init)aurora_ifs 5.36-5.36 · n=3 6.64-6.64 · n=2 5.74-5.74 · n=1 Aurora (IFS init) MAE by lead day 1 to 9, tmax
FourCastNet v2 (GFS init)fourcastnet_gfs 3.95-3.95 · n=2 3.96-3.96 · n=1 FourCastNet v2 (GFS init) MAE by lead day 1 to 9, tmax
FourCastNet v2 (IFS init)fourcastnet_ifs 5.31-5.31 · n=3 5.73-5.73 · n=2 4.82-4.82 · n=1 FourCastNet v2 (IFS init) MAE by lead day 1 to 9, tmax
NCEP GFSgfs 1.41+0.65 · n=30 1.73+1.34 · n=29 1.91+1.03 · n=28 1.92+1.44 · n=27 1.88+1.07 · n=26 2.19+0.43 · n=25 2.25+0.92 · n=24 2.59+0.88 · n=23 3.32+0.64 · n=22 3.03+0.78 · n=21 NCEP GFS MAE by lead day 1 to 9, tmax
GraphCast (GFS init)graphcast_gfs 4.86-4.86 · n=2 5.83-5.83 · n=1 GraphCast (GFS init) MAE by lead day 1 to 9, tmax
GraphCast (IFS init)graphcast_ifs 4.81-4.72 · n=28 5.73-5.68 · n=27 6.63-6.63 · n=26 6.86-6.86 · n=25 7.13-7.13 · n=25 7.48-7.48 · n=25 7.81-7.81 · n=24 8.07-8.07 · n=23 8.51-8.51 · n=22 8.35-8.35 · n=21 GraphCast (IFS init) MAE by lead day 1 to 9, tmax
ECMWF IFS HRESifs_hres 2.45-1.62 · n=24 2.28-1.40 · n=23 2.53-1.65 · n=22 2.42-0.85 · n=22 2.26-0.94 · n=20 1.96-1.41 · n=18 2.16-1.05 · n=19 1.66-0.67 · n=18 2.63-1.02 · n=17 2.59-1.05 · n=16 ECMWF IFS HRES MAE by lead day 1 to 9, tmax
Pangu-Weather (GFS init)pangu_gfs 2.26-2.26 · n=2 1.77-1.77 · n=1 Pangu-Weather (GFS init) MAE by lead day 1 to 9, tmax
Pangu-Weather (IFS init)pangu_ifs 4.26-4.26 · n=3 5.23-5.23 · n=2 4.74-4.74 · n=1 Pangu-Weather (IFS init) MAE by lead day 1 to 9, tmax
Persistence (baseline)persistence 2.28-0.08 · n=90 3.17-0.17 · n=90 3.66-0.26 · n=90 3.67-0.36 · n=90 3.81-0.50 · n=90 3.92-0.68 · n=90 3.91-0.91 · n=90 3.88-1.14 · n=90 3.54-1.32 · 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 1.68-1.42 · n=30 1.61-1.33 · n=29 1.63-1.33 · n=28 1.76-1.46 · n=27 1.85-1.53 · n=26 2.07-1.54 · n=25 2.17-1.60 · n=24 2.06-1.48 · n=23 2.06-1.59 · n=22 2.16-1.48 · n=21 ECMWF AIFS Single MAE by lead day 1 to 9, tmin
Aurora (GFS init)aurora_gfs 3.12+3.12 · n=2 0.56+0.56 · n=1 Aurora (GFS init) MAE by lead day 1 to 9, tmin
Aurora (IFS init)aurora_ifs 1.15+0.42 · n=3 0.27+0.22 · n=2 0.40+0.40 · n=1 Aurora (IFS init) MAE by lead day 1 to 9, tmin
FourCastNet v2 (GFS init)fourcastnet_gfs 0.78+0.78 · n=2 0.66-0.66 · n=1 FourCastNet v2 (GFS init) MAE by lead day 1 to 9, tmin
FourCastNet v2 (IFS init)fourcastnet_ifs 1.10-0.81 · n=3 0.95-0.95 · n=2 1.39-1.39 · n=1 FourCastNet v2 (IFS init) MAE by lead day 1 to 9, tmin
NCEP GFSgfs 3.02+3.02 · n=30 3.73+3.73 · n=29 3.46+3.44 · n=28 3.48+3.48 · n=27 3.12+3.12 · n=26 2.86+2.72 · n=25 2.86+2.86 · n=24 3.88+3.35 · n=23 3.95+3.02 · n=22 3.58+2.80 · n=21 NCEP GFS MAE by lead day 1 to 9, tmin
GraphCast (GFS init)graphcast_gfs 2.50+2.50 · n=2 0.85+0.85 · n=1 GraphCast (GFS init) MAE by lead day 1 to 9, tmin
GraphCast (IFS init)graphcast_ifs 1.13+0.83 · n=28 0.84+0.33 · n=27 1.11-0.26 · n=26 1.56-0.80 · n=25 1.84-1.06 · n=25 1.97-1.21 · n=25 2.12-1.36 · n=24 2.15-1.45 · n=23 2.26-1.22 · n=22 2.07-1.11 · n=21 GraphCast (IFS init) MAE by lead day 1 to 9, tmin
ECMWF IFS HRESifs_hres 2.17+2.17 · n=24 2.86+2.86 · n=23 3.05+3.03 · n=22 3.03+3.02 · n=22 3.49+3.49 · n=20 3.20+3.20 · n=18 3.07+3.03 · n=19 3.36+3.36 · n=18 3.79+3.79 · n=17 4.25+4.05 · n=16 ECMWF IFS HRES MAE by lead day 1 to 9, tmin
Pangu-Weather (GFS init)pangu_gfs 2.66+2.66 · n=2 1.08+1.08 · n=1 Pangu-Weather (GFS init) MAE by lead day 1 to 9, tmin
Pangu-Weather (IFS init)pangu_ifs 0.62-0.62 · n=3 1.67-1.67 · n=2 2.32-2.32 · n=1 Pangu-Weather (IFS init) MAE by lead day 1 to 9, tmin
Persistence (baseline)persistence 2.08-0.06 · n=90 2.64-0.09 · n=90 2.94-0.12 · n=90 3.22-0.20 · n=90 3.08-0.34 · n=90 3.38-0.51 · n=90 3.23-0.72 · n=90 3.10-0.92 · n=90 3.34-1.06 · 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 2.88-2.60 · n=296.05-6.05 · n=16.64-6.64 · n=23.96-3.96 · n=15.73-5.73 · n=21.73+1.34 · n=295.83-5.83 · n=15.73-5.68 · n=272.28-1.40 · n=231.77-1.77 · n=15.23-5.23 · n=2
2026-01 8.64-8.64 · 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-3010180OBSobs_fallback
2026-08-2910378CLI
2026-08-2810279CLI
2026-08-2710179CLI
2026-08-2610182CLI
2026-08-2510182CLI
2026-08-2410986CLI
2026-08-2310984CLI
2026-08-2210580CLI
2026-08-219985CLI
2026-08-2010582CLI
2026-08-1910583CLI
2026-08-1810582CLI
2026-08-1710681CLI
2026-08-1610482CLI
2026-08-1510281CLI
2026-08-1410280CLI
2026-08-1310282CLI
2026-08-1210281CLI
2026-08-1110178CLI
2026-08-109979CLI
2026-08-0910078CLI
2026-08-0810182CLI
2026-08-0710181CLI
2026-08-0610181CLI
2026-08-0510181CLI
2026-08-0410180CLI
2026-08-0310174CLI
2026-08-029673CLI
2026-08-019880CLI

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