# Is the formula for load from HR public domain?

**URL:** <https://forum.intervals.icu/t/is-the-formula-for-load-from-hr-public-domain/118072>\
**Category:** Uncategorized\
**Created:** [24 December 2025 03:00 UTC](https://forum.intervals.icu/t/is-the-formula-for-load-from-hr-public-domain/118072 "2025-12-24T03:00:46Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![Samantha\_Lane](https://forum.intervals.icu/user_avatar/forum.intervals.icu/samantha_lane/32/41480_2.png) [@Samantha\_Lane](https://forum.intervals.icu/u/Samantha_Lane)\
**Post date:** [24 December 2025 03:00 UTC](https://forum.intervals.icu/t/is-the-formula-for-load-from-hr-public-domain/118072/1 "2025-12-24T03:00:46Z")

</div>

Hi,

I was wondering if the formula that intervals uses to calculate load from HR available somehwere? I was thinking I could use the appbuilder data field on my garmin watch to calculate load on the fly so when I get to my planned value I can say “That’ll do pig.” and go home 🙂

---

<div class="post-metadata">

**Author:** ![pepe](https://forum.intervals.icu/user_avatar/forum.intervals.icu/pepe/32/36539_2.png) [@pepe](https://forum.intervals.icu/u/pepe)\
**Post date:** [24 December 2025 05:05 UTC](https://forum.intervals.icu/t/is-the-formula-for-load-from-hr-public-domain/118072/2 "2025-12-24T05:05:21Z")

</div>

Check following announcement.

> [@HRSS (normalized TRIMP) training load](https://forum.intervals.icu/t/hrss-normalized-trimp-training-load/569):
>
> You can now choose to estimate training load for activities with heart rate data only (no power) using HRSS (normalized TRIMP) as used in [Elevate](https://github.com/thomaschampagne/elevate/issues/341#issuecomment-322047898). You can also have different settings for cycling and running (and other sports). HRSS works better for running than the cycling derived models. You need to capture your resting HR and a good threshold HR for HRSS to work well. HRSS is now the default model if there isn’t enough data to build the others. This cha…

and

> [@\[Solved\]HRSS caculate problem](https://forum.intervals.icu/t/solved-hrss-caculate-problem/67039):
>
> @david below is my work informationn [https://intervals.icu/activities/i39563575](https://intervals.icu/activities/i39563575) work trimp is 301.8749 { "type": "HRSS", "icu\_training\_load": 170, "data": [], "resting\_hr": 46, "lt\_hr": 178, "max\_hr": 196, "rSquared": null, "trainingDataCount": 100 } I caculate work hrss by [Elevate](https://github.com/thomaschampagne/elevate/issues/341#issuecomment-322047898) methord as The difference between the calculation result 164.9035 and the icu result 170 is a bit big I’m not sure what’s wrong

---

<div class="post-metadata">

**Author:** ![ohmax](https://forum.intervals.icu/user_avatar/forum.intervals.icu/ohmax/32/50303_2.png) [@ohmax](https://forum.intervals.icu/u/ohmax)\
**Post date:** [24 December 2025 06:20 UTC](https://forum.intervals.icu/t/is-the-formula-for-load-from-hr-public-domain/118072/3 "2025-12-24T06:20:53Z")

</div>

Interesting concept keep us informed if you or anyone here manages to do that 😉 I already have enough challenges to predict load for a given week of planned workout. I use a mix of indicators - but the most basic one like distance for road, or hours for trail runs are the ones that for now I use as base.

---

<div class="post-metadata">

**Author:** ![Heyfrankieboy](https://forum.intervals.icu/letter_avatar_proxy/v4/letter/h/8baadc/32.png) [@Heyfrankieboy](https://forum.intervals.icu/u/Heyfrankieboy)\
**Post date:** [28 December 2025 21:41 UTC](https://forum.intervals.icu/t/is-the-formula-for-load-from-hr-public-domain/118072/4 "2025-12-28T21:41:08Z")

</div>

Not sure about the entire Garmin line, but the 1040 automatically computes TSS and IF on the fly, throughout the entire ride. So if it’s load you’re looking for, it’s there. Also, so is the math used to compute TSS. The formula is no secret.  
Forgive me if I have misconstrued your question.

---

<div class="post-metadata">

**Author:** ![Samantha\_Lane](https://forum.intervals.icu/user_avatar/forum.intervals.icu/samantha_lane/32/41480_2.png) [@Samantha\_Lane](https://forum.intervals.icu/u/Samantha_Lane)\
**Post date:** [12 January 2026 02:04 UTC](https://forum.intervals.icu/t/is-the-formula-for-load-from-hr-public-domain/118072/5 "2026-01-12T02:04:54Z")

</div>

I don’t think my watch reports load mid-activity. It only tells me load over the last 7 days and tells me if I’m in an optimal zone or not. And AFAIK, the garmin load is different from the intervals one, at least what it considers optimal is different from intervals.

---

<div class="post-metadata">

**Author:** ![Heyfrankieboy](https://forum.intervals.icu/letter_avatar_proxy/v4/letter/h/8baadc/32.png) [@Heyfrankieboy](https://forum.intervals.icu/u/Heyfrankieboy)\
**Post date:** [12 January 2026 04:03 UTC](https://forum.intervals.icu/t/is-the-formula-for-load-from-hr-public-domain/118072/6 "2026-01-12T04:03:42Z")

</div>

Garmin uses their own proprietary load computation (based on EPOC) whereas Intervals uses the “standard” TSS that most of us are used to. There is no actual formula to change one into the other that I’m aware of but you can estimate it. I may have notes somewhere on that - if you’re interested I’ll see if I can hunt them down.

PS - many of the Garmin head units compute TSS and will do it on the fly. At least the 1030, 1040, and 1050 do.

---

<div class="post-metadata">

**Author:** ![Samantha\_Lane](https://forum.intervals.icu/user_avatar/forum.intervals.icu/samantha_lane/32/41480_2.png) [@Samantha\_Lane](https://forum.intervals.icu/u/Samantha_Lane)\
**Post date:** [12 January 2026 05:33 UTC](https://forum.intervals.icu/t/is-the-formula-for-load-from-hr-public-domain/118072/7 "2026-01-12T05:33:16Z")

</div>

Thanks. I have an ancient ( by 21st century standards) forerunner so…  
I’ve had a worthwhile chat with Tom (aka chatGPT) and I know how to do it in principle, I just have to do it… 🥱

---

<div class="post-metadata">

**Author:** ![app4g](https://forum.intervals.icu/user_avatar/forum.intervals.icu/app4g/32/41800_2.png) [@app4g](https://forum.intervals.icu/u/app4g)\
**Post date:** [12 January 2026 12:39 UTC](https://forum.intervals.icu/t/is-the-formula-for-load-from-hr-public-domain/118072/8 "2026-01-12T12:39:29Z")

</div>

If your Watch supports a Power Meter profile (the FR do - even my ancient FR910xt) then it will compute TSS and IF within the watch and during an activity.

You just have to configure it as a Data Field in your watch.

---

<div class="post-metadata">

**Author:** ![Samantha\_Lane](https://forum.intervals.icu/user_avatar/forum.intervals.icu/samantha_lane/32/41480_2.png) [@Samantha\_Lane](https://forum.intervals.icu/u/Samantha_Lane)\
**Post date:** [13 January 2026 00:45 UTC](https://forum.intervals.icu/t/is-the-formula-for-load-from-hr-public-domain/118072/9 "2026-01-13T00:45:54Z")

</div>

But… then I’d need a power meter…Also, that would only work on the bike.

---

<div class="post-metadata">

**Author:** ![Nik\_Om\_Cinderella\_Ri](https://forum.intervals.icu/user_avatar/forum.intervals.icu/nik_om_cinderella_ri/32/36338_2.png) [@Nik\_Om\_Cinderella\_Ri](https://forum.intervals.icu/u/Nik_Om_Cinderella_Ri)\
**Post date:** [13 January 2026 01:05 UTC](https://forum.intervals.icu/t/is-the-formula-for-load-from-hr-public-domain/118072/10 "2026-01-13T01:05:51Z")

</div>

TSS is based on power meter data. Am I getting it right that you want TSS? Or HrTSS? (Which the formula is provided above).

HrTSS is not available on a Garmin. Maybe an IQ field?

---

<div class="post-metadata">

**Author:** ![Samantha\_Lane](https://forum.intervals.icu/user_avatar/forum.intervals.icu/samantha_lane/32/41480_2.png) [@Samantha\_Lane](https://forum.intervals.icu/u/Samantha_Lane)\
**Post date:** [13 January 2026 04:29 UTC](https://forum.intervals.icu/t/is-the-formula-for-load-from-hr-public-domain/118072/11 "2026-01-13T04:29:32Z")

</div>

Yes, HRTss…my plan is to use the Appbuilder datafield to calculate it on the fly. I’m just waiting for the impetus to do it. It shouldn’t be hard.

---

<div class="post-metadata">

**Author:** ![Samantha\_Lane](https://forum.intervals.icu/user_avatar/forum.intervals.icu/samantha_lane/32/41480_2.png) [@Samantha\_Lane](https://forum.intervals.icu/u/Samantha_Lane)\
**Post date:** [22 January 2026 00:36 UTC](https://forum.intervals.icu/t/is-the-formula-for-load-from-hr-public-domain/118072/12 "2026-01-22T00:36:56Z")

</div>

Post deleted…

Ah whoops! That’s wrong. Seemed to give the right result though.

I will get back to you all when I’ve fixed it up.

---

<div class="post-metadata">

**Author:** ![Gerald](https://forum.intervals.icu/user_avatar/forum.intervals.icu/gerald/32/28423_2.png) [@Gerald](https://forum.intervals.icu/u/Gerald)\
**Post date:** [22 January 2026 04:56 UTC](https://forum.intervals.icu/t/is-the-formula-for-load-from-hr-public-domain/118072/13 "2026-01-22T04:56:26Z")

</div>

HRss is available as a Garmin IQ data field.

 ![IMG_2286](https://forum.intervals.icu/uploads/default/original/3X/e/e/ee601be7751dbc38fdbd58b81452114b583c6ef5.png)

> **[Connect IQ Store | Watch Faces and Apps | Garmin](https://apps.garmin.com/en-US/apps/f275eca7-701a-4db8-b3da-d0ea8fd7955c)**
>
> Add creative apps, watch faces, music and more to your Garmin devices with the Connect IQ Store app.

---

<div class="post-metadata">

**Author:** ![Samantha\_Lane](https://forum.intervals.icu/user_avatar/forum.intervals.icu/samantha_lane/32/41480_2.png) [@Samantha\_Lane](https://forum.intervals.icu/u/Samantha_Lane)\
**Post date:** [22 January 2026 05:05 UTC](https://forum.intervals.icu/t/is-the-formula-for-load-from-hr-public-domain/118072/14 "2026-01-22T05:05:33Z")

</div>

Oh, I’ll check it out.

But that’s not the same as the intervals calculation is it? Isn’t that much higher than intevals values if your getting 200 thingies per hour?

Oh right, if you were riding above your threshold HR for two hours and have a much bigger heart rate reserve than me (a certainty), then it … would be even less than 200.  
Two hours?? I think its TRIMP, not hrTSS isn’t it?

---

<div class="post-metadata">

**Author:** ![Gerald](https://forum.intervals.icu/user_avatar/forum.intervals.icu/gerald/32/28423_2.png) [@Gerald](https://forum.intervals.icu/u/Gerald)\
**Post date:** [22 January 2026 06:43 UTC](https://forum.intervals.icu/t/is-the-formula-for-load-from-hr-public-domain/118072/15 "2026-01-22T06:43:20Z")

</div>

They show the calculation in the ConnectIQ app details, which is different from Intervals, but close enough to be of some use.

 ![IMG_2287](https://forum.intervals.icu/uploads/default/original/3X/2/a/2a09ad01e6cc452a1dc1ccdbff95affe9850db1a.png)

It does “over calculate” compared to Intervals and TrainingPeaks, and is on a separate field so not interfering with the load estimate.

Garmin - 393.9  
Intervals - 279  
TrainingPeaks - 284

> [@Samantha\_Lane](#):
>
> Oh right, **if you were riding above your threshold HR for two hours** and have a much bigger heart rate reserve than me (a certainty), then it … would be even less than 200.  
> Two hours?? I think it’s TRIMP, not hrTSS isn’t it?

Good observation… it was a MTB race in between a commute to, and from, the race. So a 1h45 maximal effort, with an average HR of 98-100% of LTHR (it can vary between 168-171, and anything higher than 171 is when I can feel it’s not sustainable). Then max HR of 187 and resting HR of 44-49, the reserve is 138-144.

---

<div class="post-metadata">

**Author:** ![Samantha\_Lane](https://forum.intervals.icu/user_avatar/forum.intervals.icu/samantha_lane/32/41480_2.png) [@Samantha\_Lane](https://forum.intervals.icu/u/Samantha_Lane)\
**Post date:** [23 January 2026 23:39 UTC](https://forum.intervals.icu/t/is-the-formula-for-load-from-hr-public-domain/118072/17 "2026-01-23T23:39:06Z")

</div>

Well gosh darn it! You’re right! Rode this morning (please don’t scoff at my tiny load) and the existing IQ data field and my appbuilder one gave exactly the same result.

 ![Screenshot 2026-01-24 at 10.05.47 am](https://forum.intervals.icu/uploads/default/original/3X/8/f/8f7d5e9c16ff8b5beeeadefda3b51ef99d42879c.png)

Intervals calculated a load of 40.

---

<div class="post-metadata">

**Author:** ![Samantha\_Lane](https://forum.intervals.icu/user_avatar/forum.intervals.icu/samantha_lane/32/41480_2.png) [@Samantha\_Lane](https://forum.intervals.icu/u/Samantha_Lane)\
**Post date:** [24 January 2026 00:03 UTC](https://forum.intervals.icu/t/is-the-formula-for-load-from-hr-public-domain/118072/18 "2026-01-24T00:03:05Z")

</div>

For what its worth… here is the formula, but as @Gerald pointed out, there’s an existing IQ data field that already does it much more nicely than this… but I’ll post it here to give an idea of what appbuilder can do. You can read more about it [here](https://ciq-appbuilder.blogspot.com/p/overview.html).  
It looks really ugly because there’s a limit to how long the formula can be. I think newer, fancier watches can handle longer formulas, but I had to hard wire the constants instead of setting them up front as variables to shorten the formula.

Intervals HR settings:  
165 is my threshold heart rate  
56 is my resting HR  
187 is my maximum

0.86 and 1.67 are constants in the Banister function and they are different for men and women.  
For men they are 0.64 and 1.92

setv(6,( **165** - **56** )/( **187** - **56** ));setv(7,getv(6)\ ***0.86** \*2.7182818^( **1.67** \*getv(6))\*60);setv(4,if(HR lt **56** , **56** ,if(HR gt **187** , **187** ,HR)));setv(2,(getv(4)- **56** )/( **187** - **56** ));setv(3,(getv(2)\ ***0.86** \*2.7182818^( **1.67** \*getv(2)))/60);setv(5,timer gt prev(timer));setv(1,if(getv(5),if(HR gt 0,alt(getv(1),0)+getv(3)/getv(7)\*100,alt(getv(1),0)),alt(getv(1),0)));getv(1)

---

<div class="post-metadata">

**Author:** ![ohmax](https://forum.intervals.icu/user_avatar/forum.intervals.icu/ohmax/32/50303_2.png) [@ohmax](https://forum.intervals.icu/u/ohmax)\
**Post date:** [27 January 2026 06:14 UTC](https://forum.intervals.icu/t/is-the-formula-for-load-from-hr-public-domain/118072/19 "2026-01-27T06:14:52Z")

</div>

I’m interested to compare HRSS load versus Stryd RSS. In particular if there’s a way “during” an activity to monitor this in real time so that when I’ve reached a certain load planned for the day/week then I’d finish the session. I checked my Garmin and I don’t have this field. Is that only available on certain watches? I have a FR955 Solar.

For info, I’m doing trail running long distance prep, and last week-end I was peaking in term of volume in my training plan, and the only load that was matching my perception overall was the Stryd RSB value.

---

<div class="post-metadata">

**Author:** ![Gerald](https://forum.intervals.icu/user_avatar/forum.intervals.icu/gerald/32/28423_2.png) [@Gerald](https://forum.intervals.icu/u/Gerald)\
**Post date:** [27 January 2026 06:45 UTC](https://forum.intervals.icu/t/is-the-formula-for-load-from-hr-public-domain/118072/20 "2026-01-27T06:45:37Z")

</div>

> [@ohmax](#):
>
> I checked my Garmin and I don’t have this field. Is that only available on certain watches? I have a FR955 Solar.

It’s compatible with your Garmin, and many other devices. It’s a ConnectIQ field, not a standard field. Once downloaded using the ConnectIQ app, and syncing your device, it will show up in the ConnectIQ section of data fields.

> **[Connect IQ Store | Watch Faces and Apps | Garmin](https://apps.garmin.com/en-US/apps/f275eca7-701a-4db8-b3da-d0ea8fd7955c)**
>
> Add creative apps, watch faces, music and more to your Garmin devices with the Connect IQ Store app.

Here’s my FR735XT view:

 ![IMG_2380](https://forum.intervals.icu/uploads/default/original/3X/f/6/f6ae7bbf7c8a375b422f9b1737eea784d9e66e04.jpeg)

---

<div class="post-metadata">

**Author:** ![ohmax](https://forum.intervals.icu/user_avatar/forum.intervals.icu/ohmax/32/50303_2.png) [@ohmax](https://forum.intervals.icu/u/ohmax)\
**Post date:** [28 January 2026 05:37 UTC](https://forum.intervals.icu/t/is-the-formula-for-load-from-hr-public-domain/118072/21 "2026-01-28T05:37:38Z")

</div>

Thanks Gerald I downloaded the app. It seems I can only add maximum two Connect IQ fields in my watch for the running activity, and I already have Stryd and AlphaHRV fields ☹

[Next page](https://forum.intervals.icu/t/is-the-formula-for-load-from-hr-public-domain/118072.md?page=2)
