The science behind RadiantHealth

We don't invent metrics. RadiantHealth uses well-established exercise physiology signals — Banister's training impulse, Coggan's CTL/ATL/TSB, HRV deviation from a personal baseline, sleep stage composition — and layers an agentic LLM on top to translate them into a plan. Here's the methodology, in plain English.

Readiness (0–100)

Readiness is a composite score we compute daily from four components. Each is z-scored against your personal 28-day rolling baseline, then weighted and clamped into [0, 100].

ComponentWeightSource signal
Resting HR deviation25%Nightly lowest HR (Garmin / Oura / Whoop / Apple Health)
HRV deviation35%RMSSD or rMSSD-equivalent overnight
Sleep efficiency + duration25%Total sleep / time in bed, with stage breakdown when available
Training stress balance15%TSB from Coggan CTL/ATL (see below)

If fewer than three components are available for today we return has_sufficient_data: false and the coach will not issue a readiness-derived recommendation. This is the honest version of "we don't know, so we won't make up advice."

Training load — CTL, ATL, TSB

We follow Andrew Coggan's Performance Management Chart model, which is the standard in endurance coaching software:

These definitions are Coggan & Allan (Training and Racing with a Power Meter, 3rd ed.) — we don't deviate. We do add per-user zone heuristics when power data is missing so running-only users still get a meaningful TSB.

TSB labels

TSB bandLabelWhat the coach does with it
≥ +15Very freshWill push harder sessions if HRV + sleep agree.
+5 to +15FreshStandard hard-day prescriptions allowed.
–5 to +5BalancedFollow the existing plan.
–15 to –5Functional overloadOK if HRV/sleep are holding; protect the key session.
< –15Deep fatigueWill propose shifting intensity out by ≥ 24h.

HRV — why we use deviation, not absolute numbers

Absolute HRV values are meaningless between people — a 90 ms rMSSD in a 28-year-old endurance athlete is unremarkable; in a 55-year-old beginner it'd be extraordinary. We only care about your HRV relative to your baseline.

Specifically: we compute a 7-day rolling average of overnight rMSSD (or the equivalent your device reports — Garmin's 7-day avg, Oura's HRV balance, Whoop's baseline) and compare last night to that average. Deviations greater than one standard deviation (again personal) are flagged for the coach. Two consecutive days below one SD is treated as a recovery signal, not noise.

Reference: Plews, D. et al. "Training adaptation and heart rate variability in elite endurance athletes." Sports Med 43, 773–781 (2013).

Sleep — quality over quantity

We read sleep events (not just duration) from Oura, Garmin, Apple Health, and Android Health Connect where available. The coach cares about three numbers:

  1. Total sleep time vs your 14-day personal average.
  2. Sleep efficiency = time asleep / time in bed. < 85% is a flag for most adults.
  3. Wake-after-sleep-onset (WASO) — minutes awake after first falling asleep. > 30 min is a stronger fatigue signal than short total sleep.

We don't report REM / deep percentages as coaching signals. Consumer wearables disagree dramatically on sleep-stage classification and the literature (see Chinoy et al., Sleep 2020) shows low concordance with polysomnography. They make a great bedroom stat, a poor coaching input.

Why we don't use a "recovery score" in isolation

Whoop's recovery, Oura's readiness, Garmin's body battery are all summary scores that hide their inputs. RadiantHealth ingests the underlying signals (RHR, HRV, sleep components) and rebuilds a readiness number that also includes training load — something single-source scores cannot do. When we do surface "Whoop recovery 78%" or "Oura readiness 84", we treat it as a second-opinion, not the primary signal.

The agent itself

The model layer is an agentic loop around OpenAI GPT-4o-mini (default tier) with tool-calling grounded in your actual data. Key guardrails:

We run a private evaluation set of 120 graded cases (pilot-user anonymised) on every model change. If coaching quality regresses more than 5% on the graded set we don't ship.

References

Coaching should be boring and correct.

RadiantHealth makes the methodology transparent and the recommendations concrete. See what your real numbers say tomorrow.

Get RadiantHealth for Android