Forecast Accuracy Report

The surf forecast that grades itself. Every 6 hours we snapshot our own forecasts at NOAA buoy locations, then score them against what the buoys actually measured. No cherry-picking — every scored forecast is counted, and the raw numbers are in the open JSON dataset.

Verification is live and collecting data — the first scored pairs appear within a day of a forecast being issued, and stable statistics need a few weeks of accumulation. Check back soon, or watch the raw data grow in the JSON dataset.

Methodology

Every 6 hours (about 2h45m after each NOAA wave-model cycle) we request our own public forecast at the exact coordinates of 21 NDBC wave buoys spanning every region we serve. Each snapshot stores the predicted significant wave height and peak period out to 72 hours ahead.

Once a forecast's valid time passes, it is paired with the buoy observation nearest in time (within 45 minutes) and the error is recorded. Bias is the mean of forecast − observed (positive = we over-forecast), MAE is the mean absolute error, both over a rolling 30-day window. Wave heights are significant wave height in meters, compared like-for-like in open water — this measures the wave model, not breaking-wave face height at the beach.

We use these numbers, not just publish them: where a buoy shows a persistent, well-sampled bias, the forecast served for nearby spots is automatically nudged by the measured amount (capped, and only with 30+ scored pairs behind it). The verification always scores the raw model output, so the correction can't hide the model's true error. Pipeline code is open source.