A swell window is the arc of ondulação directions a spot can actually feel, and we author each one by hand rather than trusting a model to guess it. That means we measure the coastline facing from OpenStreetMap — Meco faces 283°, for example — then write the range of directions that reach the sand, plus a shadow factor for what wraps in around a headland and what gets blocked. It's the difference between knowing a spot is pointed at a swell and assuming any swell counts. Understanding how surf swell windows work is really understanding one thing: raw model output tells you what the ocean is doing offshore, and the swell window tells you what survives the last few miles to a specific beach. We do this for 116 spots, and where a human hasn't reviewed one yet, we say so and cap what we'll claim.
Here's the order we work in for every spot:
- Measure the facing from OpenStreetMap geometry, not a guess off a map.
- Author the swell window — the arc of directions that reach the break.
- Add a shadow factor for what wraps in and what a headland blocks.
- Set wind tolerance and the sectors the spot is sheltered from.
- Set tide preference and tolerance, then a size factor.
- Apply per-level skill gates so the same day scores differently for L1 and L5.
- Flag it provisional if no human has reviewed it, and hold it out of alerts.
What is a swell window, exactly?
It's the range of swell directions a spot can physically receive. A beach that faces due west doesn't feel a swell marching straight up from the south — the coastline is in the way. So we write a window: a low and high bearing, centered roughly on the facing, widened or narrowed by the local headlands.
Then we add the shadow factor. Real coastlines aren't flat walls. Swell bends around points and into bays. A spot tucked behind a headland might still get a smaller, cleaner version of a swell it can't see directly. That wrap is real energy, so we model it rather than pretend the spot is dead.
Why not just trust the model?
Because the model doesn't know your beach. Portugal's official automated marine forecasts are produced by statistically processing two numerical models, ECMWF and AROME, updated twice a day (IPMA, api.ipma.pt). That's excellent offshore data. It tells you period, height, and direction out at sea.
What it doesn't do is decide whether that swell reaches a particular sandbank at a usable size and the right angle. That last step is coastline geometry, and it's per-spot. IPMA itself notes that in situations where the models don't adequately reproduce the state of the sea, the automatic forecast can differ from what a meteorologist would produce, and advises consulting the descriptive forecasts too (IPMA, ipma.pt). If the national service admits model and judgment diverge, a black-box star rating that hides the difference isn't being honest with you.
When do I say "I" and when do we say "we"?
This matters, so I keep it clean. "We" is the model's output — the score, the swell strip, the best-window detection. That's computed the same way every run.
"I" is my judgment: the authored swell window, the shelteredFrom sectors, the call that a spot is a rivermouth and not a beach break. PeelWatch types every spot rather than lumping them — 100 beach breaks, 12 rivermouths, 4 reefs, 4 points — because a rivermouth's sandbar behaves nothing like a reef, and the window I author reflects that. When I've reviewed a spot, the confidence goes up. When I haven't, it carries a provisional badge and stays out of the alert system.
How the Nortada gets modeled into the window
A swell window is only half the story. The nortada — the persistent summer north wind — will flatten and chop most of the west coast even on a solid swell. So each spot also gets a wind tolerance and explicit sheltered-from sectors.
That's why a north wind reads three ways along the same coast: offshore and grooming at a south-facing spot, straight onshore and blown out at a west-facing one, cross-shore and messy at a third. Same wind, three verdicts. The one-line plain verdict for every hour names the reason — blown out, wrong tide, too small — so you're not left guessing which factor killed it.
The west coast is high-energy — the window has to respect that
This isn't marketing. Portugal's western coast is a wave-dominated, high-energy environment; the central west coast sees winter offshore mean significant wave heights reach 2.5m, and waves with a 5-year recurrence can exceed 9m (coastal geomorphology study, researchgate.net). A window that's too generous turns a storm swell into a false green light for a beginner.
So the size factor and the per-level skill gates do real work here. The same 6-foot day can be a 4 for an intermediate and a 0 for a beginner — not because the beginner is being scolded, but because the model gates it. Ground-truth for all this comes from real instruments: the Instituto Hidrográfico runs the MONIZEE infrastructure — tide gauges, wave buoys, coastal radar and multi-parameter buoys along the mainland and archipelagos (Instituto Hidrográfico, hidrografico.pt).
How much should I trust a small score difference?
Not much, and I'd rather tell you than let you over-read it. Treat a 0.2 gap between two spots as noise, not signal. The score is one decimal because the coastline geometry is precise, not because the ocean is. Where the model has been wrong, that's published in the accuracy panel — I fix it, say what it was, and move on.
The honest use of a swell window is this: it narrows 116 spots down to the handful pointed at today's swell, at a workable size, out of the wind. Then you check the cam and the tide countdown, and you make the call. The window does the geometry. You still read the water.
Go open the map, filter by "near me," and look at which windows are lit for the swell that's running. That's where the working becomes yours to use.