UTC --:--:--
The activity weather observatory

When conditions are right, we tell you.

Decision-ready weather for outdoor bookings and operations.

One REST call returns a single 0–100 suitability score — with verdict, confidence, and full provenance — for any activity, at any place, at any time. Physics-first, deterministic, audit-logged. Built on 25+ peer-reviewed formulas across 20 physics namespaces.

KITESURFING · TARIFA
activity
spot
76
SCORE · 0—100
favorable
conf 0.75
at Tarifa, Strait of Gibraltar
Wind/visibility vs METAR LE81 (3 km) · validatedWave height vs CMEMS (16 km) · validatedTide vs gauge ioc-brest (22 km) · validatedSea temp vs satellite (CMEMS) · correctedBuoy 6200024 (7 km) · validated
physical readings
wind28knots
wave2.4meters
period6.8seconds
tidefalling
full breakdown · raw response
wind77
wave76
tide85
thermal breeze78
sun78
gust factor77
POST /v1/score · response● 200 OK
{
"score": 76,
"verdict": "favorable",
"confidence": 0.75,
"breakdown": {
"wind": {
"contribution": 0.323,
"score": 77,
"hasData": true
},
"wave": {
"contribution": 0.137,
"score": 76,
"hasData": true
},
"tide": {
"contribution": 0.085,
"score": 85,
"hasData": true
},
"thermal_breeze": {
"contribution": 0.094,
"score": 78,
"hasData": true
},
"sun": {
"contribution": 0.062,
"score": 78,
"hasData": true
},
"gust_factor": {
"contribution": 0.077,
"score": 77,
"hasData": true
}
},
"physics": {
"wind": {
"value": 28,
"unit": "knots"
},
"wave": {
"value": 2.4,
"unit": "meters"
},
"period": {
"value": 6.8,
"unit": "seconds"
},
"tide": {
"phase": "falling"
}
},
"alerts": [],
"provider_chain": [
"stormglass",
"openmeteo-marine"
],
"eco": {
"metarValidation": {
"sourceType": "in_situ_observation",
"stationId": "LE81",
"sourceDistanceKm": 3.2,
"observedAt": "2026-05-23T08:42:13.952Z",
"wind": {
"validated": true,
"observedMs": 8.8,
"forecastMs": 11.1,
"overridden": false
}
},
"cmemsWaveValidation": {
"sourceType": "satellite_observation",
"validated": true,
"observedHeightM": 1.87,
"forecastHeightM": 0.73,
"overridden": false,
"sourceDistanceKm": 15.9
},
"sstValidation": {
"sourceType": "satellite_observation",
"validated": true,
"observedC": 14.7,
"forecastC": 20.3,
"overridden": true,
"sourceDistanceKm": 17
},
"tideValidation": {
"sourceType": "in_situ_observation",
"validated": true,
"harmonicHeightM": 0.31,
"observedLevelM": 0.33,
"deltaM": 0.04,
"overridden": false,
"stationId": "ioc-brest",
"sourceDistanceKm": 21.7
},
"buoyValidation": {
"sourceType": "in_situ_observation",
"stationId": "6200024",
"sourceDistanceKm": 6.5,
"observedAt": "2026-05-23T08:00:00.000Z",
"wave": {
"validated": true,
"observedM": 1.05,
"forecastM": 1.26,
"overridden": false
},
"sst": {
"validated": true,
"observedC": 19.5,
"forecastC": 24.6,
"overridden": false
},
"wind": {
"validated": true,
"observedMs": 12,
"forecastMs": 10.7,
"overridden": false
},
"observedWavePeriodS": 11.4,
"observedWaveDirectionDeg": 255
}
},
"computed_at": "2026-05-23T09:00:00.000Z"
}
14-day window · spot-resolved · score favorable· unsafe
TODAY
+1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
How that score got built
Multiple forecast models
Blended by measured skill
Checked against real observations
Physics engine
0–100 score
01problem

A vacuum between raw data and vertical apps.

Every business that operates outdoors lives or dies by the sky. The market answered with two extremes — neither of which is embeddable in a booking flow.

A · raw data

Numbers, no verdict.

Stormglass, Tomorrow.io, Open-Meteo, Spire. They give you wind speed, wave height, tide phase, UV. You still have to interpret them — every operator, every day, with personal heuristics learned over years.

wind 18 kn · wave 1.2 m · tide rising · uv 7
B · vertical consumer apps

One sport, B2C only.

