All about TSS (Stress Points) in Zwift

When you begin a workout in Zwift you may notice a “stress points” rating. And when you finish any Zwift ride you’ll see a guy at the top-right telling you how hard you worked.

Where do those numbers come from, and how are they useful?

Zwift’s “stress points” are really just TSS–the same number you see when you end a ride. Training Stress Score was developed by TrainingPeaks as a key workout metric. It combines both time and intensity into one metric which indicates how much stress your workout is putting on your body.

Let’s dig into TSS a bit more to learn how it is calculated and used.

First, a Big Nod to the Creators

The TSS (Training Stress Score) and IF (Intensity Factor) metrics were created by Dr. Andy Coggan and Hunter Allen. Coggan also created NP (Normalized Power). TSS, IF and NP would eventually be purchased by TrainingPeaks and trademarked.

Coggan, Allen, and TrainingPeak’s Joe Friel have done amazing work developing metrics and tools that help us train smart. They deserve kudos for the many ways they have helped cyclists take their training to the next level.

(Side note: if you’re ever looking for good books on training with power, pick up Coggan and Allen’s Training and Racing with a Power Meter and/or Friel’s The Cyclist’s Training Bible. Both incredible resources for anyone interested in getting faster on the bike!)

Power Required

It’s worth noting that calculating TSS requires power numbers. Twenty years ago these numbers weren’t accessible to most cyclists, but nowadays with affordable power meters and smart trainers many cyclists have power data for every ride. It’s a great time to be alive and training!

Connect to TrainingPeaks

If you haven’t yet done so, I recommend heading to TrainingPeaks.com (or downloading their app) and creating a free account. Upload all your ride data to this account and you will have TSS and other metrics stored for every ride.

  • Link your Zwift account to TrainingPeaks by logging into Zwift.com and clicking “Connect” under Profile>Connections.
  • Outdoors I use (and love!) my Wahoo Elemnt bike computer which uploads my rides to TrainingPeaks as well as Strava. If you have a power meter for outdoor rides, set up your bike’s computer to upload to TrainingPeaks. This way you’ll have all your rides analyzed by TrainingPeaks.

The Formula

Here is the formula for calculating TSS:

TSS = [(sec x NP x IF)/(FTP x 3600)] x 100

Where “sec” is how many seconds your workout lasted, NP is normalized power, IF is intensity factor, and FTP is your functional threshold power. Most of those numbers will be familiar to you, but “Intensity Factor” may be new. It’s simple though: IF is the ratio of Normalized Power to your FTP for any given workout. So if an athlete with an FTP of 300 watts completed a workout averaging 200 NP their IF would be .67.

TSS calculation examples (assuming FTP of 250 watts):

  • Ride at FTP for 1 hour: [(3600 x 250 x 1)/(250 x 3600)] x 100, or 100.
  • Ride at 75% FTP for three hours: [(10800 x 187.5 x .75)/(250 x 3600)] x 100, or 169.
  • Ride at 50% FTP for five hours: [(18000 x 125 x .5)/(250 x 3600)] x 100, or 125.

Once you understand the formula you will see that you can earn more than 100 TSS within a single workout, but only if the workout is longer than an hour.

It’s All Relative

Since TSS is based on your personal FTP, a TSS of 100 is relatively the “same” for a professional athlete as it is for a beginner. This is the genius of the TSS metric.

As an example, if a pro cyclist “Pro Joe” went out and did a 1-hour ride that resulted in a TSS of 100, this would be a max effort for him. In simplified terms, if Joe’s FTP was 350 watts, this means he would have held 350 watts for the full hour. Animal!

Then a mere mortal, let’s call him “Cycling Bob”, comes along with an FTP of 225. Bob goes out and hammers for an hour, holding 225 watts the whole time. His TSS will be 100 as well.

Even though Joe and Bob moved at very different speeds during their rides, they both gave it their all for that hour. Their relative effort levels were the same, which is why their TSS is the same.

What’s the Use?

This is a massive topic, and one in which I’m no expert. What I can say with confidence is it’s the best metric I’ve found for how hard a day’s effort really was, and that helps inform my recovery needs that follow.

Many coaches and athletes also use cumulative TSS (per week or per month) to figure out the volume of training which will leads to improvements but avoid overtraining. Athletes might ramp up their TSS leading into a big event, building each week from (for example) 600 TSS to 700 then 800.

There is much more to this topic, but we’ll leave it here for today. I’m curious: do you pay attention to TSS? How have you found it useful in your training? Comment below!

Eric Schlange
Eric Schlangehttps://zwiftinsider.com
Eric runs Zwift Insider in the spare time he finds between riding his bike and managing various business interests. He lives in Northern California with his beautiful wife Monica. Follow on Strava

16 COMMENTS

