KSFO — San Francisco Intl
37.6196, -122.3656 · 3 m· standard offset UTC-8 h · truth product CLISFO
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
| Model | d0 | d1 | d2 | d3 | d4 | d5 | d6 | d7 | d8 | d9 | lead 1–9 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| ECMWF AIFS Singleaifs_single | 4.58-4.49 · n=30 | 4.65-4.42 · n=29 | 4.58-4.29 · n=28 | 4.42-4.17 · n=27 | 4.69-4.44 · n=26 | 4.52-4.22 · n=25 | 4.86-4.64 · n=24 | 5.34-4.54 · n=23 | 5.35-4.31 · n=22 | — | |
| Aurora (GFS init)aurora_gfs | 7.68-7.68 · n=2 | 6.64-6.64 · n=1 | — | — | — | — | — | — | — | — | |
| Aurora (IFS init)aurora_ifs | 5.42-5.42 · n=3 | 8.32-8.32 · n=2 | 8.34-8.34 · n=1 | — | — | — | — | — | — | — | |
| FourCastNet v2 (GFS init)fourcastnet_gfs | 5.01-5.01 · n=2 | 1.41-1.41 · n=1 | — | — | — | — | — | — | — | — | |
| FourCastNet v2 (IFS init)fourcastnet_ifs | 3.34-1.87 · n=3 | 2.45-2.45 · n=2 | 1.61-1.61 · n=1 | — | — | — | — | — | — | — | |
| NCEP GFSgfs | 4.74-4.35 · n=30 | 4.75-4.49 · n=29 | 4.58-4.30 · n=28 | 4.70-4.31 · n=27 | 4.57-4.44 · n=26 | 4.69-4.30 · n=25 | 4.65-4.40 · n=24 | 4.86-4.73 · n=23 | 4.89-4.86 · n=22 | — | |
| GraphCast (GFS init)graphcast_gfs | 6.19-6.19 · n=2 | 4.64-4.64 · n=1 | — | — | — | — | — | — | — | — | |
| GraphCast (IFS init)graphcast_ifs | 4.62-4.43 · n=28 | 5.07-4.91 · n=27 | 5.16-5.07 · n=26 | 5.07-4.79 · n=25 | 5.13-5.00 · n=25 | 5.56-5.29 · n=25 | 5.60-5.34 · n=24 | 5.95-5.74 · n=23 | 6.76-6.25 · n=22 | — | |
| ECMWF IFS HRESifs_hres | 6.17-6.17 · n=25 | 6.71-6.71 · n=22 | 5.98-5.98 · n=23 | 6.33-6.33 · n=22 | 6.33-6.33 · n=20 | 6.20-6.20 · n=18 | 5.98-5.91 · n=19 | 5.44-5.42 · n=18 | 5.37-5.14 · n=17 | — | |
| Pangu-Weather (GFS init)pangu_gfs | 7.29-7.29 · n=2 | 6.64-6.64 · n=1 | — | — | — | — | — | — | — | — | |
| Pangu-Weather (IFS init)pangu_ifs | 4.74-4.11 · n=3 | 6.70-6.70 · n=2 | 6.39-6.39 · n=1 | — | — | — | — | — | — | — | |
| Persistence (baseline)persistence | — | 3.58+0.00 · n=90 | 4.39+0.01 · n=90 | 4.61+0.01 · n=90 | 5.08-0.10 · n=90 | 5.17-0.21 · n=90 | 5.06-0.19 · n=90 | 4.67-0.29 · n=90 | 4.88-0.41 · n=90 | 4.74-0.39 · n=90 |
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
| Model | d0 | d1 | d2 | d3 | d4 | d5 | d6 | d7 | d8 | d9 | lead 1–9 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| ECMWF AIFS Singleaifs_single | 0.87-0.43 · n=30 | 0.94-0.45 · n=29 | 1.05-0.50 · n=28 | 1.18-0.62 · n=27 | 1.30-0.72 · n=26 | 1.36-0.60 · n=25 | 1.55-0.57 · n=24 | 1.74-0.42 · n=23 | 1.65-0.17 · n=22 | — | |
| Aurora (GFS init)aurora_gfs | 0.57+0.24 · n=2 | 0.33-0.33 · n=1 | — | — | — | — | — | — | — | — | |
| Aurora (IFS init)aurora_ifs | 0.98+0.35 · n=3 | 1.11-0.29 · n=2 | 1.25-1.25 · n=1 | — | — | — | — | — | — | — | |
| FourCastNet v2 (GFS init)fourcastnet_gfs | 4.85-4.85 · n=2 | 2.12-2.12 · n=1 | — | — | — | — | — | — | — | — | |
| FourCastNet v2 (IFS init)fourcastnet_ifs | 2.71-2.24 · n=3 | 1.23-1.23 · n=2 | 0.40-0.40 · n=1 | — | — | — | — | — | — | — | |
| NCEP GFSgfs | 1.05-0.34 · n=30 | 0.91-0.19 · n=29 | 0.93-0.24 · n=28 | 0.82-0.35 · n=27 | 1.04-0.52 · n=26 | 0.98-0.63 · n=25 | 1.06-0.74 · n=24 | 1.15-0.41 · n=23 | 0.98-0.38 · n=22 | — | |
| GraphCast (GFS init)graphcast_gfs | 0.62+0.12 · n=2 | 0.89-0.89 · n=1 | — | — | — | — | — | — | — | — | |
| GraphCast (IFS init)graphcast_ifs | 0.70+0.48 · n=28 | 0.83+0.12 · n=27 | 1.00-0.17 · n=26 | 1.29-0.46 · n=25 | 1.42-0.69 · n=25 | 1.47-0.91 · n=25 | 1.55-1.10 · n=24 | 1.81-1.26 · n=23 | 1.49-0.96 · n=22 | — | |
| ECMWF IFS HRESifs_hres | 0.78-0.17 · n=25 | 0.87-0.13 · n=22 | 0.95-0.08 · n=23 | 0.91-0.08 · n=22 | 0.75-0.15 · n=20 | 0.64-0.21 · n=18 | 0.89-0.38 · n=19 | 1.25-0.29 · n=18 | 1.38+0.19 · n=17 | — | |
| Pangu-Weather (GFS init)pangu_gfs | 0.66+0.17 · n=2 | 0.55-0.55 · n=1 | — | — | — | — | — | — | — | — | |
| Pangu-Weather (IFS init)pangu_ifs | 1.21+1.12 · n=3 | 1.13+0.42 · n=2 | 0.08+0.08 · n=1 | — | — | — | — | — | — | — | |
| Persistence (baseline)persistence | — | 1.16-0.04 · n=90 | 1.59-0.10 · n=90 | 1.67-0.16 · n=90 | 1.98-0.20 · n=90 | 2.03-0.21 · n=90 | 1.89-0.29 · n=90 | 1.94-0.34 · n=90 | 1.97-0.37 · n=90 | 2.08-0.41 · n=90 |
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.
| Month | aifs_single | aurora_gfs | aurora_ifs | fourcastnet_gfs | fourcastnet_ifs | gfs | graphcast_gfs | graphcast_ifs | ifs_hres | pangu_gfs | pangu_ifs |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 2026-08 | 4.65-4.42 · n=29 | 6.64-6.64 · n=1 | 8.32-8.32 · n=2 | 1.41-1.41 · n=1 | 2.45-2.45 · n=2 | 4.75-4.49 · n=29 | 4.64-4.64 · n=1 | 5.07-4.91 · n=27 | 6.71-6.71 · n=22 | 6.64-6.64 · n=1 | 6.70-6.70 · n=2 |
| 2026-01 | — | — | — | — | — | — | — | 3.32-3.32 · n=6 | — | — | — |
Model availability at this station
| Model | Period | Scored days | Coverage |
|---|---|---|---|
| ECMWF AIFS Single | 2026-08-02 → 2026-08-30 | 29 | |
| Aurora (GFS init) | 2026-08-30 → 2026-08-30 | 1 | |
| Aurora (IFS init) | 2026-08-29 → 2026-08-30 | 2 | |
| FourCastNet v2 (GFS init) | 2026-08-30 → 2026-08-30 | 1 | |
| FourCastNet v2 (IFS init) | 2026-08-29 → 2026-08-30 | 2 | |
| NCEP GFS | 2026-08-02 → 2026-08-30 | 29 | |
| GraphCast (GFS init) | 2026-08-30 → 2026-08-30 | 1 | |
| GraphCast (IFS init) | 2026-01-02 → 2026-08-30 | 33 | |
| ECMWF IFS HRES | 2026-08-02 → 2026-08-30 | 22 | |
| Pangu-Weather (GFS init) | 2026-08-30 → 2026-08-30 | 1 | |
| Pangu-Weather (IFS init) | 2026-08-29 → 2026-08-30 | 2 | |
| Persistence (baseline) | 2024-01-02 → 2026-08-30 | 967 |
Observed truth — last 30 days
| Climatological day | Tmax °F | Tmin °F | Source | Flag |
|---|---|---|---|---|
| 2026-08-30 | 71 | 57 | OBS | obs_fallback |
| 2026-08-29 | 71 | 56 | CLI | |
| 2026-08-28 | 65 | 57 | CLI | |
| 2026-08-27 | 73 | 58 | CLI | |
| 2026-08-26 | 77 | 55 | CLI | |
| 2026-08-25 | 68 | 58 | CLI | |
| 2026-08-24 | 73 | 58 | CLI | |
| 2026-08-23 | 77 | 57 | CLI | |
| 2026-08-22 | 69 | 59 | CLI | |
| 2026-08-21 | 68 | 58 | CLI | |
| 2026-08-20 | 69 | 56 | CLI | |
| 2026-08-19 | 68 | 57 | CLI | |
| 2026-08-18 | 70 | 57 | CLI | |
| 2026-08-17 | 72 | 57 | CLI | |
| 2026-08-16 | 70 | 58 | CLI | |
| 2026-08-15 | 69 | 58 | CLI | |
| 2026-08-14 | 70 | 59 | CLI | |
| 2026-08-13 | 71 | 60 | CLI | |
| 2026-08-12 | 74 | 57 | CLI | |
| 2026-08-11 | 76 | 57 | CLI | |
| 2026-08-10 | 73 | 57 | CLI | |
| 2026-08-09 | 71 | 57 | CLI | |
| 2026-08-08 | 67 | 58 | CLI | |
| 2026-08-07 | 68 | 57 | CLI | |
| 2026-08-06 | 72 | 57 | CLI | |
| 2026-08-05 | 72 | 58 | CLI | |
| 2026-08-04 | 73 | 57 | CLI | |
| 2026-08-03 | 78 | 56 | CLI | |
| 2026-08-02 | 80 | 57 | CLI | |
| 2026-08-01 | 74 | 57 | CLI |
All scores as JSON scores_latest.csv daily_errors.csv.gz data & licences