Heart Rate Derived Metrics way off

Since I dont have power meters on my outdoor bikes I was very pleased with the ‘Hear Rate Derived Metrics’ option.
But after using it for a while I come to the conclusion that the derived XSS is way off what it should be.

For example: I did a 50km relaxed ride outside yesterday all in the blue zone. Today I did the same distance but almost the whole ride on top level heart rate zones.
The relaxed ride from yesterday got a score of 115 XSS and today’s hard ride only 98 XSS.

For comparison: the suffer scores from Strava where 128 for yesterday’s ride and 255 for todays ride (which seems more realistic to me).

It looks like Xert doesn’t take the heart rate zones into account when assigning XSS scores.
Anyone any clues / suggestions?


Gr Johan Barelds

Do you use a cadence sensor? If I remember correctly, using a S/C sensor makes the calculations more accurate, as there is a relation/correlation between cadence and HR. Not sure how that works if you would do the same ride, same intensity, but with a different gearing though…

Hi Robert,

Yes, I do use a cadence sensor. Bought it especially to make optimal use of the Heart Rate Derived Metrics function.
Just checked the average and max cadence of both rides and they are more or less the same.
So the mystery still remains :slight_smile:

Gr. Johan B

1 Like

Okay - I’ll expect @xertedbrain or @ManofSteele to chip in then :+1:t2:

1 Like

Correct, same with power. We’re not looking for “Time in Zone” but rather the patterns that are evident in HR and Power data.

I noticed that you adjusted the HR parameters in account settings, and the HR recorded during one of those rides was actually above your input HRmax. Can you try enabling auto-estimate HR parameters and then re-syncing those rides from Strava?

1 Like

Hi Scott,

Thanks for explaining.
I enabled "auto-estimate HR and resynced the 2 activities from Strava but I have the feeling that it does not make enough difference in terms of XSS scores (the 2 rides compare now 102 to 127 XSS).

If I look at the numbers in Strava (see below) and imagine to what power they would correlate, I would still have expected a much higher XSS for today’s ride.

A comparable trainer ride for todays intensity is the Zwift event from 18th December 2019 called “FIETS Magazine Race Series © - Xert” (https://www.strava.com/activities/2941737574).
That ride was 90% in zone 4 for 60 minutes and gave me 227 XSS.
That ride is also more in line of what I would have expected with today’s ride given the fact that today’s ride was 60% in zone 4 for like 105 minutes.

So I still have the feeling that there is something fishy with the power/heart rate matching algoritme or maybe my historical power/heart rate data is screwed somewhere.

The Strava numbers
Ride 1 (yesterday)
Avg heart rate: 131 (67% in zone 2)
Max heart rate: 157
Suffer score: 128

Ride 2 (today)
Avg heart rate: 150 (44% in zone 4)
Max heart rate: 175
Suffer score: 255

Thanks again for looking into it and looking forward to your reply.

Johan B

If you increase/decrease the resting and max heart rate values, you can indirectly adjust the algorithm to reduce/increase the XSS. For example, decreasing max hr, should increase XSS. Experiment with different values if detected ones aren’t correct. You don’t need to re-analyze / re-import activities after making a change. All HRDM activities will be updated.

Thanks for the tip Armando.
Altough I will try to use it, it still is a workaround.
To my opinion the HR/Power algoritm still isn’t working properly and should be reviewed.
But I guess that is not on the top list of the development team :slight_smile:

Gr Johan B

1 Like

Can you check your cadence data? When your cadence sensor reads 0, power is 0.

Cadence looks just fine :slight_smile:

I believe what @xertedbrain means is that power is equal to zero whenever cadence is zero. You can see how many times that actually happens, or at least that’s what that graph looks like to me. And Xert calculates everything including zeros (except XEP, I guess), so that will influence XSS etc. Not an ideal situation, I agree, but they’re working on improving it(?)

It works quite well overall. The cadence is pretty normal for a group ride. Will need to investigate more what’s different about the historical analysis if all the data is normal on the newer rides. HR is notoriously poor and error prone but we do have ways to account for or remove errors. Everything should work perfectly, with great results with reasonably good and consistent data.

I also have the same impression as @johanbarelds. XSS from heartrate derived workouts is way off. I have a powermeter on my roadbike and no powermeter on my mountainbike. If I do a comparable intensity training (feelingwise and from the data in Garmin Connect and Strava), xert rates the heartrate derived workout with the mountainbike as an easy endurance activity with 122 XSS and the powermeter based workout with the roadbike is a difficult rouleur ride with 192 XSS. Can this assessment be fixed?

Use a cadence sensor together with your HRM for better results.

All bikes are equipped with a cadence sensor, @xertedbrain. But if there is a correlation in the algorithm between cadence and HRM this might be the problem (at least im my case). Typically my cadence on the mountainbike on uphills is 5-10 rpm lower than on the roadbike. Additionally on technical descends there is of course no pedalstroke on the mountainbike as you are standing on pedals, while you can still pedal downhill on a roadbike.

Yesterday I did a short flat gravel ride with the mountainbike just before an upcoming thunderstorm. I was kind of pushing to get some work done before the bad weather and had some short all out intervals on a strava segment.
Xert rated this ride moderate and gave it an equiv power of 149W:

I am aware that the metrics are different and not to be directly compared, but Strava gave the ride an average power of 216W, which is much closer to the feeling I had and have today:

Any idea on how to adjust Xert to improve the HR derived data? Thanks for your input!

P.S.: This is my current fitness signature:

You cannot compare the two activities by feeling as a technical descent can trash you when riding off-road. You may feel beat up, but you won’t have the numbers to prove that (HR or power).

The purpose of HRDM is to estimate a level of TL without power data. Too low is better than estimating too high. The goal isn’t a one-to-one match.
You can fiddle with the RHR/MHR settings under Account Settings, Profile tab if you want to recalculate the results.

On the flipside do an Internet search for “how accurate is Strava’s estimated power?” and you’ll find many say it varies substantially and is unreliable for training purposes. :man_shrugging:

1 Like

Yeah, there’s an issue here for sure. Xert is reporting my Resting Heart Rate is estimated to be 4 bpm.

Probably some bad data at some point in your account.

If you know what they are, simply disable the auto-detect and manually key in the resting/max values!

Obviously 4 bpm is incorrect. My actual resting HR is an order of magnitude higher than that. I opened every single activity for the past 2 months and plotted the HR for each. I found maybe 6 rides with short drops to maybe as low as about 50 bpm. The vast majority of the HR data seems just fine - certainly nothing that should cause any proper calculation to come to 4 bpm as the solution.

Is there an easier way to find the Activity with the offending data other than by opening every single activity and manually clicking to graph the HR?

There are quite obviously lower and upper bounds on HR, just like for power. In fact, HR values, unlike power, could also be flagged/ignored when they don’t change after a few seconds. I realize HR isn’t used for most (all?) other calculated metrics when power data is available, but it still seems like reasonable boundary conditions aren’t being handled very well here.

Shouldn’t Xert automatically Flag/Ignore obviously bad heart rate data?

In the meantime, wouldn’t it be easy to add a way to manually flag just the HR data for an activity?