28 ACTIVITIES · 25+ FORMULASUTC --:--:--ENGINE · LIVE
Explain
Two ways to explain every decision.
Give people a clear answer, or give systems the exact constraints behind the score.
Grounded in the score breakdownLLM output validated against source metricsDeterministic fallback on every request
The invariant
Explanation endpoints never change the underlying score, verdict or safety gates. They only render or analyse the existing decision record. The physics engine produces the decision; the LLM, when configured, is the optional renderer, not the product.
01
Live example
One score, rendered and analysed
The same decision record feeds a readable answer and a quantified constraint view. The request on the left produces a score; the natural-language surface renders it; the decision-logic surface shows what is holding it back.
rider_skill_level is a Pro+ input on /v1/score. Without it, the score uses the standard intermediate profile. The example names it so the explanation stays honest about what it knows.
Grounded natural-language explanation
A clear answer
Saturday afternoon at Tarifa Balneario looks favorable for the intermediate rider profile, scoring 87/100. The 22-knot cross-onshore wind suits the conditions in this window. Two factors hold it below the 90s: the chop is slightly above the flat-water ideal (1.5m at 10s adds work for freestyle), and the gust factor of 1.18 is steady but not glassy. No safety gates triggered: clear sightlines, no convective activity within 50km.
Suggested planning signal: Conditions suit intermediate kitesurfing. For flat-water freestyle, the calmer window around 14:00 UTC may be a better fit.
confidence_note: Wave confidence is moderate because no representative buoy is available. How to read source_type.
What would make this better?
Decision constraints, quantified
See what is limiting the score, how much it matters and what would improve the plan.
wave.height1.5 m to 0.8 m+9 points, opens a flat-water freestyle window
wind.gustFactor1.18 to 1.05+4 points, steadier wind eases freestyle riding
wind.speed22 kt to 24 kt+2 points, faster but still below the comfort ceiling
temp.airC22 °C to 24 °C+1 point, approaches the optimum thermal-comfort band
Sensitivities are local to this activity profile, place and forecast window; they are not universal thresholds.
02
Two surfaces
Natural language, or decision logic
Same question, two product shapes, one decision record. The natural-language surface produces copy a booking flow can show a customer. The decision-logic surface produces structured output a workflow can route on. Pick the one your consumer needs; the other is ready when you need it.
Claude-backed, optional renderer, validated against source metrics
Natural language
A grounded, evidence-based explanation of the score. The LLM renders the existing breakdown into readable copy; it never changes the decision. Every numeric claim is re-validated, and the surface falls back to a deterministic template when no key is set or a check fails.
Pure math, binding constraint and sensitivities
Decision logic
Binding constraint, marginal sensitivities, best 24h window and best nearby spots, computed directly from the breakdown. No LLM involved, fully deterministic, defensible for systems that route on the output rather than read it.
03
When to use it
Three places this lands
For booking platforms, tour operators and outdoor apps.
Booking platforms
Booking, user trust
Show the natural-language paragraph next to the confirmation: the three conditions behind the verdict, in plain language. Customers stop asking why a slot was held or released.
Tour operators and guides
Operator planning
A morning briefing across spots and windows, a paragraph plus a best-window table for each candidate. It replaces the analyst juggling five tabs before the day starts.
Outdoor and activity apps
Risk-aware UX
An in-app card with a one-line summary and a 'what would change' chip, plus an edge-case nudge when a favorable score hides real uncertainty. Warn without blocking.
LLMs can drift. Booking flows cannot. The natural-language surface is safe to put in front of a customer because it renders a structured record, re-validates every number, isolates user input, and always has a template to fall back to.
Structured inputs
Explanations are built from the score breakdown, not from free text. The model renders the decision record it is given; it does not decide anything.
Numeric validation
Every number the model produces is re-validated against the breakdown. A mismatch triggers a one-shot retry with a tightened prompt; a second failure falls back to the deterministic template.
Input isolation and prompt-hardening
User-controlled text is not used as instruction content. Identifiers are sanitized, and generated output is validated against the structured decision record.
Deterministic fallback
Every LLM call has a template fallback. If the provider is unavailable, the token budget is exhausted, or validation fails, the response still ships, rendered from a template instead of generated.
05
Evidence and provenance
Every driver carries where it came from
An explanation is only as trustworthy as the numbers under it. Each driver carries a source_type (forecast model, in-situ station, buoy, reanalysis) and a staleness_minutes, and the surface adds a confidence note when a value rests on thin coverage, for example when no representative buoy is nearby. This is the same provenance the score response exposes.
Feature status: counterfactual analysis is available now. Natural-language explanations require a configured Anthropic key; without one, the intelligence endpoints return 503 INTELLIGENCE_UNAVAILABLE and the counterfactual natural-language block degrades to a template.
POST /v1/intelligence/explain
One-paragraph, grounded natural-language summary of a score. Claude-backed when a tenant key is set; every numeric claim is re-validated against the breakdown, with a deterministic template fallback.
Use for: Show end-users a readable answer for a booking-flow verdict.
POST /v1/intelligence/edge-case
Surfaces the cases that a favorable score can hide: high uncertainty, provider disagreement, or a nearby safety gate. So a risk-aware flow can warn without blocking.
Use for: Risk-aware booking flows that want to nudge, not block.
POST /v1/score/explain-counterfactual
Analytical, no LLM. Returns the binding constraint, marginal sensitivities, the best 24h window and the best nearby alternative spots. Pure math from the existing breakdown.
Use for: Decision-logic systems that need defensible, quantified constraints.
POST /v1/intelligence/briefing
Multi-spot, multi-window briefing for a guide or operator. Returns a paragraph plus a tabular best-window summary per candidate.
Use for: Operator daily plan, guide morning brief, channel digest.
None of these endpoints change the score, verdict or safety gates. They render or analyse the record that /v1/score already produced.
07
BYOK and security
Your key, your budget
Bring your own Anthropic key
Use your own Anthropic API key, subject to Anthropic account availability and terms. The three intelligence endpoints run on that key and draw on your Anthropic token budget, and a flat 500,000-token monthly guard applies as a runaway-loop check on your own spend.
Each counterfactual analysis consumes one score-equivalent from your plan quota; it is pure math and needs no key. Its optional natural-language block additionally uses your Anthropic key. The explain, briefing and edge-case endpoints do not draw on your score quota; they run on your Anthropic key and count against your Anthropic token budget.