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, 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.32-2.27 · n=30 2.41-2.28 · n=29 2.75-2.18 · n=28 2.44-2.06 · n=27 2.90-2.72 · n=26 2.95-2.47 · n=25 3.25-2.88 · n=24 3.55-3.14 · n=23 4.65-4.04 · n=22 4.96-4.24 · n=21 ECMWF AIFS Single MAE by lead day 1 to 9, tmax
Aurora (GFS init)aurora_gfs 5.01-5.01 · n=2 6.52-6.52 · n=1 Aurora (GFS init) MAE by lead day 1 to 9, tmax
Aurora (IFS init)aurora_ifs 4.64-4.64 · n=3 4.19-4.19 · n=2 4.48-4.48 · n=1 Aurora (IFS init) MAE by lead day 1 to 9, tmax
FourCastNet v2 (GFS init)fourcastnet_gfs 3.94-3.94 · n=2 4.72-4.72 · n=1 FourCastNet v2 (GFS init) MAE by lead day 1 to 9, tmax
FourCastNet v2 (IFS init)fourcastnet_ifs 5.11-5.11 · n=3 2.71-2.54 · n=2 4.59-4.59 · n=1 FourCastNet v2 (IFS init) MAE by lead day 1 to 9, tmax
NCEP GFSgfs 2.80-2.26 · n=30 2.88-2.49 · n=29 3.60-2.68 · n=28 3.12-1.93 · n=27 3.65-2.07 · n=26 4.33-1.96 · n=25 4.09-1.31 · n=24 3.77-1.73 · n=23 4.89-2.02 · n=22 5.14-1.32 · n=21 NCEP GFS MAE by lead day 1 to 9, tmax
GraphCast (GFS init)graphcast_gfs 5.26-5.26 · n=2 6.35-6.35 · n=1 GraphCast (GFS init) MAE by lead day 1 to 9, tmax
GraphCast (IFS init)graphcast_ifs 4.76-4.76 · n=28 5.16-5.16 · n=27 4.84-4.84 · n=26 4.58-4.48 · n=25 4.49-4.49 · n=25 4.49-4.27 · n=25 4.47-4.39 · n=24 4.53-4.22 · n=23 5.29-3.96 · n=22 5.87-3.45 · n=21 GraphCast (IFS init) MAE by lead day 1 to 9, tmax
ECMWF IFS HRESifs_hres 2.68-2.31 · n=24 4.17-3.54 · n=23 3.37-2.51 · n=22 3.29-3.09 · n=22 3.48-2.16 · n=20 4.06-2.47 · n=18 4.54-0.99 · n=19 2.88-1.53 · n=18 3.58-1.95 · n=17 5.18-0.52 · n=16 ECMWF IFS HRES MAE by lead day 1 to 9, tmax
Pangu-Weather (GFS init)pangu_gfs 2.09-2.09 · n=2 2.54-2.54 · n=1 Pangu-Weather (GFS init) MAE by lead day 1 to 9, tmax
Pangu-Weather (IFS init)pangu_ifs 2.69-2.69 · n=3 1.66-1.66 · n=2 3.24-3.24 · 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, 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.57-0.35 · n=30 1.60+0.01 · n=29 1.96+0.25 · n=28 2.17+0.33 · n=27 2.70+0.05 · n=26 2.78-0.13 · n=25 3.05-0.07 · n=24 2.56+0.49 · n=23 2.81-0.28 · n=22 3.83-0.05 · n=21 ECMWF AIFS Single MAE by lead day 1 to 9, tmin
Aurora (GFS init)aurora_gfs 0.66-0.35 · n=2 1.31+1.31 · n=1 Aurora (GFS init) MAE by lead day 1 to 9, tmin
Aurora (IFS init)aurora_ifs 1.44-1.44 · n=3 0.41-0.41 · n=2 0.42+0.42 · n=1 Aurora (IFS init) MAE by lead day 1 to 9, tmin
FourCastNet v2 (GFS init)fourcastnet_gfs 1.18+0.85 · n=2 3.96+3.96 · n=1 FourCastNet v2 (GFS init) MAE by lead day 1 to 9, tmin
FourCastNet v2 (IFS init)fourcastnet_ifs 1.20-0.92 · n=3 3.30+3.30 · n=2 5.37+5.37 · n=1 FourCastNet v2 (IFS init) MAE by lead day 1 to 9, tmin
NCEP GFSgfs 1.45+0.24 · n=30 1.85+0.08 · n=29 1.94+0.17 · n=28 1.83+0.67 · n=27 2.31+0.14 · n=26 2.61-0.10 · n=25 3.08+0.32 · n=24 3.48+0.40 · n=23 3.57+0.38 · n=22 4.19-0.06 · n=21 NCEP GFS MAE by lead day 1 to 9, tmin
GraphCast (GFS init)graphcast_gfs 0.45-0.45 · n=2 1.56+1.56 · n=1 GraphCast (GFS init) MAE by lead day 1 to 9, tmin
GraphCast (IFS init)graphcast_ifs 1.58-0.81 · n=28 2.05-0.91 · n=27 2.03-0.67 · n=26 1.98-0.33 · n=25 2.60-0.38 · n=25 2.77-0.44 · n=25 2.76-0.07 · n=24 3.18-0.34 · n=23 3.47-0.68 · n=22 3.64-0.75 · n=21 GraphCast (IFS init) MAE by lead day 1 to 9, tmin
ECMWF IFS HRESifs_hres 1.28-0.56 · n=24 1.98-0.43 · n=23 2.01+0.15 · n=22 2.67+0.62 · n=22 2.52+0.50 · n=20 3.40-0.23 · n=18 3.14+0.53 · n=19 2.59+1.35 · n=18 2.88+1.47 · n=17 4.74+1.54 · n=16 ECMWF IFS HRES MAE by lead day 1 to 9, tmin
Pangu-Weather (GFS init)pangu_gfs 1.71+0.37 · n=2 1.83+1.83 · n=1 Pangu-Weather (GFS init) MAE by lead day 1 to 9, tmin
Pangu-Weather (IFS init)pangu_ifs 0.95-0.08 · n=3 1.39+0.68 · n=2 2.57+2.57 · 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

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.41-2.28 · n=296.52-6.52 · n=14.19-4.19 · n=24.72-4.72 · n=12.71-2.54 · n=22.88-2.49 · n=296.35-6.35 · n=15.16-5.16 · n=274.17-3.54 · n=232.54-2.54 · n=11.66-1.66 · n=2
2026-01 2.37-2.12 · 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-308765OBSobs_fallback
2026-08-298265CLI
2026-08-288771CLI
2026-08-278369CLI
2026-08-268666CLI
2026-08-258065CLI
2026-08-248365CLI
2026-08-238466CLI
2026-08-228070CLI
2026-08-218465CLI
2026-08-208568CLI
2026-08-199073CLI
2026-08-188876CF6
2026-08-178970CF6
2026-08-168068CLI
2026-08-159071CLI
2026-08-149077CLI
2026-08-139075CLI
2026-08-129076CLI
2026-08-118873CLI
2026-08-109175CLI
2026-08-099375CLI
2026-08-089174CLI
2026-08-079476CLI
2026-08-069378CLI
2026-08-058573CLI
2026-08-049070CLI
2026-08-038973CLI
2026-08-029176CLI
2026-08-019073CLI

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