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

San Francisco Intl · NCEP GFS · lead day 0

KSFO · gfs · lead 0

Target day = initialization date + 0 days. This page is a permanent link: the numbers change as history accumulates, the address and the methodology version do not.

Scores use the latest model version segment, gfs-0p25, starting 2026-08-01 — days before that ran a different version of the model and are excluded rather than silently pooled. Of the scored days, 1 carry a QC flag on the observation.

JSON for this page CSV of the daily errors Cite this page

Every number for this combination

All four windows × both initializations × both interpolations × both variables. Errors are computed in °C and shown in °F; CI is a 95 % moving-block bootstrap interval. MAE debiased and skill, debiased remove the constant offset of the window first, so a station that the model always reads a degree too warm is not scored as if it had no skill — compare the two skill columns to see how much of the error is a fixed offset. n QC next to n counts days whose observation carries a QC flag.

VariableInitMethod Windown MAE °F MAE debiased Bias °F RMSE °F ±1 °F±2 °F±3 °F Skill Skill, debiased Period
tmax00Zbilinear30d30 1 QC4.74 [3.72, 5.91]2.67-4.35 [-5.59, -3.21]5.50 [4.32, 6.53]13% [3%, 23%]17%33%2026-08-01 → 2026-08-30
tmax00Zbilinear90d30 1 QC4.74 [3.62, 6.17]2.67-4.35 [-5.90, -3.13]5.50 [4.28, 6.77]13% [3%, 23%]17%33%2026-08-01 → 2026-08-30
tmax00Zbilinear365d30 1 QC4.74 [3.61, 6.13]2.67-4.35 [-5.92, -3.15]5.50 [4.20, 6.77]13% [3%, 23%]17%33%2026-08-01 → 2026-08-30
tmax00Zbilinearall30 1 QC4.74 [3.63, 6.34]2.67-4.35 [-6.09, -3.13]5.50 [4.27, 6.86]13% [0%, 23%]17%33%2026-08-01 → 2026-08-30
tmax00Znearest30d30 1 QC3.18 [2.39, 4.20]3.01+1.40 [-0.19, 2.90]4.11 [2.93, 5.34]23% [17%, 33%]43%53%2026-08-01 → 2026-08-30
tmax00Znearest90d30 1 QC3.18 [2.31, 4.26]3.01+1.40 [-0.31, 2.96]4.11 [2.86, 5.33]23% [13%, 33%]43%53%2026-08-01 → 2026-08-30
tmax00Znearest365d30 1 QC3.18 [2.22, 4.38]3.01+1.40 [-0.54, 2.98]4.11 [2.75, 5.42]23% [12%, 36%]43%53%2026-08-01 → 2026-08-30
tmax00Znearestall30 1 QC3.18 [2.25, 4.32]3.01+1.40 [-0.52, 3.01]4.11 [2.79, 5.43]23% [14%, 35%]43%53%2026-08-01 → 2026-08-30
tmin00Zbilinear30d30 1 QC1.05 [0.81, 1.30]0.95-0.34 [-0.97, 0.40]1.35 [0.97, 1.77]57% [47%, 67%]93%97%2026-08-01 → 2026-08-30
tmin00Zbilinear90d30 1 QC1.05 [0.78, 1.30]0.95-0.34 [-1.00, 0.53]1.35 [0.92, 1.76]57% [48%, 68%]93%97%2026-08-01 → 2026-08-30
tmin00Zbilinear365d30 1 QC1.05 [0.79, 1.30]0.95-0.34 [-1.03, 0.65]1.35 [0.94, 1.83]57% [47%, 70%]93%97%2026-08-01 → 2026-08-30
tmin00Zbilinearall30 1 QC1.05 [0.79, 1.31]0.95-0.34 [-1.02, 0.59]1.35 [0.93, 1.81]57% [48%, 70%]93%97%2026-08-01 → 2026-08-30
tmin00Znearest30d30 1 QC1.92 [1.52, 2.41]1.29-1.43 [-2.29, -0.52]2.29 [1.86, 2.68]27% [10%, 43%]60%77%2026-08-01 → 2026-08-30
tmin00Znearest90d30 1 QC1.92 [1.50, 2.40]1.29-1.43 [-2.29, -0.37]2.29 [1.82, 2.70]27% [9%, 43%]60%77%2026-08-01 → 2026-08-30
tmin00Znearest365d30 1 QC1.92 [1.49, 2.49]1.29-1.43 [-2.37, -0.28]2.29 [1.81, 2.74]27% [9%, 43%]60%77%2026-08-01 → 2026-08-30
tmin00Znearestall30 1 QC1.92 [1.46, 2.43]1.29-1.43 [-2.32, -0.36]2.29 [1.80, 2.73]27% [9%, 44%]60%77%2026-08-01 → 2026-08-30

+ 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 error, last 90 days

