surfdag
How it works
Nederlands

Is it a surf day?

Each break's page answers that in its first line: whether, in the next seven days, there's a daylight window of your kind of surf, and when. Everything under it is the evidence.

Grades

Every hour is graded like a ski piste, on the size of the waves reaching the beach:

GradeSize at the beachWhat it's like
flatunder 0.3 mNothing to ride.
green0.3–0.6 mBeginner whitewater: easy to stand up and ride to the beach.
blue0.6–1.5 mProper waves with some power, still friendly.
red1.5 m and upBig or rough. For confident surfers.
black ⚠any size, when a hazard appliesExperts only. Expect real danger, some of it obvious and some of it hidden. Only counted as your kind of day if you pick it.

Black means at least one of: 3 m or more; 1.5 m or more with onshore wind gusting 52 km/h (28 kt) or more; strong offshore wind (46 km/h, 25 kt, Beaufort 6, or more, which pushes you away from the beach); or a storm surge of +1.0 m or more with onshore wind. A gusty south-westerly on its own isn't black: people surf those days happily.

Pick your kind of day: any mix of green, blue, red and black. Blue and red are on to start with; someone happy in blue but not in black or beginner whitewater can leave just blue on. Black is never on unless you turn it on, and black hours always show in the week view whatever you pick. Your choice stays in your browser. Only daylight counts. Grades describe the sea, not the weather: whether 3°C and rain is worth it is your call.

Where the lines come from. We looked for public, dated blog posts and comments on surf conditions along the Dutch coast, and scored 1,280 timestamped calls from them against what our forecast would have said, rebuilt from historical data for every day from August 2023 to October 2026. With these lines our grade matches what people said 68% of the time (70% against reports from people on the beach); the posts' own forecasts matched the beach reports 78% of the time. The weakest grade is red: days of long, clean groundswell often feel bigger than the forecast says. We keep checking against new observations. If a grade looks wrong to you on the beach, tell us: contact@surfdag.nl.

Waves reaching the beach

Forecast models give the height of the open sea several kilometres out — including waves heading the wrong way. On a day with offshore wind, the sea can be a metre of chop blowing out to sea while the beach gets almost nothing. So we split the sea into swell and wind waves and count each by how directly it travels towards that beach; anything heading away counts as nothing. Angled swell still counts for something, because the seabed bends it round towards the shore. The open-sea height is still shown when you point at the chart.

Size counts the period too. A metre of 9-second swell has far more push than a metre of 5-second chop, and surfers describe them as different days: the chop is "nothing, just slop". So grades use each part of the sea weighted by its period, given as the height a 7-second wave would need for the same push. That size is the number you see on the page; open a day to see the plain height and the period behind it.

That number is not the face you'll ride, which depends on the sandbanks and the tide on the day. It's a way to compare days and beaches fairly.

Next to each size is the wave period: the seconds between waves, weighted by what's heading for the beach. Long-period swell from a distant storm (9 seconds or more here) arrives in clean, powerful lines; local wind chop runs 5–7 seconds and surfs weaker and messier than its height suggests.

Black hours

Plenty of Dutch surfers go out in storms, and black hours are when they do. They're for experts only: expect real danger there, some of it obvious and some of it hidden. A wave forecast can't see everything that makes the sea dangerous, such as thick foam, rip currents and the water by the piers and harbour mouths.

Confidence

Every window is checked against two independent wave forecasts.

Next three daysDays four to seven
Both forecasts say it's your kind of dayHighModerate
Only the main forecast doesModerateLow
Only the second forecast doesLowLow

High and moderate windows are marked in gold. Low-confidence windows are listed as a chance, never in gold. Confidence drops a step after three days because the main forecast's detailed regional model only runs about three days ahead; after that it hands over to the same forecaster's coarser global model, and every forecast gets fuzzier further out anyway.

The main forecast is the German weather service's wave model: its detailed European model (DWD EWAM) for the first three days, then its global model (DWD GWAM). The second is Météo-France's. We chose them by checking both against two years of Rijkswaterstaat's measured wave heights at eight stations off the coast, from Zeeland to Egmond, in daylight hours:

DWD EuropeanDWD globalMétéo-France
Average error (open sea, 1 m or more)+0.08 m−0.04 m−0.20 m
Real 1.5 m hours it caught89%76%69%
Its 1.5 m hours that didn't happen23%23%10%

