# How to have TSS from strength workouts calculated by RPE

**URL:** <https://forum.intervals.icu/t/how-to-have-tss-from-strength-workouts-calculated-by-rpe/132732>\
**Category:** Questions & Help\
**Created:** [5 October 2026 03:15 UTC](https://forum.intervals.icu/t/how-to-have-tss-from-strength-workouts-calculated-by-rpe/132732 "2026-10-05T03:15:02Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![Ben\_Wiseman](https://forum.intervals.icu/letter_avatar_proxy/v4/letter/b/5fc32e/32.png) [@Ben\_Wiseman](https://forum.intervals.icu/u/Ben_Wiseman)\
**Post date:** [5 October 2026 03:15 UTC](https://forum.intervals.icu/t/how-to-have-tss-from-strength-workouts-calculated-by-rpe/132732/1 "2026-10-05T03:15:02Z")

</div>

How can I have my TSS from strength workouts calculated by (TSS = RPE x duration). I know I can manually adjust my TSS for the session and adjust how much it contributs to my fitness and fatigue, but is there a way to have it automatically calculate the TSS for me based on my RPE?

---

<div class="post-metadata">

**Author:** ![R2Tom](https://forum.intervals.icu/user_avatar/forum.intervals.icu/r2tom/32/50144_2.png) [@R2Tom](https://forum.intervals.icu/u/R2Tom)\
**Post date:** [5 October 2026 03:40 UTC](https://forum.intervals.icu/t/how-to-have-tss-from-strength-workouts-calculated-by-rpe/132732/2 "2026-10-05T03:40:12Z")

</div>

There is already the built-in S-RPE value, if you enter RPE it calculates automatically duration x RPE

---

<div class="post-metadata">

**Author:** ![Ben\_Wiseman](https://forum.intervals.icu/letter_avatar_proxy/v4/letter/b/5fc32e/32.png) [@Ben\_Wiseman](https://forum.intervals.icu/u/Ben_Wiseman)\
**Post date:** [5 October 2026 04:40 UTC](https://forum.intervals.icu/t/how-to-have-tss-from-strength-workouts-calculated-by-rpe/132732/3 "2026-10-05T04:40:04Z")

</div>

Thank you for your quick response!

To clarify my question, it’s regarding having TSS calculated from strength workouts not s-RPE.

Note: If you are thinking of Dr. Carl Foster’s specific **Session RPE (sRPE)** method, that calculation does not output TSS directly; instead, it multiplies total session duration in **minutes** by the **RPE (1–10)** score to yield arbitrary training load units (e.g., 60 minutes × RPE 5 = 300 sRPE units). These numbers are usually significantly high (6-10X) compared to typical TSS scores from power, pace or hr based calculation. [[1](https://www.frontiersin.org/journals/neuroscience/articles/10.3389/fnins.2017.00612/full)]

To predict **Training Stress Score (TSS)** using **Session RPE (sRPE)** when power or precise heart rate data is unavailable, you can **use either the Joe Friel RPE-to-TSS/Hour Lookup Method or the Formulaic Intensity Factor (IF) Approximation Method**. Both approaches rely on a standard 1–10 RPE scale to estimate the physiological workload based on your subjective effort and duration. [[1](http://www.trainingbible.com/joesblog/2009/09/estimating-tss.html), [2](https://www.boostcoaching.co.nz/blog/run-stress), [3](https://www.matassessment.com/blog/understanding-training-load-in-runners)]

**Method 1: Joe Friel’s RPE-to-TSS/Hour Lookup Table**![image](https://forum.intervals.icu/uploads/default/original/3X/b/d/bd7cf29ec4adeaa9a835e11fac984476b43545f6.png)

| **Overall Session RPE (1–10)** | **Descriptor** | **Estimated TSS per Hour** |
| --- | --- | --- |
| **1** | Very, Very Easy | 20 |
| **2** | Easy | 30 |
| **3** | Moderate | 40 |
| **4** | Somewhat Hard | 50 |
| **5** | Hard | 60 |
| **6** | Harder | 70 |
| **7** | Very Hard | 80 |
| **8** | Threshold Effort | 100 |
| **9** | Near Maximal | 120 |
| **10** | Maximal | 140 |

**Method 2: The Intensity Factor (IF) Approximation Formula**

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

I currently have to do this manually for each of my RPE based sessions but was wondering if there’s currently a feature to have this done automatically?

I then toggle how I believe each type of session affects my fitness and fatigue:

 ![image](https://forum.intervals.icu/uploads/default/original/3X/d/b/db7e9bcf3750e5a9b35ddcb79774893e4b69ed4f.png)

---

<div class="post-metadata">

**Author:** ![R2Tom](https://forum.intervals.icu/user_avatar/forum.intervals.icu/r2tom/32/50144_2.png) [@R2Tom](https://forum.intervals.icu/u/R2Tom)\
**Post date:** [5 October 2026 04:47 UTC](https://forum.intervals.icu/t/how-to-have-tss-from-strength-workouts-calculated-by-rpe/132732/4 "2026-10-05T04:47:03Z")

</div>

Do you sync RPE automatically to intervals?  
If so, you can create a custom activity field which calculates RPE \* duration in hours or whatever formula you want to use, and override the load value. If you enter RPE inside intervals, you have to reanalyse the activity to run this script to override the load value.

---

<div class="post-metadata">

**Author:** ![Ben\_Wiseman](https://forum.intervals.icu/letter_avatar_proxy/v4/letter/b/5fc32e/32.png) [@Ben\_Wiseman](https://forum.intervals.icu/u/Ben_Wiseman)\
**Post date:** [5 October 2026 04:59 UTC](https://forum.intervals.icu/t/how-to-have-tss-from-strength-workouts-calculated-by-rpe/132732/5 "2026-10-05T04:59:43Z")

</div>

I do sync RPE automatically, how do I create a custom activity field for the different activites?

Thank you again!

---

<div class="post-metadata">

**Author:** ![R2Tom](https://forum.intervals.icu/user_avatar/forum.intervals.icu/r2tom/32/50144_2.png) [@R2Tom](https://forum.intervals.icu/u/R2Tom)\
**Post date:** [5 October 2026 05:01 UTC](https://forum.intervals.icu/t/how-to-have-tss-from-strength-workouts-calculated-by-rpe/132732/6 "2026-10-05T05:01:14Z")

</div>

Here an example

> [@Alternative load calculation for mountainbiking](https://forum.intervals.icu/t/alternative-load-calculation-for-mountainbiking/72320/2):
>
> It is possible to calculate training load using a custom activity field and also update the intensity and load on the activity. Under the ride timeline chart choose “Custom” and “Add Field”. Name it MTBLoadCalc or similar and paste this on the script tab: { let fixed\_watts = icu.streams.fixed\_watts let ans if (fixed\_watts) { let tot = 0, n = 0 for (let v of fixed\_watts) { if (v) { tot += v ++n } } if (n \> 0) { ans = tot / n if (icu.a…

there was another big thread with an example, though I would add the acitivity type (if statement) to override the value only for certain activity types:

> [@Allow users to choose alternatives to TSS](https://forum.intervals.icu/t/allow-users-to-choose-alternatives-to-tss/92351/26):
>
> Create a custom field and put this the in script field: { watts = streams.get("fixed\_watts").data w30 = icu.stats.calcMovingAvg(watts, 30) tss = 0 for (let i = 0; i \< w30.length; i++) { w = (w30[i]/icu.sportSettings.ftp)\*\*2; tss += w } activity.icu\_training\_load = tss/36 } It will update the Load after re-analyzing the activity or for new activities. Or maybe @PiotrekNL will make his script public, so anyone could search for it and add it slight_smile

so it will be something like:

```auto
{
let ans;
if(activity.type == 'WeightTraining')
{
ans = activity.icu_rpe * activity.elapsed_time / 3600;
}
else if(activity.type == 'Badminton')
{
// some other formula
}
// if you want to override, add the next line:
activity.icu_training_load = ans || activity.icu_training_load;

ans;
}

```

---

<div class="post-metadata">

**Author:** ![Ben\_Wiseman](https://forum.intervals.icu/letter_avatar_proxy/v4/letter/b/5fc32e/32.png) [@Ben\_Wiseman](https://forum.intervals.icu/u/Ben_Wiseman)\
**Post date:** [5 October 2026 07:18 UTC](https://forum.intervals.icu/t/how-to-have-tss-from-strength-workouts-calculated-by-rpe/132732/7 "2026-10-05T07:18:26Z")

</div>

I don’t have a coding background.

To create custom activities for future and past weight training activities to calculate IF and TSS loads based on the equations below, I’ll have to learn to create JavaScripts?

 ![image](https://forum.intervals.icu/uploads/default/original/3X/4/c/4c7f4c4260c73c6ed40088bf693bc78576943fbc.png)

---

<div class="post-metadata">

**Author:** ![Ben\_Wiseman](https://forum.intervals.icu/letter_avatar_proxy/v4/letter/b/5fc32e/32.png) [@Ben\_Wiseman](https://forum.intervals.icu/u/Ben_Wiseman)\
**Post date:** [5 October 2026 16:08 UTC](https://forum.intervals.icu/t/how-to-have-tss-from-strength-workouts-calculated-by-rpe/132732/8 "2026-10-05T16:08:52Z")

</div>

I created a Javascript to quantify TSS from weightlifting RPE. I thought I would share it here and I made it publicly visible to share with the rest of the community under Weight Training TSS:

{

if (activity.type === “WeightTraining”) {

```
// Get duration in hours from elapsed time

let durationHours = activity.elapsed_time ? activity.elapsed_time / 3600 : 0;

// Retrieve perceived exertion (1-10)

let rpe = activity.icu_rpe;

if (rpe && durationHours > 0) {

  let tss = durationHours \* Math.pow(rpe / 10, 2) \* 100;

  

  // Update native fitness load in Intervals.icu

  activity.icu_training_load = Math.round(tss);

}

```

}

}

---

<div class="post-metadata">

**Author:** ![bronekp](https://forum.intervals.icu/user_avatar/forum.intervals.icu/bronekp/32/29156_2.png) [@bronekp](https://forum.intervals.icu/u/bronekp)\
**Post date:** [5 October 2026 17:04 UTC](https://forum.intervals.icu/t/how-to-have-tss-from-strength-workouts-calculated-by-rpe/132732/10 "2026-10-05T17:04:49Z")

</div>

Is there a way to retroactively add RPE in bulk?