Daily forecast minus observed error in °F for NCEP GFS at KSFO, lead day 0, 00Z bilinear tmax+20+100-10-202026-08-01: -5.62 °F2026-08-02: -11.44 °F2026-08-03: -8.48 °F2026-08-04: -3.67 °F2026-08-05: -4.84 °F2026-08-06: -4.03 °F2026-08-07: +0.48 °F2026-08-08: +2.48 °F2026-08-09: -0.7 °F2026-08-10: -5.31 °F2026-08-11: -9.93 °F2026-08-12: -7.98 °F2026-08-13: -7.6 °F2026-08-14: -5.46 °F2026-08-15: -5.83 °F2026-08-16: -2.83 °F2026-08-17: -5.72 °F2026-08-18: -4.62 °F2026-08-19: -0.23 °F2026-08-20: -4.52 °F2026-08-21: -2.58 °F2026-08-22: -1.19 °F2026-08-23: -6.4 °F2026-08-24: -5.03 °F2026-08-25: +0.18 °F2026-08-26: -5.72 °F2026-08-27: -2.85 °F2026-08-28: +2.8 °F2026-08-29: -6.27 °F2026-08-30: -7.53 °F2026-08-012026-08-30°F, forecast − observed
Forecast − observed, °F, 00Z bilinear daily maximum. The dashed line is zero; the thick line is a centred 7-day mean, drawn only where the whole window is present. Gaps are days with no score, never interpolation. Hover a point for its date and value.
The same series as a table (30 days, newest first) · download CSV
Climatological dayError °F
2026-08-30-7.53
2026-08-29-6.27
2026-08-28+2.80
2026-08-27-2.85
2026-08-26-5.72
2026-08-25+0.18
2026-08-24-5.03
2026-08-23-6.40
2026-08-22-1.19
2026-08-21-2.58
2026-08-20-4.52
2026-08-19-0.23
2026-08-18-4.62
2026-08-17-5.72
2026-08-16-2.83
2026-08-15-5.83
2026-08-14-5.46
2026-08-13-7.60
2026-08-12-7.98
2026-08-11-9.93
2026-08-10-5.31
2026-08-09-0.70
2026-08-08+2.48
2026-08-07+0.48
2026-08-06-4.03
2026-08-05-4.84
2026-08-04-3.67
2026-08-03-8.48
2026-08-02-11.44
2026-08-01-5.62

Error distribution

Distribution of the signed daily error in °F for NCEP GFS at KSFO, lead day 0-20 to -18 °F: 0 days-18 to -16 °F: 0 days-16 to -14 °F: 0 days-14 to -12 °F: 0 days-12 to -10 °F: 1 day-10 to -8 °F: 2 days-8 to -6 °F: 5 days-6 to -4 °F: 11 days-4 to -2 °F: 4 days-2 to 0 °F: 3 days0 to 2 °F: 2 days2 to 4 °F: 2 days4 to 6 °F: 0 days6 to 8 °F: 0 days8 to 10 °F: 0 days10 to 12 °F: 0 days12 to 14 °F: 0 days14 to 16 °F: 0 days16 to 18 °F: 0 days18 to 20 °F: 0 daysdashed: P50 |e| 4.93 · P90 |e| 8.03 °F-200+20 °Fn = 30 days
All scored days for 00Z bilinear daily maximum, 20 equal bins. The dashed marks are the 50th and 90th percentiles of the absolute error, mirrored on both sides. Hover a bar for its bin and count.
Bin counts as a table
From °FTo °FDays
-20.00-18.000
-18.00-16.000
-16.00-14.000
-14.00-12.000
-12.00-10.001
-10.00-8.002
-8.00-6.005
-6.00-4.0011
-4.00-2.004
-2.00+0.003
+0.00+2.002
+2.00+4.002
+4.00+6.000
+6.00+8.000
+8.00+10.000
+10.00+12.000
+12.00+14.000
+14.00+16.000
+16.00+18.000
+18.00+20.000

Month by month

00Z bilinear daily maximum, newest first.

Monthn MAE °FBias °F
2026-08304.74 -4.35

Availability

ModelScored period DaysCoverage
NCEP GFS2026-08-01 → 2026-08-30 30
NCEP GFS2026-08-01 → 2026-08-30 30

Compared with other models

Paired bootstrap on the days both models cover (90d, 00Z, bilinear, daily maximum). Negative means NCEP GFS has the lower MAE. "Distinguishable" means the 95 % interval excludes zero.

Other modelCommon days MAE difference °FDistinguishable
ECMWF AIFS Single 30 +0.16 [-0.30, 0.89] no
Aurora (GFS init) 2 -0.78 [-1.21, -0.36] yes
Aurora (IFS init) 3 +0.11 [-1.22, 2.77] no
FourCastNet v2 (GFS init) 2 +1.89 [1.54, 2.24] yes
FourCastNet v2 (IFS init) 3 +2.20 [0.59, 3.57] yes
GraphCast (GFS init) 2 +0.71 [-0.12, 1.54] no
GraphCast (IFS init) 28 +0.16 [-0.33, 0.91] no
ECMWF IFS HRES 25 -1.63 [-2.26, -0.85] yes
Pangu-Weather (GFS init) 2 -0.39 [-0.65, -0.12] yes
Pangu-Weather (IFS init) 3 +0.79 [0.26, 1.86] yes

Cite this page

ShortCastCheck, KSFO gfs lead 0, methodology v0.2, accessed 2026-08-31, https://castcheck.zifanzhang.com/station/KSFO/model/gfs/lead/0/

LongCastCheck (2026). Station-level verification of raw weather-model 2 m temperature forecasts: KSFO (San Francisco Intl), model gfs, lead day 0. Methodology version 0.2, schema version 0.1, data through 2026-08-30. Accessed 2026-08-31. https://castcheck.zifanzhang.com/station/KSFO/model/gfs/lead/0/

Accessed2026-08-31 (data through 2026-08-30; page built 2026-08-31T03:52:06+00:00)

JSON CSV all scores methodology v0.2 licence