View TRIMP Load estimation parameters

I was wondering if it is possible to somehow view the results from the load estimator regression. I find that for most rides, it is quite accurate for me. I would like to write a Garmin Connect IQ app where the user can set zones and, I guess, some constant for each zone, and would then be able to view a liveload estimation when riding with HR only.

Do you mean when using the “time in HR zones” model? HRSS (Normalised TRIMP) doesn’t do any regression, it just has a formula using LTHR, resting HR and max HR.

For “time in zones” if you are using Chrome and are familiar with the dev tools you can easily get the coefficients. Just right click on Intervals.icu, choose “Inspect” and go to the network tab. Select “XHR” in the filter row. Then go to the HR page for the activity. Look for a call that says “hr-load-model” and click that then “Preview”. There is lots of info there including the coefficients for the model used for that ride:

0: -3.1808302359593688
1: 0.010683864176517956
2: 0.01355717328262192
3: 0.021017892393982683
4: 0.013039836988054998
5: 0.06211736960493642
6: 0.06211736960493642
7: 0.10576411307585556
2 Likes

Great, thanks! So for each second in each time zone, I get the given increase/decrease in training load units? Meaning, in this case, for a second in zone one, 0.0106?

That’s correct. The first row is the constant term.

1 Like

Great, I got them! Just one question: intuitively, it seems to me that the coefficient for zone 1 is kind of arbitrary (yours is -3, mine is +30)! How can we understand this, can it be an artifact of the regression?

That first row is the constant term (intercept) so mine is -3.18. The 2nd row is for zone 1 i.e. 0.01068 for me.

1 Like

Ok, this makes sense. Will post here if I complete an IQ implementation :smiley:
Although: with the intercept being non-zero, this suggests that the regression works only with completed rides and won’t make much sense live, especially during the first minutes.

1 Like

Maybe I don’t get it (most likely even ^^) but why does a second in zone 4 give less load than a second in zone 3?

I think that happens due to not great input data. I did try fudging the coefficients so higher zones are always bigger than preceding zones but it caused more trouble. If you have a zone you don’t ride much in and the coefficient isn’t great then that error is propagated up.

I need to try find a regression library that will let me constraint the coefficients so the higher zone ones are always bigger than lower ones.