Surfline, Windguru, Snow-Forecast produce a rating for one sport but you cannot embed them in a booking flow, cannot resell them, cannot calibrate them for your spot, cannot integrate them with business logic.

MagicSeaweed · shut down 2023 · 3M users orphaned
C · goable

Multi-activity scoring as an API.

The structurally undefended middle layer: physics-first, multi-source (blended forecasts checked against real METAR, CMEMS and lightning-strike observations), multi-vertical, peer-reviewed, embeddable, calibratable, audit-logged. Booking-SaaS pricing — not Fortune 500 ACVs.

POST /v1/score → { score: 78, verdict: "favorable" }
02the api

One call in, one verdict out.

No forecast to read, no thresholds to remember. Send an activity, a coordinate and a time; get back a score, a verdict, a confidence band, the drivers behind it, and the provenance of every number that fed it.

The response is not a data dump. It is a decision: the score and verdict answer the question; the drivers say why; the source_type on each reading says how much to trust it. A wind value from a forecast model reads differently than a wave height from a buoy standing in the water. How every number is labelled.

score + verdict0–100 with a named bucket — unsafe → excellent
confidenceforecast / historical / climate mode, with a value
driverswhich dimensions moved the score, and by how much
data + source_typeevery reading tagged forecast_model vs observation
# One activity, one place, one window
curl https://api.goable.io/v1/score \
-H "X-Goable-Key: sk_live_..." \
-d '{'
"activity": "kitesurfing",
"location": { "lat": 36.013, "lng": -5.604 },
"time": "2026-05-23T11:00Z"
'
03who ships on it

Four questions, one engine.

Before you look for your sport, find your question. Every outdoor business asks one of these — and each maps to a shape the engine already returns.

Booking SaaS
Open, close, or suggest a slot?

Score + verdict + confidence per slot, so the flow can auto-hold, refund, or nudge to a better window.

/v1/score
Marketplace
Which spot do we recommend?

Top-K ranked sub-spots for a region + activity — the unsafe ones dropped before ranking.

/v1/recommend-spot
Operator
Safe to run the group?

A hard safety gate with named reason codes — lightning, gale, hazardous AQI — that no other dimension can override.

/v1/score
Travel app
When is it best?

The favourable window across a multi-day horizon, with a plain-language briefing of what makes it good.

/v1/score
04live atmosphere

Every spot, every family, one map.

Score any coordinate worldwide; discover ranked spots only where catalog coverage exists. Each marker below is a live score for the selected activity at that spot, refreshed from the engine on every render. Tarifa, Maui, Pollença, Cortina, Annecy — the same call, the same verdict, anywhere.

BULLETIN MAP · KITESURFING · LIVE-156° lng29° lng44° lat
Tarifa76/100 · ES
Hossegor73/100 · FR
Hoʻokipa, Maui82/100 · US
Pollença, Mallorca57/100 · ES
Ölüdeniz62/100 · TR
excellentfavorablefairmarginalpoorunsafe
05spot discovery

Ask where, not just is.

One engine, two question shapes. /v1/score validates a spot you already chose — any coordinate worldwide. /v1/recommend-spot is the inverse — hand the engine a region + an activity, get back the top-K ranked sub-spots, only where catalog coverage exists. The endpoint behind 'best kitesurf near me this weekend' inside consumer apps and booking platforms.

Predicate · /v1/score

Is this spot good?

lookup
Single spot mapTarifa Balneario
Your input
activity: "kitesurfing"
location: {lat: 36.013, lng: -5.604}
Response
score87 · favorable

The user already chose Tarifa Balneario. The engine answers yes/no with a 0-100 verdict — booking-flow validation, rental-operator opening/closing decisions.

Inverse · /v1/recommend-spot

Where should I go?

ranked top-K
Top-K ranked spots map12345
Your input
activity: "kitesurfing"
regionCenter: {lat: 36.01, lng: -5.6}
radiusKm: 50
topK: 5
Response · top 3 of 5
#1 Balneario87
#2 Valdevaqueros84
#3 Punta Paloma79

The user is asking where. The engine enumerates every catalog sub-spot in radius, scores each, drops the unsafe ones, ranks the survivors — discovery apps, travel-platform itineraries, tour-operator planning.

The weather is not the problem. The interpretation is the problem. We sell the interpretation.
Goable · founding principle
28 activities · 4 families · 25+ peer-reviewed formulasOpen catalog · CC BY 4.0
coverage matrix

One engine, four families: water, snow, air, land.

