Skip to content
Mogador Kite Report

How we calculate the kiteable verdict

An hour is kiteable when all five checks pass: the modelled mean wind at 10 m is between 12 and 30 knots; gusts are at most 45 knots; the gust factor (gusts ÷ mean) is 2.1 or less; the wind direction is outside the spot's offshore sector; and the hour falls between sunrise and sunset. The checks use the values exactly as displayed (rounded to whole knots and degrees), so the numbers and the verdict always agree. Nothing else is weighed in, and nothing is hidden.

Mean wind
12–30 knBelow: "too light". Above: "too strong".
Gusts
≤ 45 knOur own conservative ceiling, whatever the mean. Above: "gusts over 45 kn".
Gust factor
≤ 2.1Only tested when the mean is at least 12 kn. Above: "too gusty".
Direction
not within ±60° of straight offshoreOtherwise: "offshore". Sector per spot below.
Daylight
sunrise ≤ hour ≤ sunsetOtherwise: "dark".

Where does the data come from?

Your browser requests the Open-Meteo Forecast API and Marine API directly on every visit. There is no server in between, no API key and no cache: if Open-Meteo does not answer, the page shows an error instead of old numbers. Open pages refresh every 10 minutes, and when you come back to the tab after 10 minutes or more.

The forecast uses Open-Meteo's default "best match" selection, which combines global weather models (DWD ICON, NOAA GFS and ECMWF IFS) for the requested point. The "now" values come from the API's current-conditions block; the chart and the verdicts use the hourly forecast.

Each request is made for the three spots at once. The exact URLs are listed at the bottom of this page.

What does each number mean?

  • Wind: speed at 10 m above ground, in knots, at the given time.
  • Gusts: the highest gust at 10 m during the preceding hour, in knots.
  • Direction: where the wind comes FROM, in degrees (0° = north). On the dials and charts the arrow points the way the wind blows.
  • Waves: significant wave height (m) and mean period (s) at the nearest offshore cell of the marine model, not the height at the beach.
  • Sea: sea surface temperature at that offshore cell.
  • Sea level: modelled height relative to global mean sea level (not chart datum or lowest astronomical tide). Open-Meteo computes tides at about 8 km resolution and states that coastal accuracy is limited and that it is not suitable for navigation. We show it as a rough guide to high and low water: modelled, not for navigation.

Why a gust factor of 2.1 and not the usual 1.5?

Riders often call a day gusty when gusts are more than about 1.5 times the mean wind. We tested that rule against the same model the site uses, and it almost never passes here: about 0.1% of windy hours (0.07% at Essaouira and Moulay Bouzerktoun, 0.15% at Sidi Kaouki).

Using the Open-Meteo Historical Forecast API for October 2025 to September 2026, we took every hour between 08:00 and 19:00 (on the UTC+1 clock Open-Meteo applied for that period) with a mean of at least 12 knots. The median gust factor was 1.89 at Essaouira, 1.87 at Sidi Kaouki and 2.00 at Moulay Bouzerktoun. Part of the reason is that the gust value is the maximum over the preceding hour while the mean is an instant value.

So we flag hours whose gust factor is above 2.1. That is above the typical ratio for this model at Essaouira and Sidi Kaouki (about 2% and 4% of those windy hours), but more frequent at Moulay Bouzerktoun (about 22%), where the model is gustier overall. We keep one threshold for all three spots so the rule stays simple. Treat the gust number as a relative signal, not a measured gust.

Why a 45-knot gust ceiling?

The gust factor alone would let a 30-knot mean with 63-knot gusts pass. So we add our own conservative ceiling: modelled gusts of at most 45 knots, whatever the mean. It is this site's choice, not an industry standard.

Because this model's gusts run at about 1.9 times the mean, the ceiling only bites in strong wind: above a mean of roughly 24 knots at Essaouira and Sidi Kaouki, and roughly 22–23 knots at Moulay Bouzerktoun, where the model is gustier. Ordinary summer days of 19–22 knots are not affected. In the same October 2025 to September 2026 check it excluded 0.4% of windy daytime hours at Essaouira, 0.5% at Sidi Kaouki and 1.1% at Moulay Bouzerktoun. Experienced riders may well ride those hours; the verdict simply does not call them kiteable.

