CTL — Chronic Training Load
CTL is the slower-moving average of daily cardiovascular TRIMP load, shown as Fitness.
The exact 42-day recurrence
CTL[d] = CTL[d−1] + (L[d] − CTL[d−1]) / 42
L[d] is the available TRIMP sum for the local activity-start day. The coefficient is exactly 1/42, not 1 − exp(−1/42). CTL has the scale of TRIMP per day. This is an exponentially smoothed history, not an arithmetic mean of exactly 42 days. Initial CTL is zero at the start of available history.
Verified example
Previous CTL 50 with today’s load 100 gives CTL 51.190476. A rest day from CTL 50 gives 48.809524. With no earlier history, a first day of 70 TRIMP gives only 1.666667 CTL; a low initial number is partly an initialization effect.
Read the history before the label
The first 41 days are low confidence. Missing activity imports or incomplete TRIMP reduce the evidence behind the model; a long chart does not prove complete history. Rest days decay the value. Recalculation after changing applicable HR settings or importing older training can change later CTL. The shared methodology documents timezone and gap handling.
Compare CTL with ATL to understand their different response rates. TSB is their previous-day difference. Fitness is the product label for CTL, not a measured physiological capacity or a race-performance prediction.
Sources and implementation scope
Morton, Fitz-Clarke and Banister (1990), impulse-response performance modeling provides background, not a specification of every EffortSignal rule. The formulas, windows, quality gates and examples above describe EffortSignal 0.1.13, checked September 10, 2026. Product-specific thresholds and rounding should not be attributed to the background source.
Content checked September 10, 2026 · EffortSignal release 0.1.13