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

KPHL — Philadelphia Intl

39.8733, -75.2268 · 2 m· standard offset UTC-5 h · truth product CLIPHL

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 2.19-2.09 · n=29 2.76-2.58 · n=28 2.67-2.30 · n=27 2.47-2.24 · n=26 2.83-2.72 · n=24 3.42-2.63 · n=24 2.97-2.61 · n=23 4.19-3.79 · n=22 4.94-4.35 · n=21 ECMWF AIFS Single MAE by lead day 1 to 9, tmax
Aurora (GFS init)aurora_gfs 5.33-5.33 · n=2 7.15-7.15 · n=1 Aurora (GFS init) MAE by lead day 1 to 9, tmax
Aurora (IFS init)aurora_ifs 5.17-5.17 · n=2 5.26-5.26 · n=1 Aurora (IFS init) MAE by lead day 1 to 9, tmax
FourCastNet v2 (GFS init)fourcastnet_gfs 2.31-2.31 · n=2 5.03-5.03 · n=1 FourCastNet v2 (GFS init) MAE by lead day 1 to 9, tmax
FourCastNet v2 (IFS init)fourcastnet_ifs 3.09-3.09 · n=2 4.05-4.05 · n=1 FourCastNet v2 (IFS init) MAE by lead day 1 to 9, tmax
NCEP GFSgfs 2.60-1.73 · n=29 2.85-2.58 · n=28 3.02-1.69 · n=27 3.53-2.68 · n=26 3.16-1.49 · n=25 4.47-2.51 · n=24 4.69-1.56 · n=23 4.64-1.07 · n=22 5.98-1.50 · n=21 NCEP GFS MAE by lead day 1 to 9, tmax
GraphCast (GFS init)graphcast_gfs 4.53-4.53 · n=2 6.53-6.53 · n=1 GraphCast (GFS init) MAE by lead day 1 to 9, tmax
GraphCast (IFS init)graphcast_ifs 4.92-4.92 · n=27 4.93-4.93 · n=26 4.95-4.95 · n=25 4.34-4.25 · n=25 4.82-4.75 · n=25 4.57-4.44 · n=24 4.46-4.23 · n=23 5.75-5.20 · n=22 6.45-5.37 · n=21 GraphCast (IFS init) MAE by lead day 1 to 9, tmax
ECMWF IFS HRESifs_hres 3.66-3.54 · n=24 4.12-3.78 · n=22 4.04-3.42 · n=22 3.32-2.86 · n=21 3.83-2.76 · n=20 3.60-2.21 · n=19 4.53-3.81 · n=17 4.36-3.33 · n=17 6.44-4.35 · n=15 ECMWF IFS HRES MAE by lead day 1 to 9, tmax
Pangu-Weather (GFS init)pangu_gfs 1.13-1.13 · 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 1.58-1.58 · n=2 2.88-2.88 · n=1 Pangu-Weather (IFS init) MAE by lead day 1 to 9, tmax
Persistence (baseline)persistence 4.01-0.08 · n=90 5.10-0.12 · n=90 5.92-0.30 · n=90 6.02-0.33 · n=90 6.69-0.40 · n=90 6.44-0.38 · n=90 6.26-0.39 · n=90 6.76-0.49 · n=90 7.12-0.68 · 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.48+0.21 · n=29 1.73+0.38 · n=28 2.06+0.33 · n=27 2.39-0.14 · n=26 2.67-0.21 · n=24 2.83-0.24 · n=24 2.46+0.07 · n=23 2.20+0.31 · n=22 3.20-0.20 · n=21 ECMWF AIFS Single MAE by lead day 1 to 9, tmin
Aurora (GFS init)aurora_gfs 0.79+0.79 · n=2 2.04+2.04 · n=1 Aurora (GFS init) MAE by lead day 1 to 9, tmin
Aurora (IFS init)aurora_ifs 1.54-1.54 · n=2 0.56-0.56 · n=1 Aurora (IFS init) MAE by lead day 1 to 9, tmin
FourCastNet v2 (GFS init)fourcastnet_gfs 3.64+3.64 · n=2 6.01+6.01 · n=1 FourCastNet v2 (GFS init) MAE by lead day 1 to 9, tmin
FourCastNet v2 (IFS init)fourcastnet_ifs 2.14+2.14 · n=2 4.78+4.78 · n=1 FourCastNet v2 (IFS init) MAE by lead day 1 to 9, tmin
NCEP GFSgfs 1.82+0.03 · n=29 2.05+0.35 · n=28 1.75+0.51 · n=27 2.48+0.20 · n=26 2.65-0.16 · n=25 3.06+0.14 · n=24 3.53+0.36 · n=23 3.93+0.16 · n=22 4.27+0.06 · n=21 NCEP GFS MAE by lead day 1 to 9, tmin
GraphCast (GFS init)graphcast_gfs 1.38+1.38 · n=2 3.25+3.25 · n=1 GraphCast (GFS init) MAE by lead day 1 to 9, tmin
GraphCast (IFS init)graphcast_ifs 1.89-0.86 · n=27 2.02-0.70 · n=26 2.02-0.65 · n=25 2.45-0.59 · n=25 2.59-0.54 · n=25 3.05-0.34 · n=24 2.42-0.17 · n=23 2.76-0.04 · n=22 4.07-1.43 · n=21 GraphCast (IFS init) MAE by lead day 1 to 9, tmin
ECMWF IFS HRESifs_hres 1.88-0.23 · n=24 1.98-0.02 · n=22 2.52-0.22 · n=22 3.48-0.32 · n=21 3.03-0.47 · n=20 3.26-0.38 · n=19 2.88+0.41 · n=17 2.77+1.28 · n=17 2.68-0.30 · n=15 ECMWF IFS HRES MAE by lead day 1 to 9, tmin
Pangu-Weather (GFS init)pangu_gfs 1.91+1.91 · n=2 2.63+2.63 · n=1 Pangu-Weather (GFS init) MAE by lead day 1 to 9, tmin
Pangu-Weather (IFS init)pangu_ifs 1.56+0.55 · n=2 2.46+2.46 · n=1 Pangu-Weather (IFS init) MAE by lead day 1 to 9, tmin
Persistence (baseline)persistence 3.22-0.09 · n=90 4.52-0.23 · n=90 4.82-0.42 · n=90 4.74-0.54 · n=90 4.81-0.59 · n=90 5.07-0.56 · n=90 5.01-0.57 · n=90 5.12-0.66 · n=90 5.60-0.84 · 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