The main forecast is closer to the measured sea and catches most real windows, but raises more false alarms. The second reads low on surfable days and misses more, but when it does say yes it is usually right. That's why agreement between them is the best sign you have. This compares each model's best estimate of the present sea with what was measured; archives don't keep their five-day-ahead forecasts, which are always less accurate.

Wind

Wind is in km/h, the way surfers think about it, with the Beaufort number beside it: 20 km/h is Beaufort 4, 40 km/h Beaufort 6. Kiters and windsurfers think in knots (kt): 1 kt is 1.85 km/h, so 20 kt is about 37 km/h.

We take the wind from a point 5 km out to sea. Weather models run the wind over the beach about a quarter too low, because the land behind it slows it down; out at sea they match what the coastal weather stations measure, which is the wind you get in the water.

We describe the wind in five words: offshore, cross-offshore, cross-shore, cross-onshore and onshore, worked out from the way each beach faces.

Strong wind from the south round to the north-west chops the surf down, a local rule of thumb says by about a quarter in a south-westerly. Three years of dated surf reports agree and put it higher, at 40–50% along the whole coast, so above about 19 km/h (10 kt) from that side we take the size down, by 40% from about 37 km/h (20 kt).

Offshore wind — blowing from the land out to sea — grooms the waves; onshore wind chops them up. Each beach faces a slightly different way, so "offshore" is worked out per break:

BreakFacesOffshore windWave cellTide gauge
DomburgNW (324°)from the SE7 kmWestkapelle
WestkapelleW (276°)from the E10 kmWestkapelle
Hoek van HollandNW (310°)from the SE10 kmHoek van Holland
Ter HeijdeNW (310°)from the SE9 kmHoek van Holland + Scheveningen (blended by distance)
KijkduinNW (313°)from the SE9 kmScheveningen
ScheveningenNW (310°)from the SE7 kmScheveningen
NoordwijkWNW (288°)from the ESE9 kmScheveningen + IJmuiden (blended by distance)
ZandvoortWNW (291°)from the ESE9 kmIJmuiden
BloemendaalWNW (296°)from the ESE11 kmIJmuiden
Wijk aan ZeeW (280°)from the E6 kmIJmuiden
Egmond aan ZeeW (273°)from the E8 kmIJmuiden + Den Helder (blended by distance)
PettenWNW (285°)from the ESE11 kmIJmuiden + Den Helder (blended by distance)
TexelWNW (298°)from the ESE10 kmTexel Noordzee

Tide and storm surge

Tide heights are in metres against NAP (Normaal Amsterdams Peil), the Dutch reference level for heights and water levels, close to average sea level. +1.0 m NAP is a metre above it; −0.6 m NAP is 60 cm below.

The tide curve is calculated in your browser from harmonic constants we fitted to four years (2022–2025) of Rijkswaterstaat's published astronomical water levels at six gauges. Checked against Rijkswaterstaat's own tables for 2026, which the fit never saw:

GaugeTypical errorWorst
Westkapelle7.7 cm35.6 cm
Hoek van Holland6.5 cm31.8 cm
Scheveningen6.4 cm31.0 cm
IJmuiden6.6 cm29.2 cm
Den Helder5.2 cm23.3 cm
Texel Noordzee5.3 cm24.7 cm

Breaks between two gauges blend the two by distance. That astronomical tide leaves out the weather. On this coast a storm can raise or lower the sea by far more than the fit's error, so the page also shows Rijkswaterstaat's measured water level and its own forecast for the next two days. The gap between them and the predicted tide is the surge.

Updates

Nothing is stored. Each time you open or refresh a page, your browser asks Open-Meteo for the latest forecast, and our server asks Rijkswaterstaat for the latest water levels on your behalf, because Rijkswaterstaat doesn't accept requests from browsers.

For AI assistants

Pages build their forecast in the browser, so assistants should use the feed at surfdag.nl/api/<break>.json. To have an assistant send you a daily report, give it surfdag.nl/skill.

Sources

Wave, sea temperature and weather forecasts from Open-Meteo, used under CC BY 4.0. Water levels and the data behind the tide fit from Rijkswaterstaat. Wetsuit advice follows the consensus across the major wetsuit makers' temperature charts.