14 activities
Water
Wind-driven, wave-driven, current-driven. The catalog where calibration matters most.
  • Kitesurfingwind + wave + tide
  • Surfingswell period + wind
  • Windsurfingwind + gust factor
  • Sailingwind + visibility
  • Scuba divingvisibility + current
  • SUP / paddlewind ≤ 8 kn
  • Foilingwind 10–22 kn
  • Open-water swimswell + temp
  • Snorkelingvisibility + current
  • Kayakingwind + swell
  • Jet-skiwave + visibility
  • Wakeboardingwind + wave chop
  • Boat excursionwind + swell + visibility
  • Bodyboardingswell + breaker type
calibratedERA5 back-tested
4 activities
Snow
Cryosphere physics: SWE, fresh-snow density, avalanche gates, alpine wind regimes.
  • Alpine skiinggroomed + visibility
  • Ski-touringfresh + stability
  • Freeridefresh + wind_top
  • Snowboardinggroomed + visibility
calibratedSLF Davos consulted
3 activities
Air
Thermal lift, gust factor, lightning proximity. The unforgiving family.
  • Paraglidingthermal + CAPE
  • Hang-glidinglift + gust
  • Hot-air ballooningsurface wind + visibility
reviewedCIVL pilots advisory
7 activities
Land outdoor
Heat stress, AQI, precipitation form, rockfall risk. The longest-tail family.
  • Trail-runningwbgt + aqi
  • Climbingrockfall + humidity
  • Mountain-biketrail dryness
  • Trekkingceiling + wbgt
  • Boulderingrockfall + humidity
  • Canyoningflow rate + precipitation
  • Road cyclingwind + precipitation
reviewedUIAA + IFMGA in review
06scientific foundation

Every coefficient traces to a published source.

The engine synthesises peer-reviewed physics across marine, atmospheric, cryospheric, alpine and hazard domains — grouped here by the science it draws on, not by our internal build order.

Foundational

3
  • Wind classification
    Beaufort 1805 · WMO 1923
  • Solar position ±0.5°
    Meeus · Spencer 1971 · Iqbal 1983
  • Tide harmonics
    NOAA harmonic constants

Marine

10
  • Wave energy flux
    ECMWF · P = ρg²H²T / 64π
  • Satellite SST fusion
    CMEMS
  • Wave height validation
    Copernicus Marine Service (CMEMS) wave product
  • Tide-gauge validation
    IOC Sea Level Monitoring · EMODnet
  • Buoy observations (wave/SST/wind)
    CMEMS in-situ moored buoys
  • Swell ancestry
    Group-velocity back-propagation
  • Bathymetry context
    GEBCO + spot lookup
  • Marine fog
    Koračin et al. 2014
  • Surf similarity / breakers
    Battjes 1974 · Iribarren
  • Breaker height shoaling
    Munk 1949

Atmospheric

3
  • Sea breeze model
    Miller et al. 2003
  • Atmospheric stability
    Pasquill–Gifford + TKE gust factor
  • Surface wind + visibility validation
    WMO FM 15-XV METAR/SPECI code · NOAA Aviation Weather Center

Comfort

2
  • Thermal comfort
    UTCI · ISO 17772
  • Wet-bulb / WBGT
    Stull 2011 · ISO 7243

Hydrology

1
  • River discharge validation
    GloFAS / Copernicus EMS river discharge

Cryosphere

2
  • Snow-cover validation
    Copernicus HR-S&I satellite snow
  • Fresh-snow density
    Hedstrom & Pomeroy 1998 · Anderson

Cross-domain

2
  • Convective cloud base
    Bolton 1980 LCL
  • Precipitation form
    Bourgouin 2000

Hazards

5
  • Lightning proximity
    Brooks et al. 2003 CAPE + LI
  • Lightning strike validation
    NWS Lightning Safety — the 30-30 rule
  • Air-quality gate
    EPA AQI breakpoint tables
  • Rip-current model
    MacMahan et al. 2006
  • Rockfall freeze–thaw
    Matsuoka & Sakai 1999

Health

1
  • UV exposure dose
    Fitzpatrick 1988 + WHO Global UV

Engine

2
  • Probabilistic ensemble
    30+ NWP members → distribution
  • ML self-calibration
    Isotonic · GP · Bootstrap logistic

Research

1
  • Inverse Suitability (IRT)
    Continuous-item IRT · Marginal Maximum Likelihood · Gauss-Hermite quadrature