Subscribe
Notify of
guest

16 Comments
Oldest
Newest Most Voted
Perry Alan McFall
Perry Alan McFall
6 years ago

TSS only show up for me on workouts – not group rides or races. Where the score would appear I have the climbing challenge and and not able to find a way to change this.

Tanya Clark
Tanya Clark
6 years ago

I have just started with a coach and they have asked me to do a Zwift ride for 1hr30min with a T75, how do I manage my TScore while training so that I get that result

Spixy
Spixy
6 years ago

I can see my TSS at end of ride, but don’t know how to access that information once that screen goes.

Tom Scanlon
Tom Scanlon
6 years ago

Any way to get Zwift rides to show TSS and IF in Garmin Connect. They show up for TrainerRoad rides.

Cr.Rand
6 years ago

Had previously only been looking at wattage zones for recovery rides but now using the TSS more now to help keep myself in-check for recoveries and to curb enthusiasm for doing hard/long rides every single day.

Wish the TSS was embedded and displayed permanently in our Zwift Activity feed but make it’s a licensing issue?

Jerome Lawther
Jerome Lawther
5 years ago
Reply to  Cr.Rand

I wish it showed up in the activity feed too.

bikingyom
bikingyom
5 years ago

The formula could be simplified to this, am I right?
TSS = 100 x hours x IF^2
(because sec/3600 = hours, and NP/FTP = IF)
But if I use this formula on each interval in any zwift workout and make the total, it never ends up on the zwift stress points. Do you have an explanation?

Kyle
Kyle
4 years ago

I’m late to the party here, but maybe will snag a reply. I’m just connecting this… Am I right in thinking that the “stress points” when choosing a workout are an estimate of what your TSS will be for that session?

John
John
3 years ago

You could get a TSS over 100 in an hour if you are riding intervals and staying near threshold the rest of the time. In this case your IF will be larger than 1.

Also, the much simpler formula for TSS is (IF)^2 X time in hours X 100 which is the same as the formula stated in this article, but more digestible.

As a mathematician, I gotta say all the NP, IF, and TSS stuff feels a little bit “how to lie with math” to me. What biological reason is there for squaring IF? Why not cube it? What physical quantity is being computed? (SPOILER: I don’t think there is one, it’s just made up.) we could also raise it to the 8th power, so why squared? Or maybe just take the linear term? And NP itself is fraught with similar questions about what exactly it’s supposed to be computing. Strava’s exponential decay (weighted average power) is almost certainly better than NP, which has no decay in its sliding window average, which means a spike in power effects 30s down the road the same as 10s down the road, but you’ve actually recovered a lot in 30s. (There’s a bit of voodoo math going on as far as I can tell.)

Robert Chung
Robert Chung
2 years ago
Reply to  John

Like you, I’m a mathematician–but unlike you, I read the original explanation of how the squaring came to be. There are problems with the whole NP, TSS, ATL, CTL, PMC ecosystem, but the square isn’t really one of them. It’s like looking at the Euler Identity and claiming “why isn’t that = -2?” without following through the logic and reason of it. The good thing is that Coggan made his assumptions explicit, so we can criticize them. It would also be a good thing if you looked at those assumptions before criticizing them.

Greg Wright
Greg Wright
3 years ago

Can you see TSS for past rides? Once one completes a ride and exits Zwift can one see the TSS?

Tony
Tony
3 years ago

I can see the limitations of TSS, but for Zwift’s structured workouts I’ve found it to be a very good predictor of perceived effort across different kinds of sessions. Whether it’s short, intense intervals or longer, more sustained ones, I know that for me anything above 80 for an hour is going to hurt, while anything under 60 probably won’t feel challenging enough. So it’s helpful in choosing workouts based on where my fitness is and how I feel on a given day.

Luca Giovannini
Luca Giovannini
2 years ago

TSS is very useful for an annual training plan, alternating periods of intense training with recovery weeks. Having the TSS for any structured training on Zwift is great to plan your weekly plan, with a specific cumulative TSS. Love it.
— What I would like to have is a table with estimation of TSS per hour per Zone. We know that 1hour at FTP is TSS 100, but who knows how much is 1 hour at Zone 2 or 1 hour at Zone 3, for example?
Having this table will allow us to prepare a specific training with exactly the TSS we need for the day, on a weekly and yearly training program.
— Do someone know how the guys at Zwift calculate the TSS (?)

Thank you, enjoy your rides

Claus
Claus
1 year ago

Only available after workout rides :-/ Yes really nice to use when available.

Get Started on Zwift

Newest Featured Posts

Support This Site

Write a post, shop through us, donate or advertise. Learn more

NEWSLETTER SIGNUP

Zwift tips and news every 2 weeks! Click to subscribe.

More Posts