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

KSEA — Seattle-Tacoma

47.4447, -122.3136 · 130 m· standard offset UTC-8 h · truth product CLISEA

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 5.66-5.66 · n=30 5.32-5.32 · n=29 5.40-5.40 · n=28 5.15-5.15 · n=27 4.75-4.75 · n=26 5.55-5.16 · n=25 5.48-4.86 · n=24 5.78-5.32 · n=23 6.39-6.25 · n=22 ECMWF AIFS Single MAE by lead day 1 to 9, tmax
Aurora (GFS init)aurora_gfs 5.10-5.10 · n=2 4.50-4.50 · n=1 Aurora (GFS init) MAE by lead day 1 to 9, tmax
Aurora (IFS init)aurora_ifs 3.33-3.33 · n=3 3.91-3.91 · n=2 2.38-2.38 · n=1 Aurora (IFS init) MAE by lead day 1 to 9, tmax
FourCastNet v2 (GFS init)fourcastnet_gfs 3.72-3.72 · n=2 1.74-1.74 · n=1 FourCastNet v2 (GFS init) MAE by lead day 1 to 9, tmax
FourCastNet v2 (IFS init)fourcastnet_ifs 2.16-2.06 · n=3 1.70-1.70 · n=2 1.53+1.53 · n=1 FourCastNet v2 (IFS init) MAE by lead day 1 to 9, tmax
NCEP GFSgfs 3.85+3.14 · n=30 4.28+3.22 · n=29 4.41+2.86 · n=28 4.61+3.20 · n=27 4.43+3.66 · n=26 4.18+2.63 · n=25 4.85+2.95 · n=24 4.66+1.38 · n=23 7.29+1.83 · n=22 NCEP GFS MAE by lead day 1 to 9, tmax
GraphCast (GFS init)graphcast_gfs 6.13-6.13 · n=2 4.43-4.43 · n=1 GraphCast (GFS init) MAE by lead day 1 to 9, tmax
GraphCast (IFS init)graphcast_ifs 4.33-4.30 · n=28 4.49-4.41 · n=27 4.69-4.50 · n=26 4.55-4.33 · n=25 5.12-4.80 · n=25 5.61-5.25 · n=25 6.67-5.92 · n=24 6.45-5.38 · n=23 6.57-6.36 · n=22 GraphCast (IFS init) MAE by lead day 1 to 9, tmax
ECMWF IFS HRESifs_hres 1.78-0.85 · n=25 2.39-0.62 · n=22 2.41-0.80 · n=23 2.83-0.80 · n=22 2.79-1.68 · n=20 4.59-3.24 · n=18 4.75-2.30 · n=19 4.72-1.10 · n=18 6.14-2.65 · n=17 ECMWF IFS HRES MAE by lead day 1 to 9, tmax
Pangu-Weather (GFS init)pangu_gfs 3.78-3.78 · n=2 2.42-2.42 · n=1 Pangu-Weather (GFS init) MAE by lead day 1 to 9, tmax
Pangu-Weather (IFS init)pangu_ifs 1.78-1.78 · n=3 3.06-3.06 · n=2 2.28-2.28 · n=1 Pangu-Weather (IFS init) MAE by lead day 1 to 9, tmax
Persistence (baseline)persistence 4.84+0.07 · n=90 7.43+0.03 · n=90 8.08-0.08 · n=90 8.12-0.23 · n=90 8.07-0.18 · n=90 8.43-0.28 · n=90 8.53-0.49 · n=90 8.48-0.66 · n=90 8.72-0.70 · 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 2.37-2.24 · n=30 1.68-1.22 · n=29 1.40-0.82 · n=28 1.26-0.55 · n=27 1.11-0.21 · n=26 1.19+0.33 · n=25 1.43+0.34 · n=24 1.86+0.79 · n=23 2.04+0.41 · n=22 ECMWF AIFS Single MAE by lead day 1 to 9, tmin
Aurora (GFS init)aurora_gfs 1.13+1.13 · n=2 0.38+0.38 · n=1 Aurora (GFS init) MAE by lead day 1 to 9, tmin
Aurora (IFS init)aurora_ifs 1.07+1.07 · n=3 0.95+0.18 · n=2 0.84-0.84 · n=1 Aurora (IFS init) MAE by lead day 1 to 9, tmin
FourCastNet v2 (GFS init)fourcastnet_gfs 1.75+1.75 · n=2 0.01+0.01 · n=1 FourCastNet v2 (GFS init) MAE by lead day 1 to 9, tmin
FourCastNet v2 (IFS init)fourcastnet_ifs 2.19+2.19 · n=3 1.86+1.86 · n=2 0.48-0.48 · n=1 FourCastNet v2 (IFS init) MAE by lead day 1 to 9, tmin
NCEP GFSgfs 1.35-0.67 · n=30 1.38-0.95 · n=29 1.37-0.70 · n=28 1.65-0.50 · n=27 1.90-1.00 · n=26 2.03-1.35 · n=25 2.56-1.10 · n=24 2.83-0.70 · n=23 3.04-0.46 · n=22 NCEP GFS MAE by lead day 1 to 9, tmin
GraphCast (GFS init)graphcast_gfs 1.21+1.21 · n=2 0.46+0.46 · n=1 GraphCast (GFS init) MAE by lead day 1 to 9, tmin
GraphCast (IFS init)graphcast_ifs 2.47+2.42 · n=28 1.94+1.87 · n=27 1.90+1.84 · n=26 1.93+1.84 · n=25 2.19+2.16 · n=25 1.90+1.89 · n=25 2.23+2.06 · n=24 2.38+1.97 · n=23 2.35+1.71 · n=22 GraphCast (IFS init) MAE by lead day 1 to 9, tmin
ECMWF IFS HRESifs_hres 1.85+1.67 · n=25 1.48+1.37 · n=22 1.63+1.57 · n=23 1.67+1.51 · n=22 2.04+1.94 · n=20 1.46+0.98 · n=18 2.16+1.23 · n=19 2.64+1.53 · n=18 2.35+1.01 · n=17 ECMWF IFS HRES MAE by lead day 1 to 9, tmin
Pangu-Weather (GFS init)pangu_gfs 2.20+2.20 · n=2 0.98+0.98 · n=1 Pangu-Weather (GFS init) MAE by lead day 1 to 9, tmin
Pangu-Weather (IFS init)pangu_ifs 1.78+1.78 · n=3 1.59+1.32 · n=2 0.35+0.35 · n=1 Pangu-Weather (IFS init) MAE by lead day 1 to 9, tmin
Persistence (baseline)persistence 2.20-0.07 · n=90 2.91-0.16 · n=90 3.33-0.29 · n=90 3.30-0.41 · n=90 3.39-0.43 · n=90 3.36-0.56 · n=90 3.48-0.66 · n=90 3.29-0.76 · n=90 3.43-0.86 · 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 5.32-5.32 · n=294.50-4.50 · n=13.91-3.91 · n=21.74-1.74 · n=11.70-1.70 · n=24.27+3.22 · n=294.43-4.43 · n=14.49-4.41 · n=272.39-0.62 · n=222.42-2.42 · n=13.06-3.06 · n=2
2026-01 3.07-3.05 · 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-3022
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-307055OBSobs_fallback
2026-08-297155CLI
2026-08-287357CLI
2026-08-277459CLI
2026-08-267758CLI
2026-08-258459CLI
2026-08-248157CLI
2026-08-237559CLI
2026-08-227659CLI
2026-08-218160CLI
2026-08-208659CLI
2026-08-198355CLI
2026-08-188057CLI
2026-08-178054CLI
2026-08-167558CLI
2026-08-157557CLI
2026-08-147856CLI
2026-08-138156CLI
2026-08-127958CLI
2026-08-117955CLI
2026-08-107455CLI
2026-08-097755CLI
2026-08-088358CLI
2026-08-078659CLI
2026-08-068859CLI
2026-08-058759CLI
2026-08-048158CLI
2026-08-037653CLI
2026-08-027156CLI
2026-08-017258CLI

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