NORDR · · 4 min read
Why ML Training Contracts Matter for Surf Forecasts
A surf model is only useful if training rows reflect what the app would have known at forecast time. Otherwise the model learns from the future.
A forecast model can look accurate for the wrong reason.
The most dangerous version is data leakage: the training set quietly includes information that would not have been available when the forecast was made.
In a surf app, that creates a model that performs beautifully in testing and disappoints in the water.
NJORD ML's remediation work is built around avoiding that trap.
Forecast Time Is Sacred
For every prediction, there is a moment when the forecast is issued.
At that moment, the model only knows what has already been observed, published, or forecast by an upstream source. It cannot know what a buoy will measure three hours later. It cannot know what a user will report after the session.
Training data has to respect that boundary.
If it does not, the model learns from the future.
Rows Need the Right Grain
Surf forecasting is not a day-level problem.
A row should represent a task, a spot, an issue time, and a lead time. That structure keeps the question clear: given what was known at this issue time, what should we expect at this spot for this future valid time?
Day averages across unrelated stations are too blunt.
They hide timing and local context, which are the two things North Sea surfers actually need.
Direction Is Not an Average
Marine data contains circular values.
Wave direction and wind direction cannot be averaged like ordinary numbers. The average of 350 degrees and 10 degrees is not 180 degrees. It is north.
That kind of detail matters in a surf model because direction can be the difference between lined-up swell and useless energy.
Good training contracts force the pipeline to handle those values correctly.
Validation Should Feel Like Reality
The test split should simulate future use.
If training and validation rows are randomly mixed across time, the model can benefit from patterns it should not know yet. Better validation uses time-aware splits, holdout windows, and embargo rules that reduce leakage around event boundaries.
That is less convenient.
It is also closer to the real product.
Better Data Contracts Make Better Forecasts
Users never see the training contract, but they experience the consequences.
A model trained with sloppy time semantics will sound confident and fail in edge cases. A model trained with clean issue-time discipline has a better chance of staying honest when the forecast matters.
Good surf ML starts with the training row.
Related notes
NORDR · 15 July 2026 · 7 min read
The North Sea does not break by region
Offshore models describe the sea. Local banks, structures, water level, and current decide what reaches the beach.
NORDR · 6 May 2026 · 4 min read
Why the 48-Hour Surf Window Matters More Than a 10-Day Chart
Long-range charts are useful for watching storms. The real North Sea surf decision usually happens inside the next 48 hours.
NORDR · 6 May 2026 · 4 min read
Why Swell Arrival Windows Beat Exact Times
A North Sea swell forecast that gives you a narrow arrival window is more honest than one pretending to know the exact minute waves will turn on.