How is "offshore" defined for each spot?

Offshore wind blows from the land out to sea and can carry a rider away from the beach. For each spot we measured which way the beach faces from OpenStreetMap coastline data, averaging the shoreline bearing over a few kilometres of beach around the spot. A straight offshore wind blows from the opposite direction.

We count any wind within ±60° of straight offshore as offshore or side-offshore. Pure side-shore and onshore winds pass this check.

Essaouira bay: 50°–170°NESWSeaLand
Essaouira bay
Beach faces: WNW 290°
Straight offshore from: 110°
Offshore sector: 50°–170°
Sidi Kaouki: 15°–135°NESWSeaLand
Sidi Kaouki
Beach faces: WSW 255°
Straight offshore from: 75°
Offshore sector: 15°–135°
Moulay Bouzerktoun: 30°–150°NESWSeaLand
Moulay Bouzerktoun
Beach faces: W 270°
Straight offshore from: 90°
Offshore sector: 30°–150°

How is the best session window chosen?

We take the hourly verdicts between sunrise and sunset (Open-Meteo daily sunrise and sunset) and keep the longest unbroken run of kiteable hours. If two runs are equally long, the earlier one wins. "Rest of today" only looks at hours from the current hour onward.

A window shown as 13:00–17:00 means the hourly forecasts at 13:00, 14:00, 15:00, 16:00 and 17:00 all pass: 5 kiteable hours.

Which time zone is used?

All times are Morocco's legal time. Since 02:00 on 20 September 2026, Morocco is on GMT (UTC+0): decree 2.26.530, published in the Bulletin officiel on 29 June 2026, repealed the permanent UTC+1 in force since 2018. Some time-zone databases have not caught up and still apply UTC+1 (Open-Meteo's "Africa/Casablanca" setting did when we checked on 20 October 2026), so we request data in GMT and format every time ourselves in UTC+0 from that date. The times are therefore the same whatever time zone your phone is set to.

What are the limits of the model?

  • It is a forecast at a model grid point a few kilometres from the beach, not a measurement. The report lists the grid points the API used.
  • Global models smooth local effects such as thermal acceleration along the coast, so the wind on the beach can be stronger or weaker.
  • The verdict ignores waves, currents, rain, crowding, equipment and your level.
  • The tide curve is modelled and not for navigation.

Where do the monthly statistics on the spot pages come from?

From ERA5 reanalysis (Copernicus/ECMWF) via the Open-Meteo Historical Weather API, 2015–2024. For each day we average the wind at 10 m from 11:00 to 18:00 Moroccan clock time of the period (≈ 10:00–17:00 on today's UTC+0 clock); the tables give the monthly mean of that daytime wind, the share of days with a daytime mean of 12 knots or more, and the most common direction of daytime hours with at least 8 knots. Waves and sea temperature are 2022–2024 monthly means from the Open-Meteo Marine API. ERA5 is a grid of about 25–30 km that smooths local effects, so beach winds are often stronger; Essaouira and Moulay Bouzerktoun fall in the same ERA5 cell and get identical numbers.

Safety rules and emergency numbers

Exact API requests

https://api.open-meteo.com/v1/forecast?latitude=31.5%2C31.355%2C31.645&longitude=-9.77%2C-9.8%2C-9.68&hourly=wind_speed_10m%2Cwind_direction_10m%2Cwind_gusts_10m%2Ctemperature_2m&current=wind_speed_10m%2Cwind_direction_10m%2Cwind_gusts_10m%2Ctemperature_2m&daily=sunrise%2Csunset&wind_speed_unit=kn&timezone=GMT&timeformat=unixtime&forecast_days=3
https://marine-api.open-meteo.com/v1/marine?latitude=31.5%2C31.355%2C31.645&longitude=-9.8%2C-9.82%2C-9.7&hourly=wave_height%2Cwave_period%2Cwave_direction%2Csea_surface_temperature%2Csea_level_height_msl&current=wave_height%2Cwave_period%2Cwave_direction%2Csea_surface_temperature%2Csea_level_height_msl&timezone=GMT&timeformat=unixtime&forecast_days=3

Weather data by Open-Meteo.com, licensed under CC BY 4.0.

Sources