Drag · 11 domains
The full reference, coefficient by coefficient 25+ peer-reviewed formulas · 20 physics namespaces
specimen · @goable-io/physics

Six lines of math the catalog cannot work without.

The engine is not a black box. Every coefficient resolves to a peer-reviewed paper, every paper to a measurable physical quantity. Below: six formulas that show up in nearly every score.

P = ρg²H²T / 64π
Wave energy flux per unit crest
§ ECMWF · marine swell physics
F = (v / 0.836)^(2/3)
Beaufort force from wind speed
§ Beaufort 1805 · WMO 1923
z_LCL ≈ 125 (T − T_d)
Lifting condensation level · cloud base
§ Bolton 1980 · atmosphere-thermal physics
δ = 23.44° · sin(θ_n)
Solar declination, ±0.5° to 2050
§ Spencer 1971 · Iqbal 1983
T_w · atan(0.151 √RH+8.3)
Wet-bulb temperature → WBGT
§ Stull 2011 · ISO 7243
I_l = ƒ(CAPE, LI, gradient)
Lightning proximity · universal gate
§ Brooks et al. 2003 · hard gate
We do not invent
new physics.
We synthesise peer-reviewed
physics into a single
verdict, at spot resolution,
for every outdoor decision.
Goable · 25+ formulas · 20 physics namespacesopen catalog · CC BY 4.0
interlude · 1805 · the first scoring scale

Beaufort already did this — for one variable, one audience.

13 levels · internationally standardised 1926
still the canonical wind classifier
our engine extends the same logic across 25+ formulas
0
<1 kn
Calm
1
1–3 kn
Light air
2
4–6 kn
Light breeze
3
7–10 kn
Gentle breeze
4
11–16 kn
Moderate breeze
5
17–21 kn
Fresh breeze
6
22–27 kn
Strong breeze
7
28–33 kn
Near gale
8
34–40 kn
Gale
9
41–47 kn
Strong gale
10
48–55 kn
Storm
11
56–63 kn
Violent storm
12
≥64 kn
Hurricane
07three horizons

One engine, three product lines.

Phases 1–4 ship the real-time scoring API. Beyond real-time scoring, the same decision infrastructure carries future capabilities — same physics, different buyers, no rebuild.

T1 · HORIZON
Live

Real-time scoring

Now – 7 days

0–100 verdict, explainable, audit-logged. One API call per decision.

Booking SaaS · school OS · travel apps · ops tools
  • Phase 1: engine
  • Phase 2: intelligence layer
  • Phase 3: self-serve product (live)
  • Phase 4: Sealect reference integration (planned)
T2 · HORIZON
Research direction

Parametric underwriting

Exploratory

A research-stage weather-decision signal a licensed carrier could build parametric products on. Goable is not an insurer and does not quote, bind, price or settle risk.

For licensed carriers: MGAs · reinsurers · brokers
  • Phase 1: historical reanalysis (ERA5)
  • Phase 2: exceedance + return-period statistics
  • Phase 3: technical signal a carrier could operate
T3 · HORIZON
Research direction

Climate adaptation

Exploratory

Whether CMIP6 + CORDEX downscaled projections could screen multi-decadal viability for outdoor businesses is an open research question. Not yet built or shipped.

Could interest: tourism boards · REITs · adaptation research
  • Phase 1: climate model provider (CMIP6 + CORDEX)
  • Phase 2: viability-screening research sketch
  • Phase 3: not yet defined
08open catalog

Open data, proprietary engine.

The 28 base profiles — what counts as good wind for a kitesurf school in Tarifa vs. a windsurfer in Maui vs. a freerider above Cortina — are open data under CC BY 4.0. Anyone can audit the curve scoring their slot. Anyone can submit a regional variant via PR.

The license boundary is intentional. Engine is proprietary; activity definitions, citations, and review status for every parameter live in a public repo and ship as an npm package. The Zod schema is byte-identical across both repos — CI fails if they drift.

28 base profiles153 sub-spots across 22 countries
Community-reviewedschools · clubs · researchers
CC BY 4.0attribution + commercial OK
Zod + JSON Schemabyte-hashed across both repos

28 base profiles resolve through a five-level spatial hierarchy (base → region → cluster → sub-spot → micro) with hierarchical Bayesian calibration.

# Install the open catalog · CC BY 4.0
npm install @goable-io/profiles-catalog

