🎉🎉🎉 Introducing Machine Learning-Based TSS Estimation! 🎉🎉🎉

Update on this- we’ve fully implemented the fix for rides receiving unusually low TSS values, which related to how some devices saved HR data. The system is currently reprocessing all rides with previously estimated TSS to fix any existing errors. This might take a bit, but if you had rides with TSS values that seemed low, they should straighten themselves out sometime today. Any new rides with estimated TSS should also receive correct estimates.

If you still see anything that still looks anomalous after later today, or if you’re still having the issues saving preferences some athletes reported earlier, please send an email over to support@trainerroad.com so we can log the specific issue and make sure it’s included in the fix.


@SeanHurley - how do we find the “progression” by zone that Nate posted on his IG account today? Thank you!

Those are Progression Levels, currently only found within the Adaptive Training beta. You can request access over at the link below:

1 Like

Fantastic! That worked for me, ride which I’d posted about went from 69 to 179 when I tried it again this morning. Nicely done on the quick fix, have way more confidence in this feature now.


Hi, TSS now works, but I am not able to change my day of birth.
When I change it to the correct date, it shows “saved” but going back to the page, still wrong date!

1 Like

The automatic assignment of TSS based on HR for my outdoor commute was working fine for the past week or two until a couple of days ago, now it automatically reverts to RPE and waits for my estimation. Haven’t changed anything

Please report this to support@trainerroad.com . Our engineers are working on this but were unable to reproduce it internally, so specific reports are helpful in resolving it. Thank you!

Done. Mail send

1 Like

Great, now it all makes sense :slight_smile: TSS is yet adequately calculated, tnx

1 Like

Due to variance between the power meter on my bike and the power meter in my trainer, do you think ML estimated TSS is a more accurate indicator for actual TSS on outdoor rides? Seems like my Garmin Vector pedal reads 3-5% higher than my Wahoo Kickr (which could indicate power imbalance, since I don’t have both pedals).

For context, I set my Vector sensor to “Cadence Only” when training inside on the Kickr.

A bit of feedback on ML based TSS estimation.

  1. Cool to add this. Appears absolutely legit. You should have plenty of rides with both power and HR data to learn with. A year from now we should think: how funny that we had to do this manually, back in the days.
  2. Why ask for my full birth date? I can understand that you want to know my rough age, but a birth year, in my opinion, should be exact enough. A birth date, in combination with my name, is a powerful dataset to keep. That risk should be justified.
  3. You ask for my maximum heart rate on the bike. How am I supposed to know, and how much time do you think I should invest in finding out? I’'d say: just process all my ride data that includes HR. That will take a few seconds of compute time. Then present me the number. If I think I remember from the top of my head that it should be higher, let me adjust it.
  4. I trust your ML model to be better than any manual estimation I have done. Why don’t you? I’d be happy if you would decide for overwriting all my past rides as a default. Ideally you’d present me a comparison view between my estimated value and yours. Then let me decide to accept this or not.

Just my 2ct worth of end user thoughts. Keep up the good work!


Wait some more, or email support about a 119 estimated TSS ride from 5 years ago that by all comparable inside workouts and outside races should be at least 140 TSS?

I have the same niggle, in my case it’s one day out. It’s not new as its been seemingly uncorrectable as long as I can remember.

1 Like


1 Like

My estimated TSS from HR seems WAY too low… anyone else?

In general the TR and TP estimates of hrTSS are aligned. My experience with hrTSS dates back to 2014 when I started using TrainingPeaks. I’ve got a fair bit of indoor spin classes and outside rides with heart rate only, before buying a power meter in Oct 2016.

Yesterday a spot check of really hard group rides and found one where:

  • 119 hrTSS for TR
  • 140 hrTSS for TP

The TR one is low when comparing to similar efforts with a power meter, both indoors and outdoors.

I know TP has my resting HR, I’d wonder if they use HR reserve for their calculations. That would surely be more accurate than just using max.

If you’d a low rating HR I would think that TSS could be underestimated. Two individuals working in Z2, with similar HRmaxs and FTPs, but different resting HRs. The one with the lower HRR would show a lower HR for the same work and get assigned lower TSS.

Source: Training Stress Scores (TSS) Explained – TrainingPeaks Help Center

and the Estimating Training Stress Score article is a quick and interesting read.

1 Like

Interesting read alright. Using threshold HR seems a better metric, it’ll likely reflect the lower resting HR anyway.

1 Like

my first time using this (and also my first MTB ride), based on my effort, it feels about right, was working on the climbs