How a verdict is built
The core physical components of a score are grounded in documented scientific methods and sources, folded into one number. Understanding the score, the bands, the gates and the confidence block is most of what you need to use the API well.
The score
Each call returns a single score from 0 to 100: the modelled suitability of a specific activity, at a specific place, over a specific window. It is a deterministic fold of per-dimension curves (wind, wave, thermal, visibility, and so on) gated by hard safety limits. Given the same inputs and provider chain, the score reproduces, and the audit log can replay it.
Verdict bands
The verdict buckets the score into human-readable bands, defined by the activity profile's verdict_buckets (the profiles in the catalog currently share this same set), so a booking flow can branch without interpreting the number. not_feasible and unsafe are both a score of 0 and both a no-go, but they mean different things: not_feasible means the activity is impossible right now (no rideable wind, flat sea, no snowpack); unsafe is reserved for a real safety threshold (lightning, hazardous air quality, a profile's own safety gate).
Hard gates
Some conditions are unsafe no matter how good everything else is. Two universal hard gates apply across all activities and override the rest of the score. Individual profiles add their own gates too, and each one is tagged safety or feasibility — a safety gate means danger; a feasibility gate means impossible (e.g. wind below the ridable minimum), and the verdict reflects that difference.
Lightning proximity ≥ 0.85 forces verdict unsafe. Air quality category hazardous forces verdict unsafe. A profile's own safety gate also forces unsafe; a profile's own feasibility gate (e.g. a minimum-wind prerequisite) forces not_feasible instead — same no-go, but not a danger claim. A gated dimension can floor the score regardless of the others.
The breakdown
The breakdown array lists each scored dimension as an object, { name, value, suitability, weight, contribution }, so you can show why a verdict came out the way it did: "wind suitability 0.9, wave suitability 0.4" tells a kiter the swell, not the wind, is the limiter. The score endpoint reference lists every field; the dimensions present depend on the activity's profile.
Confidence
Alongside the scalar confidence (0–1), responses carry a confidenceDetail block, a discriminated union by mode: forecast, historical or climate. It folds forecast horizon, ensemble spread, profile maturity and how locally the spot resolved in the catalog hierarchy. A sub-spot with many calibrated outcomes would score higher confidence than a brand-new location falling back to its base profile. Confidence describes how certain the model is about its own inputs, not a guarantee that the verdict is correct.
The eco block
Each response includes an eco object surfacing the physical validation context behind the score: energy class, Beaufort force, wave power, lightning and air-quality advisories, coastal hazards, breaker classification, bathymetry and swell origin. It feeds forecast verification and the open research dataset — not the Sustainability Index, which is built separately from real operator-reported outcome sessions, never from score-request data.
Families & profiles
The engine covers four activity families, water, snow, air and land, across the base profiles in the catalog. A profile is not one global curve: it resolves through a five-level spatial hierarchy (base, region, cluster, sub-spot, micro) with hierarchical Bayesian shrinkage, so a sparse new spot borrows strength from its parent until it accumulates enough local outcomes to calibrate on its own. Outcome-driven calibration depends on operator outcome data, which is at design-partner stage today; see calibration. Profiles are open data (CC BY 4.0); browse them in the catalogue or read the physics in the science reference.