In cycling, (Allen 2019) has been an influential instruction for training and racing with a power meter. The authors discuss training load in the context of a few functions: one they call a training stress score, the other two acute and chronic training load, respectively. Training stress score is an estimate of the amount of work going into a single workout while acute and chronic training loads are estimates of the short and medium term accumulated loads from training. We can think of ATL as fatigue, CTL as fitness.

All these are a function of an athlete’s ability to maintain power: functional threshold power. Let’s begin with that. The authors, trying to improve over Banister’s Impulse-Response model of fitness (Allen 2019, Clark 2013), define FTP,

FTP is the highest power that a rider can maintain in a quasi–steady state without fatiguing. When power exceeds FTP, fatigue will occur much sooner (generally after approximately one hour in well-trained cyclists), whereas power just below FTP can be maintained considerably longer (id. 54).

We estimate FTP one way as 95 percent of the maximum average power in watts that the athlete holds over a 20-minute interval after warming up:

\[\text{FTP} = 0.95 \cdot \text{power}_{\text{20 min}}\]

From FTP, we calculate training stress score:

\[ \text{TSS} = \frac{s \cdot W \cdot \text{IF}}{\text{FTP} \cdot 3600} \cdot 100 \] where \(s\) is time in seconds, \(W\) is normalized power in watts, and \(\text{IF}\) is an intensity factor. The intensity factor allows work-load comparisons: a one-hour time trial is 1. The constant 3,600 converts \(s\) seconds to hours, and 100 just scales the fraction to a number. (Allen 2019) estimate normalized power as a smooth version of raw power, specifically, if a per-second raw power \(\{p_i\}_{i = 1}^N\), a 30-second rolling average is \(s_i = \frac{1}{n} \cdot \sum_{j=i}^{i+n-1} p_j\), then normalized power is

\[W = \sqrt[\leftroot{-2}\uproot{2}4]{ \frac{s^4}{\bar{s^4}}}\]

Training stress score is, again, the work load of a single workout. From the above, we can now calculate acute and chronic accumulated training load. (Allen 2019) defines these:

Chronic Training Load (CTL). Taking into consideration both volume and intensity, CTL provides a measure of how much an athlete has been training historically, or chronically. It is calculated as an exponentially weighted moving average of daily TSS (or TRIMP) values, with the default time constant set to 42 days. (In effect, what this means is that your CTL is primarily a function of the training that you have done in the past three months.) CTL can therefore be viewed as analogous to the positive effect of training on performance in the impulse-response model—that is, the first integral term in the equation given earlier—with the caveat that CTL is a relative indicator of changes in performance ability due to changes in fitness, not an absolute predictor (since the gain factor, ka, has been eliminated) (id. at 242).

and

Acute Training Load (ATL). Again, taking into consideration both volume and intensity, ATL provides a measure of how much an athlete has been training recently, or acutely. It is calculated as an exponentially weighted moving average of daily TSS values, with the default time constant set to seven days. (In effect, what this means is that your ATL is primarily a function of the training that you have done in the past two weeks.) ATL can therefore be viewed as analogous to the negative effect of training on performance in the impulse-response model—that is, the second integral term in the equation—with the caveat that ATL is a relative indicator of changes in performance ability due to fatigue, not an absolute predictor (since the gain factor, kf, has been eliminated) (id.).

I’ve read confusion on the interwebs over what an exponentially weighted moving average with a default time constant is, exactly. First, an exponentially-weighted moving average \(S\) at time \(t\) is:

\[ S_t = \begin{cases} X_1, &\text{t=1} \\ \alpha \cdot X_t + (1 - \alpha)\cdot S_{t-1}, &\text{ t>1} \end{cases} \] where \(\alpha \in [0,1]\) weights current and past values. Higher values discount older observations. If \(\alpha = 1\), only the latest value matters whereas if \(\alpha = 0\), only the past matters. Thus, the value of \(\alpha\) tunes the amount that past work influences current training load. Second, we estimate an \(\alpha\) for ATL and CTL with the time constants. (Murray 2017) gives us,

\[ \alpha = \frac{2}{n + 1} \] where \(n\) are the number of training days, (Allen 2019) prescribes 7 for ATL and 42 for CTL.

Finally, we can use ATL and CTL to prescribe workouts and prep for races. To race, we want CTL - ATL (fitness minus fatigue) to be positive. For workouts, on the other hand, we want to hold CTL - ATL negative: (Allen 2019) suggests somewhere between -10 and -30.

Let’s keep in mind that we’re relying a lot on the assumptions by (Allen 2019) that their heuristic of 7 and 42 days are a fair representation of general fitness and fatigue. In a future post, we’ll explore this assumption and try to estimate optimal training load as unknown parameters in a Bayesian, more generative model.


Allen, Hunter. Training and Racing with a Power Meter. Third Edition. Boulder, Colorado: VeloPress, 2019.

Clarke, David C., and Philip F. Skiba. Rationale and Resources for Teaching the Mathematical Modeling of Athletic Training and Performance. Advances in Physiology Education 37, no. 2 (June 2013): 134–52. https://doi.org/10.1152/advan.00078.2011.

Murray, Nicholas B, Tim J Gabbett, Andrew D Townshend, and Peter Blanch. Calculating Acute:Chronic Workload Ratios Using Exponentially Weighted Moving Averages Provides a More Sensitive Indicator of Injury Likelihood than Rolling Averages. British Journal of Sports Medicine 51, no. 9 (May 2017): 749–54. https://doi.org/10.1136/bjsports-2016-097152.