Where Our Data Comes From

Updated 14 September 2026

Every figure on Setform is produced from open weather data. This page names the source and sets out how each figure is calculated.

Forecasts are estimates and can be wrong, and the calculations described here can contain mistakes. Use the figures as general information, not as expert or safety advice.

If you are new to forecasts and want to know what the figures mean rather than how they are produced, start with How to read a surf forecast.

Our source

All forecast data comes from Open-Meteo, an open weather data service. According to Open-Meteo, its data draws on national weather models, including the German Weather Service ICON model, the United States NOAA GFS, GEFS and WaveWatch III models, Météo-France and the ECMWF. Setform uses their Marine API for waves, sea level and sea temperature, and their Forecast API for wind.

Their data is published under the Creative Commons Attribution 4.0 licence, which is credited in the footer of every page on this site.

The map itself is drawn from two open coastline datasets. The world view uses Natural Earth, which is in the public domain. Zoomed in, the map uses coastline data from OpenStreetMap, © OpenStreetMap contributors, licensed under the Open Database Licence. Both datasets are stored on Setform's own servers, so viewing the map sends no request to a mapping company.

Where the forecast is measured

Weather models do not describe single points. They divide the sea into a grid and produce one set of figures for each cell. For most spots, Setform asks Open-Meteo about the surf spot's own position, and Open-Meteo answers from the nearest cell it holds. Where that nearest cell is almost entirely land, Setform asks about a nearby point at sea instead. The cell is usually a few kilometres from the spot, and at some spots it is further: for Thurso in Scotland it is about 21 kilometres out.

The map shows this. Zoom towards a spot and a second, quieter mark appears beside the pin, joined to it by a dashed line and labelled with the distance. The pin is the surf spot. The second mark is the patch of sea the forecast describes.

Where spots sit close together, they can fall inside the same cell and receive the same wave figures. For example, Pipeline and Sunset Beach share a cell, as do Uluwatu and Padang Padang, and Snapper Rocks, Kirra and Burleigh Heads. On the map, those spots are joined to a single mark. The wind reading still differs between them, because each spot has its own shore facing bearing.

Wind comes from a separate grid in a separate Open-Meteo service, and its cells rarely line up with the wave cells. The map shows the wave cell only.

What Setform does not do

Setform holds no buoys and no cameras, and runs no forecast model of its own. It draws on a single provider, with no second source to compare against, so an error in the source data appears unchanged on the site.

Setform does not rate conditions. There is no score that calls a day good or poor. Whether a day suits you usually depends on the spot, the tide and your own ability, so the figures are shown without a verdict.

Choosing which waves to feature

Open water often carries more than one set of waves at the same time. Open-Meteo supplies two sets for every hour, each with its own height, period and direction, along with a combined figure for the sea as a whole.

One set is featured on the wave and in the Conditions card. To choose it, Setform takes each set's height, multiplies it by itself, then multiplies the result by that set's period. The set with the larger result is the one shown.

Multiplying the height by itself makes this a rough measure of wave energy rather than of size alone, so a smaller set with a long period can outrank a taller set with a very short one. It is a simplified calculation, and the set it features is not always the one that matters most at a particular spot.

The details list Combined, Swell and Wind swell, and tag the two sets (Pri) and (Sec), so all three figures stay visible.

Swell and Wind swell are Open-Meteo's names for the two sets. The height featured on the wave is the stronger set on its own, not the combined figure for the whole sea, which is usually the larger number.

Working out the wind against the shore

Open-Meteo supplies the wind speed, the gust speed and the direction the wind blows from, for every hour. Speed and gusts are shown as they arrive, with no adjustment.

Offshore, Cross-shore and Onshore are calculated here. Weather data carries no knowledge of which way a beach faces, so Setform holds a facing bearing for each spot and measures the angle between that bearing and the direction the wind is coming from. In this calculation, a wind arriving from behind the shore is offshore, one arriving from the sea is onshore, and one running along the shore is cross-shore.

