We’re all chasing peak fitness. We want it on – not before, not after – the day of our highest priority race. Timing fitness is a top concern for athletes, and can quickly become a struggle without a solid understanding of a few important terms: TSS (Training Stress Score), CTL (Chronic Training Load), ATL (Acute Training Load), and TSB (Training Stress Balance). These metrics are incorporated into the design of every TrainerRoad plan, to help maximize the effect of your workouts.
Metric | What it means | What it does |
---|---|---|
TSS | Training Stress Score | Quantifies the physical stress of each workout |
CTL | Chronic Training Load | Measures fitness, the cumulative effect of training over time |
ATL | Acute Training Load | Measures fatigue, the short-term effect of recent workouts |
TSB | Training Stress Balance | Describes “freshness” by weighing fitness vs. fatigue |
TSS (Training Stress Score): a Measure of Your Hard Work
What is TSS
TSS, or Training Stress Score, is a description of how much physical stress a workout places on the body. Tracking TSS allows us to balance adaptive stress with proper recovery, helping to maximize the outcome of your training. Riding at FTP for one hour results in a TSS of 100, but both intensity and duration influence how this metric is calculated.
How TSS is Calculated
The intensity factor (IF), Normalized Power (NP) and duration of a workout determines TSS. Intensity Factor reflects the relative intensity of a workout as compared to your theoretical maximum, based on your FTP. The actual calculation used to find TSS is:
TSS = (# of seconds of the workout x Normalized Power x Intensity Factor) / (FTP x 3600) x 100
Note: If you’re wondering what that “3600” represents, it’s the number of seconds in an hour; “100” is there because riding at FTP for an hour generates 100 TSS.

In TrainerRoad, every workout is listed with a planned TSS value, and completed workouts include measured TSS compared to this expectation. In addition, weekly TSS is visible in the Calendar view, alongside each week in list form and in the Training Stress graph.
Why TSS Matters
Knowing how much physical stress a workout generates allows you to estimate the potential fitness you’ll gain from your training session, given adequate recovery. TSS is a way to measure this stress. In addition, looking at TSS and how you respond to it over time can help you better fine-tune the volume and intensity of your training. Any time recovery is hampered or performance isn’t in line with expectations, reviewing TSS can help find the source.
It’s important to note that while TSS is an extremely useful metric, not all TSS is created equal. A high-TSS workout does not guarantee an increase in fitness, as intensity and duration both factor in and don’t stress your body equally. For instance, a relatively easy two-hour ride and an extremely intense workout of under an hour can result in the same TSS. These workouts take very different tolls on the body and spur different physiological adaptations. So, while total weekly training stress is meaningful to know, IF (Intensity Factor) is necessary for context. TrainerRoad plans are all quantified by TSS, but individual workouts are strategically arranged within a training plan using IF to manage fatigue. Learn more about TSS here.
A custom training plan, automatically built for your goals.
Try Plan BuilderCTL (Chronic Training Load): an Approximation of Your Fitness
What is CTL
CTL is a reflection of the consistency, duration and intensity of the last 6 weeks to several months or more of your training. Your body’s response to this training determines your current level of real-world fitness. The phrase “fitness” is often used as synonymous with CTL, but this is technically inaccurate: CTL quantifies your training, but does not always necessarily reflect your body’s response to that training. Learn more about this distinction here.
How CTL is Calculated
Traditionally, CTL is a weighted average of your daily TSS for the last 6 weeks, with greater emphasis placed on more recent workouts. TrainerRoad uses a simplified equivalent calculation, displaying your rolling average TSS from the last 6 weeks with no exponential weighting applied.

In TrainerRoad, average TSS is visible in the Training Stress graph. The gray line shows the rolling 6 week average training stress, and by hovering over any bar on the graph you can view the 6 week average both by week and by day.
Why CTL Matters
With good structure, training over an extended period of time raises a rider’s CTL. When CTL increases at an appropriate rate and allowances are made for proper recovery, positive adaptations occur. Normally, as CTL (fitness) increases, the amount of ATL (fatigue) you can handle increases too, as your body is better able to cope with training stimulus.
It’s important to note increasing CTL doesn’t always require athletes aim for very high TSS. Increasing simply means increasing your TSS over time, relative to your starting point and keeping pace with your body’s rate of adaption. Low-volume athletes can still build good fitness on 3 days/week and relatively low TSS.
ATL (Acute Training Load): a Measure of Your Fatigue
What is ATL
Your current level of fatigue is measured by ATL (Acute Training Load). This relatively short-term metric is based off a combination of frequency, duration and intensity of the workouts you performed during the last week of your training.
How ATL is Calculated
ATL is the average daily TSS for the last week, exponentially weighted to emphasize stress from the most recent workouts.
Why ATL matters
Managing and tracking fatigue helps you forecast how much recovery you need for maximum fitness benefit. As you add up days of high-TSS workouts and in turn ramp your weekly TSS, your fatigue will rapidly increase and your body will soon start to feel the effects of your training.
TrainerRoad doesn’t display your ATL directly, but it’s factored into every training plan. Each week’s workouts balance stress with recovery, and workouts resulting in high ATL values are followed by easier days to allow recovery. Additionally, periods of high stress are interspersed with recovery weeks, allowing your body to catch up and adapt without becoming too bogged down.
TSB (Training Stress Balance): a Measure of Your Form
What is TSB
TSB is the balance between CTL (Chronic Training Load) and ATL (Acute Training Load) and is commonly referred to as form. Since CTL is often used as an approximation of overall fitness, TSB is an attempt to balance how fit you are over the long term with how fatigued you are from recent workouts.
How TSB is Calculated
TSB is straightforward – it is the balance of Chronic and Acute Training Load. TSB = CTL – ATL.
A higher ATL than CTL results in a negative TSB, and a lower ATL than CTL results in a positive TSB. Having a positive TSB is referred to as being “fresh” but how fresh you need to be to race well varies. Some athletes perform best when very fresh and need TSB to be highly positive on race day, while other athletes perform better with a more mildly positive TSB. This often boils down to things like an athlete’s age and training experience, the type of event, and their previous volume of training.
Why TSB matters
The idea behind TSB is pretty intuitive- you want to arrive at race day as fit as possible, but not too fatigued to perform your best. A significantly negative TSB is usually a good sign your fatigue level is too high and that you did not taper enough. However, in practice the numerical value reflected by TSB is often misleading. Many athletes treat TSB as objective fact, when in reality it is just a rough approximation. TrainerRoad does not display TSB for this reason, but Plan Builder uses the concept by building tapers into your training plan before important events.
Generally, it’s not smart to do a big week of training prior to an event, and tapering helps you carry freshness into Race Day. However, tapering must always be balanced with the loss of fitness that comes with decreased training, and this is why tapers are usually limited to about a week before an event. When you taper, CTL falls, but because TSB/ freshness rises, the decline in fitness is outmatched over the short term by an increase in freshness. This explains one reason why it’s hard to hold a peak for long, as the training necessary to maintain high fitness creates lots of fatigue and stress.
Keep in mind the the body absorbs training adaptations with a roughly 6-week delay (different types of fitness, different timelines, but fitness in general takes about 6 weeks to “stick”) so anything done inside of this window may not manifest on race day and might only serve to delay freshness. This is why we use a 6-week rolling average when calculating your CTL.
The Big Picture- Structured Training
Once again, peak fitness is what we’re all after. The only way to achieve this is through the proper balance of stress and fatigue, both over the long term and in the days leading up to your event. All these concepts may seem simple enough – and for the most part they are – but they are all interwoven, and all based on the ability to measure training stress accurately.
Without an objective way to measure your training load, properly structured training is not possible. Cyclists need to measure their training stress so they can plan when they will reach peak fitness. The most precise and widely accepted way of measuring training load is through training with power.
Quantifying your training is the first step in achieving more effective training and a greater understanding how all your hard work on the bike influences your body. For many riders, this is a time for a lot of trial and error. For other riders who are following a discipline-specific structured training plan, this is a time for growth and fine-tuning what they’ve got.
Author’s note: Many terms used within this blog post including Training Stress Score (TSS), Intensity Factor (IF), Normalized Power (NP), Acute Training Load (ATL), Chronic Training Load (CTL), Training Stress Balance (TSB) and Functional Threshold Power (FTP) are registered trademark terms owned by TrainingPeaks and are used with permission.
For more cycling training knowledge, listen to Ask a Cycling Coach — the only podcast dedicated to making you a faster cyclist. New episodes are released weekly.
Share this Post
Does TrainerRoad have any plans to help cyclists track these numbers? I know you are looking at a way of adding outdoor rides so it’d be great to see all of this info without signing up to yet another service. I use Strava’s form and fitness at the moment.
That or a version of these numbers 🙂
Question on TrainingPeaks’ copyright of CTL/ATL/TSB…does their copyright cover the formula or just the names? The formulas are just exponential growth/decay formulas with different time constants, so I’d hope they could just be calculated and called something different (maybe this is what Strava is doing?).
Anything stopping you guys from doing what Simon Mac suggested in his question? Allow manual inputs for TSS on outdoor rides (or synced with Garmin Connect) and spit out the fitness/fatigue/form data.
Right now I’m using a spreadsheet with formulas for CTL/ATL/TSB and doing it all outside of TrainerRoad b/c I don’t want to pay for another subscription at TrainingPeaks just for that functionality. It’s useful in that I can play with a forecast using my planned TrainerRoad workouts, outdoor rides, and event timing.
Thanks, and keep up the good work!
Copyright is just on the names. I used to work at a slot machine company and the comment everyone there would say is “you can’t copyright/patent math!”.
We’ve got big plans for outdoors and we’ll put more focus on it once our new Mac app and our Android app are out!
Thanks, Nate. Can’t wait to see what you guys have planned. I’m still a novice to structured training, but have learned to glean a lot of info my TSS/ATL/CTL/TSB spreadsheet. It helps quantify the level of fatigue and has explained some really good and really bad workouts I’ve had. When it doesn’t, it usually helps me isolate the issue to nutrition, sleep, and time of day issues. Lots of learning left to do, but that quantification has definitely helped me get a bit faster.
Thanks for your support Eric! Glad to hear you’re learning so much from it all. 🙂 Happy training!
Thanks Nate, ill wait for the android app and TTS suport. I used to backup all my workouts on cyclinganalytics.com and its a very usefull thing but another website and suscription for only that….i dont think so.
Eric,
Would you be willing to share your spreadsheets? I’ve been considering building the same thing, but didn’t know where to find these formulas. If you’ve already built them, I’d love to use yours. 🙂
Peace,
Dan
Sure thing, Dan…see if this works: https://docs.google.com/file/d/0BwLIjgd-NoDvMmpNOGJCajEtNDA/edit?usp=docslist_api&filetype=msexcel
Hopefully you can pull what you need out of there. It’s a bit convoluted, but the general process is (1) Enter a plan and TSS values under the plan section (2) update the graph to show the new plan line (3) as workouts are completed, enter the NP and TSS in the execution section. There are some other things like FTP tracking that I left in in case it may be helpful.
Just wanted to also throw out a tool I just discovered. http://www.wattsboard.com can suck in all of your rides from Strava (make sure to also link your TR rides with Strava). From there, it has all of the essential functionality in something like Golden Cheetah but in a VERY easy to use interface. It also allows you to plug in TSS values manually on rides where you might not have power data for whatever reason (dead batteries, grabbed the commuter bike, etc…). I’ve been using it for a couple weeks now and am very impressed.
Thanks for passing that along, Eric.
Cheers!
Hi guys
Great article! I am trying to get my head around the idea about dropping TSS while increasing the intensity of the workouts during the build period while actually aiming to increase your CTL in a healthy way.
Problem is that if you are using the CTL model, and have say a current CTL of 60, then doing a workout for the day of say <60TSS will do nothing to raise your CTL and an athlete will soon stagnate on an average CTL which is dictated by his/her average TSS per day.
So my question is how are you supposed to use this notion to monitor your CTL when peaking/transitioning
Cheers
Apollon
I’m looking to do my first half iron Man and need some help with nutrition while racing. I’m using protein / elecrolyt mix and was wondering if I need more ?
Paul,
Congratulations on your first IM 70.3! It’s tremendous task and you should be proud to embark on such a journey.
As far as nutrition goes, it really is HUGELY individual. So what works for one may not work for another. That being said, I asked an experienced triathlete in the office if they could provide some advice for you.
Here goes: “What I typically will do is up 3 hours before for a full breakfast of oatmeal or a bagel with peanut butter, along with a coffee. During the actual race, the number one thing is to start eating early and often during the bike. I prefer energy chews over gu because it is easy to pop one or 2 of those in your mouth at a time. On top of that, if they can find a drink mix that works for them, they can pack a ton of calories in a bottle. I’ve seen people do 1000calorie bottles in the past.
Once on the run they’ll pretty much be looking for quick energy such as gu’s. This is normally what will be at the aid stations anyway. Most importantly, they should have tried and be used to their nutrition strategy going into race day. They should have tested it at least a few times to make sure it doesn’t give them GI issues.”
So I’d say you should play around with a tactic similar to this and see if it works for you. Go out and do some efforts with the nutrition you land on, make sure it doesn’t cause any issues, and you should get a good vibe for what works best for you. 🙂
Hope this helps Paul. Have an awesome race!
Hi,
The problem with TrainerRoad is that the program dos not account for the hours of training outdoors en commuting to work and the rides in group. So to measure you’re fitness is quite difficult .
So if by luck in the future we can incorporate those hours off stress outdoors on to the programm we would have a more accurate result and a more efficient training schedule.
Hey there Eric!
I actually have great news for you! We have been working on a project, for over a year now, that will allow you to upload and analyze your outside rides to TrainerRoad. We are calling it Performance Analytics.
It’s not released yet, but you can apply for early access to our upcoming features by joining our Facebook Beta Group. Here’s a link for you: https://www.facebook.com/groups/147776349143575/
Cheers!
I tried a simple way to analyze my fitness/freshness graph with just the time in hours… TSS=IF²*Hours*100 formula. For IF=0.7 it becomes approximately TSS=50*Hours. If I use this for all the data I have from 2013 onwards, it matches very well with a more extensive calculation which involves a lot of other data…. To me it seemed very easy to study my fitness and freshness characteristics in absence of a power meter. Thought I would share it to the global community as well…
Hi, I’m considering subscribing to TR and had a few questions relating to the topic of this post before I do.
1. Does TR show SS, ATL, CTL and TSB or their differently branded equivalents from inside and outside workouts?
2. Alternatively, can data from TR inside and outside workouts upload to my Training Peaks account so I can see SS, ATL, CTL and TSB and use the performance manager chart
3. Can TR scheduled workouts be run on Zwift the way those from my Training Peaks schedule can?
As you can probably see, I’ve gotten quite used to using Training Peaks metrics and functionality using other structured training plans and want to know if TR works with it in similar ways. Thanks
Hey Steve!
Thanks for reaching out, I’m happy to hear that you’re considering TrainerRoad!
1. We have the ability to track 6 Week Avg TSS, which is the equivalent of CTL, but we do not display the other metrics. We’ve made the decision to leave the other metrics out because we feel that they can be confusing and hard to decipher for many users. We like to take care of those details for you 😉
2. We do however export to TrainingPeaks, so if you are accustomed to using these metrics you can still view them in TP.
3. [EDIT] It is unfortunately not possible to export TrainerRoad workouts to be completed on Zwift, however, it is possible to run TrainerRoad and Zwift in parallel, allowing TR to control your resistance while you ride along in Zwift. You can learn more about that here.
If you have any further questions, feel free to reach out to our Support Team at support@trainerroad.com and they’ll be happy to help out 🙂
Can we get CTL and that data in trainerroad?