How the forecast is built
A surf forecast is a claim about the future, and the useful ones say how confident they are. This is what goes in, what the model does with it, how we check it, and, at the bottom and in detail, what it does not know.
What goes in
Not a single wave height. The model takes the whole directional spectrum arriving at the coast: every swell train, with its own height, period and angle. Two swells of the same size do entirely different things to a break depending on their period and where they come from.
- Swell
- CDIP's Monitoring and Prediction (MOP) system, run by Scripps. Nearshore nodes roughly every 300 feet along the California coast, carrying full directional spectra rather than a summary height and period.
- Seafloor
- NOAA NCEI CUDEM, 1/9 arc-second (2022–2023), resampled to a 10-foot grid covering about half a mile in every direction from each break.
- Tide
- NOAA CO-OPS. Observed where a station reports it, predicted beyond.
- Wind and weather
- Open-Meteo, hourly, including sea-surface temperature.
- Seasonal context
- 25 years of CDIP MOP hindcast (2000–2025), binned by week of year, so a given week can be read against its own history.
- Ground truth
- Sentinel-2 satellite imagery, used to check the model, not to drive it.
What the model does
A parabolic mild-slope solver marches that spectrum shoreward across the real seabed, computing refraction, shoaling, diffraction and finally breaking. It is deterministic physics, not a statistical fit, so the same inputs always produce the same wave field.
Waves break when height reaches a fixed fraction of depth (H ≥ 0.78·d, the McCowan depth limit). Breaking is solved on the combined sea rather than train by train: superposed peaks can break where no single train would, and energy-summing already-saturated trains would inflate surf-zone height past what the depth allows.
Which train organises the break is decided by which one breaks biggest, not which is tallest offshore. Breaking height follows energy flux, so a 2 ft 17-second groundswell out-breaks a 3 ft 6-second windswell. Choosing on offshore height alone gets this backwards.
Where swell has to wrap a point over miles before it arrives (a bay, an inlet, anything tucked behind a headland), a local grid can only bend the last few hundred yards, so the swell would show up far too oblique. Those spots get a separately traced wrap from the offshore node to the break. At Bolinas that is the difference between a swell arriving 64° off shore-normal and one that has actually turned toward the beach.
How we check it
Satellite imagery gives an independent read on what the ocean actually did. For a chosen day we find a cloud-free Sentinel-2 pass over a spot and pull the real swell crest direction out of the image with a 2-D FFT. The crest lines are usually invisible to the eye, but they are periodic, and the transform separates them from the noise.
That observed direction goes next to our prediction for the same hour, and three things get judged: whether the approach angle matches, whether the model reproduces the wrap the satellite shows around the point, and whether the break sits where the whitewater actually is.
The extraction reports its own confidence and refuses to return a direction when the signal is too weak rather than inventing one. Where it is confident, it has recovered a swell direction to within 3° of the nearest offshore buoy.
How far ahead
- Horizon
- 7 days, then a lower-confidence extended outlook to 10 days.
- Resolution
- 3-hourly to 72 hours, 6-hourly beyond.
- Confidence
- Every step carries high, medium or low, degrading with lead time. The extended outlook is always low.
- Ceiling
- Seven days is a hard limit, not a choice. It is how far the underlying wave models run. Beyond that is climatology, and it is labelled as such.
This forecast was generated Aug 26, 3:44 AM PDT.
What it does not know
Each of these is a real limitation, stated because a forecast that hides its error bars is worth less than one that doesn’t.
Breaker type is weakly predicted, by anyone
We report whether a wave should spill or plunge, derived from the Iribarren number. You should know how well that is actually known: in the largest field study of the question (187 waves across three sites) the Iribarren number explains roughly 14% of the variance in observed breaker type, and the authors concluded it should not be pursued further. We measured four published alternatives against our own model output and all four failed: one is near-constant over a sandbar, one is defined outside our domain, one comes out backwards. Iribarren was kept because it is the only candidate that responds to both swell and tide. Treat breaker type as an indication, not a measurement.
Sandbars move; the survey does not
At a reef the seabed is fixed and the model is on firm ground. At a beach break the bars migrate through the season, and our bathymetry is a snapshot from a survey flown in 2022 or 2023. The more the bars have reshaped since, the less the model knows about exactly where it breaks.
Currents and rips are not modelled
Nearshore circulation (rips, longshore drift, tidal flow through a channel) is not in the model today. It is in development, and it will be labelled clearly when it lands.
Where the model stops and judgement starts
The physics produces height, depth, breaking position and shape. Turning that into “good” or “poor” means deciding how much a given wind matters against a given size, and there is no published standard to defer to. The structure comes from the literature; the weightings are our judgement, and reasonable people would weight them differently.
It is a model, not a measurement
A forecast is what the physics says should happen given inputs that are themselves forecasts. It is not a guarantee about conditions at any moment, and it cannot see a passing squall or the sandbar that shifted last week.
Found somewhere the forecast was wrong? That is the most useful thing you can send us. It is how the model gets calibrated.
Browse the spots →