// Pre-bundled JSON · all profiles parsed and merged
import catalog from "@goable-io/profiles-catalog/catalog.json"
import { ProfileSchema } from "@goable-io/profiles-catalog"

const profile = ProfileSchema.parse(yourYaml)
console.log(Object.keys(catalog.profiles).length)
// → 28 base profiles · 153 sub-spots across 22 countries
Supplement · The Sustainability Register

Research, ESG and the Sustainability Index

For regulators + research

A dataset the field doesn't have

Goable pairs multi-domain NWP forecasts with operator-reported outcomes at sport-specific resolution — the human-decision validation layer existing observation networks lack. Anonymised (k≥10, 1 km², 90-day lag), CC BY 4.0, mapped to CSRD, GRI and GSTC.

Read the research
For operators + the public good

The Goable Sustainability Index

A transparent, operational index of declared signals: non-combustion session share, electric-equipment share, seasonal concentration, protected-area proximity, with data coverage tracked separately. Not a certification. Public methodology, CC BY 4.0 releases; tenant-level exports for operators.

About the index
For science + funding bodies

Inverse Suitability — the research frontier

Where the engine starts measuring what physics doesn't capture. Continuous-item IRT adapted to weather: we separate intrinsic condition difficulty from rider skill, both identified from behavioural outcomes. A measurable latent construct nobody has measured — publishable methodology today.

Read the methodology
09plans

Booking-SaaS pricing.

Sealect — our planned first tenant — will be a Pro tenant, with the cost folded into a standard Pro subscription. The pricing reflects booking-SaaS economics, not Fortune 500 ACVs.

Free
0
Try the engine, ship a prototype.
  • 1,000 calls / month
  • Hard cap at quota
  • No SLA
  • Public catalog
  • AI explanations, briefings & decision narrative — bring your own Anthropic key
Get an API key
Starter
49/ month
Production traffic, single tenant.
  • 50,000 calls / month
  • €1.50 per 1,000 calls over quota
  • Spot Discovery — 1,500 / month · €7.50 per 1,000 over quota
  • Unlimited spots
  • All 28 base profiles
  • Standard SLA 99.5%
  • Audit log export
  • Email support
Get an API key
design partner
Pro
249/ month
Calibration, intelligence, edge.
  • 500,000 calls / month
  • €0.80 per 1,000 calls over quota
  • Spot Discovery — 5,000 / month · €4.00 per 1,000 over quota
  • Probabilistic ensemble scoring (30+ NWP members)
  • Skill-conditioned scoring (Inverse Suitability)
  • Difficulty atlas endpoint
  • Spot-level calibration
  • Stormglass priority chain
  • Premium multi-model consensus
  • Priority support
Get an API key
Scale
Custom
Underwriting + climate horizons.
  • Volume-contract quota
  • Spot Discovery — Unlimited · Contracted ceiling
  • Premium multi-model consensus
  • Parametric quoting + bind API
  • Historical / climate projection endpoints
  • Dedicated tenant + private profiles
  • On-prem provider keys
  • Solutions engineer
Talk to sales

Coverage note · Spot Discovery depends on sub-spot coverage in the open catalogue and is in active expansion. The /v1/score endpoint and every analytical surface (briefing, historical, projection, decision) work on any coordinate worldwide regardless. Verify coverage in your region on the Free plan before upgrading.

Pricing calculator

Project your monthly bill

Drag the sliders. We use the same estimateMonthlyBill function the billing engine uses — no marketing fudge.

Free
€0
per month
canone€0
score over (Hard cap)€0.00
recommend over (Hard cap)€0.00
Starter
€49
per month
canone€49
score over (€1.50/1k)€0.00
recommend over (€7.50/1k)€0.00
Best fit
Pro
€249
per month
canone€249
score over (€0.80/1k)€0.00
recommend over (€4.00/1k)€0.00
Scale
Custom
per month
canone
score over (Contracted)
recommend over (Contracted)
Best fit for this usage
Starter · 49.00/mo
Upgrade
  • Free hard-caps at 1,000 score calls/month — overage requests return 429.
  • Free plan hard-caps at 20 recommend calls/day — upgrade to Starter to unlock more.
get started

The engine is real. Free plan available now.

Sign up, mint a key, and hit /v1/score or /v1/recommend-spot in under a minute — 1,000 free calls/month, no credit card. Use them to verify coverage in your region before upgrading to Starter (€49/mo): /score works on any coordinate, while /recommend-spot depends on the open catalogue — see what we cover today.$ npm i @goable-io/sdk