RPE Pulse Score
Composite athlete readiness indicator on a 1–10 scale (higher = better). Combines wellness (vs individual baseline), load/ACWR, and Foster strain. Each signal is first expressed as risk r ∈ [0,1]; the score inverts that risk so it reads like wellness. Not a medical diagnosis and not a validated injury predictor.
The score aggregates signals to prioritize coach–athlete follow-up. It does not predict injuries in an individual.
General formula
Normalized index with continuous ramps (no step cliffs). The sum is normalized only over available components: a missing signal neither penalizes nor dilutes.
Score = 10 − 9 × Σ(wᵢ · rᵢ) / Σ(wᵢ available) rᵢ ∈ [0, 1] · wᵢ = relative component weight r = 0 → Score 10 (optimal) · r = 1 → Score 1 (critical)
- • Rounded to 1 decimal, clamped to [1, 10].
- • At least 2 of 3 components with available rᵢ are required; otherwise score = null (no invented zone).
- • Adherence is not in the formula: it is a separate confidence index.
- • Weights: Wellness 0.40 · Load/ACWR 0.35 · Strain 0.25 (sum to 1 when all three are present).
Relative weights
| Component | Weight wᵢ | Signal |
|---|---|---|
| Wellness | 0.40 | Recovery vs individual baseline |
| Load (ACWR) | 0.35 | Acute EWMA₇ ÷ uncoupled chronic EWMA₂₈ |
| Strain | 0.25 | Weekly load × Foster monotony vs history |
Wellness (r_w, w = 0.40)
Check-in wellness = average of sleep, fatigue, DOMS, stress, and mood (≥ 3 dimensions). Recent window: days 0–6 (≥ 3 check-ins). Individual baseline: days 7–27 (≥ 8 check-ins) → mean μ and SD σ (floor σ = 0.5).
z = (recent − μ) / σ r_w = clamp(−z / 2) # z ≤ −2 (two SDs below own normal) → r_w = 1
Cold start (insufficient baseline) — population ramp:
r_w = clamp((8 − recent) / 5)
Load / ACWR (r_l, w = 0.35)
ACWR = EWMA₇ at the evaluation date / EWMA₂₈ closed 7 days earlier. λ₇ = 0.25 and λ₂₈ = 2/29; days without sessions count as zero load. At least 28 observed days are required and the estimate keeps stabilizing with more history. Continuous two-arm ramp:
overload = clamp((ACWR − 1.1) / 0.7) # 1.1 → 0, ≥ 1.8 → 1 underload = 0.5 × clamp((0.8 − ACWR) / 0.4) # 0.8 → 0, ≤ 0.4 → 0.5 r_l = max(overload, underload)
Strain (r_s, w = 0.25)
Foster monotony over daily loads in the week (≥ 3 training days). Weekly strain = weekly load × monotony. With ≥ 3 prior weeks: r_s = percentile of current strain vs own weeks.
monotony = mean(dailyLoads) / max(SD(dailyLoads), 1) strain = weeklyLoad × monotony # cold start: r_s = clamp((monotony − 1.0) / 1.5)
Adherence (outside the score)
Share of active days (check-in or session) in the window. High ≥ 80%, medium 50–80%, low < 50%. Informs confidence in the calculation; does not add risk points.
Readiness zones
Optimal (7–10)
High readiness / low composite risk.
Watch (4–7)
Medium readiness; coach–athlete follow-up.
Critical (1–4)
Low readiness / high risk; prioritize conversation and intervention.
Minimum data
No invented score with thin evidence:
- • Wellness: ≥ 3 check-ins in 7 days (optimal: + 28-day baseline).
- • ACWR: at least 28 observed days to initialize the EWMA estimate.
- • Strain: ≥ 3 training days in the week (optimal: + 3 prior weeks).
- • If fewer than 2 components: score = null and insufficient-data message.