The call from the evening before (~18:00) already carries almost all the skill. The 06:00 morning update (first weather-balloon data) is the peak. Later morning observations barely move it.
So: check once the evening before to plan your day, glance again with the first coffee. After ~13:00 you can just watch SFO โ the sea breeze arrives there 1โ3 hours before Shoreline.
Each rung uses only information available at that hour. Bars: Brier skill vs. the "always windy" baseline (threshold-free).
| Forecast as of | Accuracy | P(good) | R(good) | Brier โ |
|---|---|---|---|---|
| Day before ~18:00 (Tmax + cloud forecast, persistence) | 83% | 89% | 89% | 0.121 |
| 06:00 morning (+ 850 hPa profile, inversion) | 84% | 91% | 89% | 0.117 |
| 08:00 morning (+ pressure gradients, buoy, coastal clouds) | 83% | 91% | 88% | 0.120 |
| 11:30 (+ burn-off status, SFO onset, 11:00 temps) | 83% | 90% | 88% | 0.119 |
Threshold 0.5; at the operating threshold 0.4 the full model reaches 85%. Caveat: the evening rung uses ERA5/observed values as a stand-in for perfect forecasts, so its real-world numbers will sit a notch lower โ exactly what the live scoring below is measuring.
The thermal is decided by the day type โ heat demand in the valley, cold-air supply at the coast, interference aloft โ and the day type is already visible in the forecasts the evening before. The morning observations mostly confirm what the models already said. The one real addition is the 04:00 weather balloon (inversion + wind aloft), which is why 06:00 is the sweet spot.
Every evening at 19:15 the day's forecasts are scored against what Moffett Field actually reported. This table compares the first run of the day (~06:15) with the last (~13:30) โ on real forecasts, no hindsight.
| Run | Days scored | Hit rate | Brier โ |
|---|
Collecting data โ check back in a few weeks.