Forecast Model Status

The wind forecast shown on the dashboard for the Mussel Rock stations isn’t raw model output. It’s the HRRR forecast corrected from each station’s own measurement history — HRRR has predictable blind spots at any given spot, and once enough local data has accumulated we can measure those errors and subtract them back out. This page tracks how much that correction actually improves on raw HRRR, and whether it still does.

How the correction works

  1. Every hour, what HRRR predicted for each station is stored next to what the station actually measured. Over weeks this builds a paired history of where HRRR runs fast, slow, or off-direction at that exact location.
  2. Once an hour a model retrains on that history and learns the station’s recurring errors — a sea breeze HRRR starts too late, terrain channeling it misses from a certain direction, a standing speed or gust bias.
  3. The correction deepens as more data arrives: a single mean bias (split by forecast horizon), then a separate bias for each hour of day (the diurnal sea‑breeze cycle), then one per wind‑direction sector (terrain channeling), and finally a regression that also reads winds aloft, marine‑layer depth (two coastal ceilometers, the Oakland sounding, and the Bodega Bay profiler), coast–inland pressure gradients, Buoys 46026/46012/46237, the upstream KSFO and Half Moon Bay airport winds, and an independent GFS forecast it can blend against HRRR — and it knows when any of those feeds is offline rather than guessing. Wind speed and direction are corrected either separately or as one wind vector, whichever validates better at that station. The dashboard always serves whichever level the data currently supports.
  4. A newly trained model is scored on held‑out days it never saw during training — several separate blocks spread across the whole season, not just last week, so one foggy or windy stretch can’t decide alone — and only goes live if it beats raw HRRR out‑of‑sample. If it can’t, the site serves HRRR unchanged — so the correction can never make the forecast worse than the model it started from.

The charts below plot that out-of-sample RMSE over time, per station and across all served HRRR lead times (0–24 h). The gap between the raw HRRR line and the corrected line is the skill the local model adds; gust and direction are validated separately, and any correction that cannot beat raw HRRR is disabled rather than served.

Range:
Loading model history…

Forecast Correction Pipeline

Model history →

The wind meter charts show a local statistical correction layer built from HRRR and station observations. Models train on all served HRRR lead times (0–24 h) and are validated by blocked cross-validation — several held-out date blocks spread across the training window; a stage activates only when its held-out validation RMSE beats raw HRRR. Gust and direction corrections are validated and gated independently of wind speed.

    Station Stage Samples HRRR RMSE Corrected RMSE Δ Gust Δ