onlybeaches

The methodology behind every OBI score

How the OnlyBeaches Index works

The OBI is a 1-10 score that ranks every beach we track on four pillars: Purity, Conditions, Crowd, and Vibe. The number is recomputed every 15 minutes from live marine + weather data, then re-weighted for who you are — a surfer, family, partygoer, diver, or default traveller.

Everything below is open and audit-friendly. No black box.

The four pillars

Purity (35% default)

Water clarity, air quality and water temperature. Wind speed proxies water clarity (calmer = clearer). Blue Flag certified beaches get a +0.8 boost capped at 10 because the certification audits 33 strict water-quality and environmental criteria annually. Default weight is 35%; family persona raises it to 45%, surfer drops it to 15%.

Conditions (35% default)

Wave height, wave period, wind speed, water temperature and UV index. Persona-aware: a 2m clean swell at 12s scores 9.5 for a surfer and 4 for a family. Data refreshed every 15 minutes from Stormglass (marine) and OpenWeatherMap (air). Sun availability is layered on top via the Shadow Engine — see below.

Crowd (20% default)

An inverted score — emptier beaches rate higher. We model crowd using the hour of day, weekend vs weekday, and current weather (warm + dry pulls people, cold + windy keeps them home). Where available, BestTime live foot-traffic data overrides the heuristic. Community reels uploaded in the last 7 days fine-tune the prediction by ±0.3.

Vibe (10% default)

Concerts, festivals, sports events and public-attendance signals within 20 km of the beach in the next 7 days. Powered by Ticketmaster + Eventbrite + PredictHQ. Rank-weighted: a 50,000-attendee festival counts ~25× more than a small meetup. Party persona boosts this weight to 50%, family persona drops it to 5%.

Persona weights

Pick a persona on any beach page and the four pillars are re-blended with these weights. The composite OBI changes — sometimes by 2+ points — based on what you actually care about.

PersonaWeights (Purity · Conditions · Crowd · Vibe)
DefaultP 35 · C 35 · Cr 20 · V 10
SurferP 15 · C 55 · Cr 15 · V 15
FamilyP 45 · C 25 · Cr 25 · V 5
PartyP 10 · C 20 · Cr 20 · V 50
DiverP 50 · C 35 · Cr 10 · V 5

Bonus signals

Blue Flag boost (+0.8 Purity)

When a beach is internationally certified by the Foundation for Environmental Education, Purity gets a bounded boost capped at 10. Browse certified beaches →

Shadow Engine

We compute hour-by-hour sun availability per beach using NOAA solar position math plus OpenTopoData ASTER30m DEM lookups — so we know which beach is in cliff shade at 3pm vs which gets full sun until dusk.

Community verification

Reels uploaded by verified creators in the last 7 days nudge the OBI by ±0.3 based on observed conditions. Agreement ratios become trust signals over time.

Data sources

Tier mapping

S

Exceptional

OBI 9.5–10

A

Excellent

OBI 8.5–9.4

B

Very Good

OBI 7.5–8.4

C

Good

OBI 6.0–7.4

Open methodology, audit-friendly.

We publish the formula because we want it to be cited correctly. If you find a flaw, write to hello@onlybeaches.com. Bulk machine-readable beach data: /llms-full.txt.