The reading is only as accurate as the facing bearing. On an angled coastline, an error of thirty to forty five degrees can be enough to change the result. Each bearing is set by checking a top down satellite view of the spot, and a bearing can still be wrong. Local features such as cliffs, headlands and nearby hills can also change how the wind behaves at the water, which this calculation does not account for.

Reading the tide

Open-Meteo supplies the sea level for every hour, as the height of the water above or below its normal level. The current hour's figure is shown as the tide now.

The trend compares this hour with the next. Higher next hour means the water is rising, and lower means it is falling. To find the next high or low, Setform reads forward through the coming hours until the water stops climbing and starts to drop, which is a high, or stops dropping and starts to climb, which is a low.

Because the readings are hourly, the time given for a turn is approximate, to within about an hour. The sea level figures are also model estimates and can differ from the real tide at the coast. For accurate tide times and heights, use an official tide table for the area.

Sea temperature

Open-Meteo supplies the temperature of the sea surface for every hour, in degrees Celsius. Setform shows it beside the spot's name, rounded to a whole degree, and converts it to Fahrenheit when heights are shown in feet. It follows the timeline, so choosing a later hour shows the figure for that hour.

Like the wave figures, it describes the forecast cell rather than the water at the beach. Close to shore the water can differ by several degrees, and it is often colder on coasts where cold water rises from the deep, so treat it as a rough guide rather than a measurement.

Hourly readings and the moving wave

The forecast arrives as one reading per hour, while the wave on screen moves continuously.

Heights and directions are interpolated between the surrounding hours, so the wave and the compasses change smoothly as time passes rather than stepping on the hour. Periods, and the choice of which set to feature, are taken from the forecast hour itself without interpolation, so the period in the Conditions card, the period in the table and the coloured hour in the timeline show the same number.

How often the data updates

While a forecast page is showing the current time, it fetches fresh data about every ten minutes and moves the displayed time forward every minute, so a page left open through the day stays current. Refreshing pauses when you move away from a forecast and resumes when you return to one. The data can still be out of date if Open-Meteo has not updated its own forecast, or if the connection fails.

What the data cannot do

A weather model describes open water on a grid. It does not describe the particular piece of coast you are standing on, and it carries no knowledge of the seabed, which largely shapes how a wave breaks. Forecasts are generally more reliable a day or two ahead than further out, and they can be wrong at any range.

Nothing on Setform is a measurement of the sea as it is at this moment. Every figure is a model estimate, including the one shown for the current hour.

Surfing is dangerous and conditions change quickly. Never rely on this or any forecast on its own. Always judge the conditions in person, respect local warnings and lifeguards, know your own limits, and do not go out alone if you are unsure.

How the spot overviews are written

Each surf spot page carries a short overview: where the spot is, what the wave is like, when it is busiest and what it is known for. These paragraphs are written with the help of AI and reviewed by a person before they appear.

Facts in each paragraph are checked, where possible, against public sources such as encyclopaedia entries, tourism and national park sites, and surf guides. Claims that cannot be confirmed are removed or softened. Where a claim depends on judgement, such as how powerful a wave is or who it suits, the text is worded as a general view rather than as fact. Seasons are given as approximate months, because they vary from year to year.

The overviews give a general description of a place, not the conditions on a given day. Nothing in them is a forecast or safety advice, they are not written by people who surf these spots, and they can contain mistakes.

The Nazaré record ride

One page on Setform shows a past event rather than a forecast: the Nazaré 2020 Record Ride. Its figures come from two different kinds of source.

The height labelled Ridden wave, which is also the height the wave on that page is drawn at, is the height widely reported for the wave the surfer rode. It is not a swell reading, and Setform did not measure it. The same applies to the height given for the second ride listed on that page. The storm named as the origin of the swell is the one news coverage widely linked to it.

The Combined figure describes the sea in open water that day. It comes from Open-Meteo’s historical ocean data, which is built from a much coarser grid than the forecasts on the rest of the site, and it is shown as a range across the daylight hours. That data has no separate Swell and Wind swell figures for the day, so those rows show a dash.

Corrections

If you know a spot well and a figure, a shore facing bearing or an overview looks wrong, corrections are welcome at the address below.

Corrections and questions: [email protected].