ALL SYSTEMS · NOMINAL
UTC --:--:--
Explain

Two ways to explain a score — both defensible

Natural-language for the end-user; analytical for the decision-logic. The same score breakdown drives both. AI explanations are hallucination-guarded and falls-back-to-template; counterfactual analysis is pure math with binding constraints and marginal sensitivities. Pick the surface that fits the consumer; the other is ready when you need it.

01
Two surfaces

Why this score?

Same question, two product shapes. The LLM surface produces copy a booking-flow can show a customer; the analytical surface produces structured output a decision system can route on. We ship both because the buyer's downstream consumer differs: a human reading copy vs a workflow making a call.

Anthropic Claude · hallucination-guarded

Natural language

Saturday afternoon at Tarifa Balneario looks favorable for intermediate kitesurfing, scoring 87/100. The 22-knot cross-onshore wind is textbook for the conditions you've booked. Two factors keep this from a 95+: the chop is slightly above flat-water-ideal (1.5m / 10s swell adds workout to freestyle), and the gust factor 1.18 is steady but not ironed out. No safety gates triggered — clear sightlines, no convective activity within 50km. If you want to wait for better, the 24h scan shows a 92-window opening Saturday 14:00 UTC as the gust calms further. Recommended action: GO NOW unless your group is freestyle-only, in which case wait two hours.

Pure math · binding constraint + sensitivities

Counterfactual analytical

  1. wave.height1.5 m → 0.8 m+9 points · flat-water session window
  2. wind.gustFactor1.18 → 1.05+4 points · steadier wind eases freestyle riding
  3. wind.speed22 kt → 24 kt+2 points · faster but still below comfort ceiling
  4. temp.airC22 °C → 24 °C+1 point · approaches the optimum thermal-comfort band
02
Endpoints

Four endpoints, one story

POST /v1/score/:id/explain

One-paragraph natural-language summary of a score. Anthropic Claude backed, hallucination-guarded (every numeric claim re-validated against the breakdown).

Use for · Show end-users WHY a booking-flow verdict came out the way it did.
POST /v1/briefing

Multi-spot, multi-window briefing for a guide or tour operator. Returns a paragraph + a tabular best-window summary.

Use for · Tour-operator daily plan, guide morning brief, marketing-channel digest.
POST /v1/edge-case

Surfaces tactical edges — provider disagreement, high ensemble variance, hard-gate proximity — that warrant an end-user warning even when the score is favorable.

Use for · Risk-aware booking flows that want to nudge but not block.
POST /v1/score/explain-counterfactual

Analytical, no LLM. Returns binding constraint, marginal sensitivities (∂score/∂metric), best 24h window, best nearby alternative spots. Pure math.

Use for · Decision-logic systems that need DEFENSIBLE 'what would change the score' output.
03
Safety

Four safeguards every LLM call clears

LLMs hallucinate. Booking flows can't. The four safeguards below are what makes the natural-language surface customer-facing: every numeric claim is re-validated, every token-budget exhausted falls back, every prompt-injection attempt is contained, every provider outage is absorbed.

Numeric-claim guard

Every number the LLM produces is re-validated against the breakdown payload. Hallucinated values trigger a one-shot retry with a tightened prompt; second failure falls back to the deterministic template.

Token-budget cap

Per-tenant monthly token cap (Pro plan: generous, Scale: contracted). Exhausting the budget falls the endpoint back to the analytical-only response — never a 5xx.

Prompt-injection containment

User-supplied identifiers are sanitised before they reach the prompt. The system block and the cohort facts are pre-cached on Anthropic, the user-controlled portion is sandboxed.

Deterministic fallback

Every LLM call has a template fallback. If the provider 503s, if the budget is exhausted, if the validation fails — the response still ships, just from a template instead of generation.

04
Buyers

Three places this lands

FareHarbor · Bookeo · vertical

Booking platforms · user trust

Show the natural-language paragraph next to the booking confirmation: 'Your kite school for Saturday is scheduled because of these three conditions...'. Customers stop emailing 'why was my booking cancelled?'.

Adventure tour, expedition planning

Tour operators · briefings

Morning briefing to the guide team — multi-spot, multi-window — replaces the analyst with 5 tabs. Format is a paragraph + a 'best window' table for each candidate.

Komoot · Strava · brand apps

Consumer apps · in-app copy

In-app weather card with a one-line summary + a 'what would change' chip. Anthropic prompt caching keeps the per-call cost negligible; per-tenant budget keeps it bounded.

05
Access

Pro plan and up

Counterfactual analytical

Available from Pro onwards. Pure math, no token budget. Counts against the monthly score quota (each counterfactual call costs ~1 score-equivalent).

AI explainer + briefing + edge-case

Available from Pro onwards. Per-tenant monthly token budget (generous default; contracted on Scale). Provider: Anthropic Claude with prompt caching.

06
Try it

Already on Pro? Both endpoints are live