TSB — Training Stress Balance

TSB, shown as Form, is the difference between chronic and acute load entering a day.

Before today’s load

TSB[d] = CTL[d−1] − ATL[d−1]

The date label matters: EffortSignal uses the previous day’s completed CTL and ATL. It does not subtract today’s updated ATL from today’s updated CTL for the same labeled TSB. All three values come from the daily TRIMP history. The units are the same load scale as CTL and ATL.

Verified example

If yesterday ended at CTL 50 and ATL 60, today’s TSB is −10. Today’s 100 TRIMP would update CTL to 51.190476 and ATL to 65.714286, but today’s TSB remains −10. The difference of those updated values, −14.523810, becomes the following day’s TSB.

Interpretation and limits

Positive or negative values describe the relationship between two model averages. They do not independently determine readiness, injury probability or whether a hard workout is appropriate. The first modeled day’s TSB is zero because both initial averages are zero; this does not establish full recovery.

Missing history and changed TRIMP inputs propagate through both averages. Read CTL, ATL and Training Load together. Readiness includes separate physiological evidence.

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.

All explanations · All features