Methodology

How Swell scores
beach conditions

Every beach gets a T-Score — a single 0–100 number that tells you exactly what kind of day you're walking into. Here's how it's calculated.

The T-Score

The T-Score is Swell's core rating — a 0–100 index of how good beach conditions are right now. It's calculated from six real-time factors using a multiplicative penalty model: each bad condition pulls the score down proportionally, so a truly poor factor (like a tropical storm) can tank the score even if everything else is perfect.

T-Score Formula
T-Score = 100 × CTemp × CWind × CPrecip × CUV × CWave × CLight

Each coefficient (C) is a value between 0 and 1. A score of 1.0 means that factor is ideal. Any penalty below 1.0 reduces the overall T-Score.

The six scoring factors

Each factor pulls data from real-time weather and marine APIs and applies a penalty curve based on how far conditions deviate from ideal.

🌡️
Air Temperature C_Temp

Combines air and water temperature to assess overall thermal comfort. Too cold or too hot both reduce the score.

Ideal: 75–90°F air, 70–82°F water

💨
Wind Speed C_Wind

Light onshore breezes are pleasant; strong or gusty winds degrade almost every beach activity. The penalty accelerates sharply above 20 mph.

Ideal: under 12 mph

🌧️
Precipitation C_Precip

Any rain reduces the score. Even light drizzle applies a moderate penalty; heavy rain brings the score close to zero.

Ideal: 0 mm/hr

☀️
UV Index C_UV

Very high UV (10+) is treated as a mild penalty — it's a real concern but doesn't ruin a beach day. Used mainly to flag extreme exposure risk.

Ideal: 3–7 (moderate)

🌊
Wave Height C_Wave

Wave scoring is activity-dependent. For swimming, large waves are a penalty. For surfing, moderate swell is a bonus. The base T-Score uses a general comfort curve.

Ideal: 1–3 ft for general use

🌅
Daylight C_Light

Scores are penalized during nighttime hours since most beach activities require daylight. The penalty ramps up after sunset using the beach's local timezone.

Ideal: civil daylight hours

What does a T-Score mean?

Here's how to interpret the number:

80–100 Perfect Ideal conditions across the board. Worth the drive.
60–79 Good One or two minor factors are off but it's a solid beach day.
40–59 Okay Conditions are mixed. Check the specifics before heading out.
0–39 Poor At least one factor is significantly bad. Maybe stay home.

Activity scoring

On top of the T-Score, every beach is scored separately for 16 activities using their own ideal-condition curves. A score that's mediocre for swimming might be perfect for surfing. Activity scores are shown as 0–5 shells in the app.

Surfing
Swimming
Snorkeling
Paddleboarding
Kayaking
Kitesurfing
Windsurfing
Fishing
Scuba Diving
Beach Volleyball
Sunbathing
Running
Dog Walking
Photography
Birdwatching
Relaxing

Data sources

Swell pulls from best-in-class free and public APIs — no degraded data from metered or throttled sources.

Open-Meteo

Primary weather and marine data source. Provides air temperature, wind speed and direction, precipitation, UV index, cloud cover, and wave height at ~28km grid resolution worldwide. Free and unlimited.

NOAA CO-OPS

US National Oceanic and Atmospheric Administration tide predictions. Provides hourly tide curves, hi/lo times, and tide phase for every US coastal beach. Deterministic predictions accurate to the minute.

Cloudflare Workers & KV

Swell's scoring infrastructure runs on Cloudflare's global edge network. Conditions are computed every 15 minutes per state and cached in KV for sub-50ms response times worldwide.

Update frequency

Scores are recomputed every 15 minutes, staggered by state to ensure freshness without overloading APIs. Weather and marine data from Open-Meteo refreshes on a similar cadence. Tide predictions from NOAA are deterministic (not real-time) and cached for 3 hours. Historical climatology data is updated monthly using Open-Meteo's 5-year archive.

See it live

Check real-time T-Scores and conditions for beaches near you — or anywhere in the US.

Open the app →