CTL, ATL and TSB on Apple Watch, explained
Short answer
CTL is your fitness, a 42-day average of training load. ATL is your fatigue, a 7-day average. TSB, or form, is fitness minus fatigue: negative while you build, positive when you are fresh. Apple’s own Training Load compares your last 7 days with your last 28 instead, so for the full model you need an app like Runara.
The model in plain words
Every workout gets a load score. With heart rate, Runara uses a Banister TRIMP score, which weighs time by how hard your heart worked; without it, it falls back to active energy or duration. Those daily scores feed two rolling averages.
CTL (chronic training load) moves slowly over about six weeks: it is the fitness you have built. ATL (acute training load) reacts within a week: it is the fatigue you are carrying. TSB (training stress balance) is the difference. Deeply negative TSB means you are tired and building; close to zero means steady; positive means fresh, the state you want on race day.
How it differs from Apple’s Training Load
Apple’s Training Load compares the effort of your last 7 days with your last 28 and tells you whether you are above or below your usual. That is a useful nudge, but it has no separate fitness and fatigue curves and no form number, so you cannot see a build-up, a taper or the day you will be fresh again.
Using it day to day
Runara draws CTL, ATL and TSB from the workouts already in Apple Health, on the device. A dotted “if you rest” tail projects all three curves a week ahead, so you can see when form turns positive before planning the next hard session. A daily verdict, fresh, ready, fatigued or rest, also weighs your HRV and resting heart rate, and watch-face complications put the numbers on your wrist.
Fitness, fatigue, and form
Runara turns months of workouts into one readable picture. Here is the same model the History tab draws. Hover or drag across the chart to read any day.
Hover or drag across the chart to scrub through the block. You can also focus the chart and step through days with the arrow keys.
How it works
Every workout is an impulse
Each session is scored as a training impulse, a Banister TRIMP from your heart rate, or from active energy and duration when heart rate isn't available.
Two moving averages
Fatigue follows the last ~7 days and reacts fast. Fitness follows ~42 days and changes slowly. Train hard and fatigue spikes while fitness inches upward.
Form is the gap
Form is Fitness minus Fatigue. It drops negative while you load, then turns positive as fatigue fades faster than fitness, which is exactly why a taper makes you feel fast.
The fitness–fatigue model
The chart is the Banister impulse-response model from the 1970s: your readiness rises with fitness and falls with fatigue. Because fatigue decays faster than the fitness you built, rest doesn't erase your work. It reveals it as positive form. Runara computes all of this on-device from the workouts already in Apple Health.
τfitness = 42d · τfatigue = 7d
What is a good TSB?
It depends on the goal. During a build, a moderately negative TSB is expected. Before a race you want it to rise toward or above zero. Very negative values for days on end are a signal to back off.
Do cycling, swimming and strength sessions count?
Yes. Every workout in Apple Health contributes, scored from heart rate where available, so a hard ride and an easy swim both land in the same fitness and fatigue picture.
Do I need a subscription to see training load?
Not with Runara: training load is part of the one-time unlock, computed on your devices with no account.
Garmin vs Runara: training load on Apple Watch →