RPE PulseRPE Pulse

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)

Relative weights

ComponentWeight wᵢSignal
Wellness0.40Recovery vs individual baseline
Load (ACWR)0.35Acute EWMA₇ ÷ uncoupled chronic EWMA₂₈
Strain0.25Weekly 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:

View reference papers · Metrics glossary