Cycling calculator
TSS calculator — training stress score
Turn a ride's duration, normalized power and your FTP into Coggan's training stress score, plus the intensity factor behind it. Free, instant, no sign-up.
No NP figure? Average power is close enough on a steady ride, and low on an interval session.
Recovery is usually complete by the next day.
One ride's TSS says little on its own — the coach watches how the weekly total moves.
What is TSS?
Training stress score is Andrew Coggan's single number for how much a ride cost you, combining how long you rode with how hard it was relative to your own threshold. One hour ridden exactly at FTP is 100 points by definition, which makes TSS self-scaling: as your FTP rises, the same ride scores fewer points, because it genuinely is easier for the rider you have become.
How this calculator works
TSS = (duration in seconds × NP × IF) ÷ (FTP × 3600) × 100, where the intensity factor IF is normalized power divided by FTP. That expression collapses to hours × IF² × 100, so intensity counts twice and duration once: two hours at IF 0.70 scores 98 points while one hour at IF 1.00 scores 100. It is also why easy riding is so cheap — halve the intensity and you quarter the stress.
Weekly TSS, and what the totals look like
Single rides are read against Allen and Coggan's fatigue bands: under 150 you are usually fresh the next day, 150–300 leaves some residue, 300–450 can still be felt after two days, and above 450 the recovery runs into several days. Weekly totals are the number that actually shapes a season — roughly 300–500 for a rider training a few hours a week, 500–700 for a committed amateur, 700–1000 for someone racing seriously, and above 1000 for full-time riders. Ramp the weekly figure by around 5–10% at a time and take a lighter week roughly every fourth.
Where TSS misleads
The score is blind to what kind of stress it counted. 300 points of steady endurance and 300 points of VO₂ max intervals leave very different holes, and TSS cannot tell them apart. It also inherits every error in your FTP: a stale threshold that is 20 W too low inflates every ride you log. Re-test every 6–8 weeks, use TSS to see whether the trend is rising, flat or falling, and let the session itself — not the number — decide what tomorrow looks like.