Load & readiness
Fitness, fatigue & form
Three running averages of your daily load that show whether you are building, buried, or fresh.
A fixed-constant simplification of the peer-reviewed Banister impulse-response model. The 42 and 7 day constants are the same for everyone, so read these as a personal relative trend, not an absolute measure.
Three numbers summarize where your training has left you today. Fitness is how much work your body has absorbed over the long run. Fatigue is how much recent work is still weighing on you. Form is the gap between them, and it tells you whether you are buried under a hard block or fresh and ready to race.
One load score per day
Everything starts from a single number for each day: a load score that captures how much stress that day's training placed on you (a long hard run scores high, a recovery jog scores low, a rest day scores zero). Fitness and Fatigue are then just two running averages of that daily load, kept with different memories.
Fitness: the 42-day memory
Fitness (also called chronic training load, or CTL) is an exponentially-weighted moving average of daily load with a 42-day time constant. Each day it steps a small fraction of the way from where it was toward today's load:
Fitnesstoday = Fitnessyesterday + (loadtoday − Fitnessyesterday) × (1 − e−1/42)That smoothing factor, 1 − e−1/42, works out to about 0.0235. Because it is so small, Fitness moves slowly: it takes weeks of consistent training to build, and it fades just as slowly when you rest.
Fatigue: the 7-day memory
Fatigue (acute training load, or ATL) is the same kind of average, but with a much shorter 7-day time constant, so it reacts quickly to what you have done this week:
Fatiguetoday = Fatigueyesterday + (loadtoday − Fatigueyesterday) × (1 − e−1/7)Here the factor 1 − e−1/7 is about 0.1331, roughly six times larger than the Fitness factor. A hard weekend spikes Fatigue right away, and a few easy days let it settle back down.
Form: fitness minus fatigue
Form (training stress balance, or TSB) is simply how far your slow-moving Fitness sits above your fast-moving Fatigue. We read it on the yesterday basis, so today's Form reflects the balance you woke up with:
Formtoday = Fitnessyesterday − FatigueyesterdayDuring a hard block Fatigue outruns Fitness and Form goes negative: you are carrying more recent stress than long-term fitness, and you feel it. Ease off for a taper or a rest week and Fatigue falls away fast while Fitness lingers, so Form swings positive and you feel fresh. Peak races are usually targeted at a slightly positive Form: rested, but not so rested that fitness has started to slip.
Worked example
Say yesterday you had a Fitness of 50 and a Fatigue of 65, and today you run a workout worth a load of 80:
- New Fitness: 50 + (80 − 50) × 0.0235 = 50 + 0.705 = 50.7
- New Fatigue: 65 + (80 − 65) × 0.1331 = 65 + 2.0 = 67.0
- Today's Form: 50 − 65 = -15
Fitness barely moved (up 0.7) while Fatigue jumped 2.0, exactly what you expect from the different memories. And with a Form of -15, this is a day deep in a hard block: fatigued, not fresh.
How to read it honestly
This model is a fixed-constant simplification of the peer-reviewed Banister impulse-response model (Calvert, Banister and colleagues, 1976), which fits a separate gain and time constant to each individual athlete. The specific 42-day and 7-day version we use is Andrew Coggan's Performance Manager, which adapted Banister for everyday training data. Here the two memories, 42 days and 7 days, are the same for everyone. That makes the numbers easy to compute and compare against your own past, but it also means Fitness, Fatigue and Form are best treated as a personal relative trend, not a clinical or absolute measurement. Watch which way they are moving and how they line up with how you feel, rather than chasing a specific target value.
Evidence tier: derived from a published, well-established model, but this particular fixed-constant implementation has not been individually validated. Use it to see the shape of your training, not as a precise prescription.