# Calculate Fatigue and From based on eFTP?

**URL:** <https://forum.intervals.icu/t/calculate-fatigue-and-from-based-on-eftp/93692>\
**Category:** Training\
**Created:** [12 March 2025 09:41 UTC](https://forum.intervals.icu/t/calculate-fatigue-and-from-based-on-eftp/93692 "2025-03-12T09:41:08Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![JASON\_C\_WILLIAMS](https://forum.intervals.icu/user_avatar/forum.intervals.icu/jason_c_williams/32/27668_2.png) [@JASON\_C\_WILLIAMS](https://forum.intervals.icu/u/JASON_C_WILLIAMS)\
**Post date:** [12 March 2025 09:41 UTC](https://forum.intervals.icu/t/calculate-fatigue-and-from-based-on-eftp/93692/1 "2025-03-12T09:41:08Z")

</div>

Can intervals do the math of my fatigue and form based on my eFTP instead of my stated FTP?

It occurred to me last night that my FTP to start the season might not be what it left off at last October but im also not going to take an ftp test every week.

---

<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:** [12 March 2025 16:51 UTC](https://forum.intervals.icu/t/calculate-fatigue-and-from-based-on-eftp/93692/2 "2025-03-12T16:51:42Z")

</div>

You probably can do that yourself with a custom field which overwrites original load  
See there for more details

> [@Allow users to choose alternatives to TSS](https://forum.intervals.icu/t/allow-users-to-choose-alternatives-to-tss/92351/17):
>
> You can actually update the default activity training load from a custom activity field script. Return your custom value but also update the value on the activity: activity.icu\_training\_load = ... Then your custom calc will automatically show up on all the usual charts.

---

<div class="post-metadata">

**Author:** ![PiotrekNL](https://forum.intervals.icu/user_avatar/forum.intervals.icu/piotreknl/32/52092_2.png) [@PiotrekNL](https://forum.intervals.icu/u/PiotrekNL)\
**Post date:** [13 March 2025 13:51 UTC](https://forum.intervals.icu/t/calculate-fatigue-and-from-based-on-eftp/93692/3 "2025-03-13T13:51:38Z")

</div>

@R2Tom,

I think the point is that those should automatically be calculated based on eFTP instead of FTP (as an option, not for everyone of course). It’s similar to the request from another thread (“use eFTP as FTP by default”).  
This could be solved with a script but I can’t find how to access eFTP for a given day from the API. Are you aware how to do it by any chance?

---

<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:** [13 March 2025 14:26 UTC](https://forum.intervals.icu/t/calculate-fatigue-and-from-based-on-eftp/93692/4 "2025-03-13T14:26:13Z")

</div>

The eFTP is

```auto
activity.icu_rolling_ftp

```

Based on that, it should be possible to implement the TSS formula with eFTP instead of FTP:

```auto
{
eFTPLoad = (activity.moving_time * activity.icu_weighted_avg_watts * activity.icu_intensity) / (3600 * activity.icu_rolling_ftp);
console.log(eFTPLoad );
//activity.icu_training_load = eFTPLoad;
}

```

Uncomment the last line to overwrite the Load Value.

---

<div class="post-metadata">

**Author:** ![PiotrekNL](https://forum.intervals.icu/user_avatar/forum.intervals.icu/piotreknl/32/52092_2.png) [@PiotrekNL](https://forum.intervals.icu/u/PiotrekNL)\
**Post date:** [13 March 2025 15:25 UTC](https://forum.intervals.icu/t/calculate-fatigue-and-from-based-on-eftp/93692/5 "2025-03-13T15:25:31Z")

</div>

For me it doesn’t work.  
activity.icu\_rolling\_ftp

shows ftp I’ve manually set, not eftp calculated from the power curve.

---

<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:** [13 March 2025 15:36 UTC](https://forum.intervals.icu/t/calculate-fatigue-and-from-based-on-eftp/93692/6 "2025-03-13T15:36:17Z")

</div>

> [@PiotrekNL](#):
>
> not eftp calculated from the power curve.

In the power curve you find the highest value for this season.

It is the value from the fitness chart from the date of that activity.

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

It will slightly decrease with time and doing less than before, so I think that was the intention to use this value, as it would reflect the FTP value better as the “old” FTP value from summer.

Edit: If you want to get your season eFTP value, that is probably only possible with analyzing all activities of the season and getting the highest rolling\_ftp value from these. This is not possible inside of an activity, so you must use the external API and write a script externally.

---

<div class="post-metadata">

**Author:** ![PiotrekNL](https://forum.intervals.icu/user_avatar/forum.intervals.icu/piotreknl/32/52092_2.png) [@PiotrekNL](https://forum.intervals.icu/u/PiotrekNL)\
**Post date:** [13 March 2025 16:39 UTC](https://forum.intervals.icu/t/calculate-fatigue-and-from-based-on-eftp/93692/7 "2025-03-13T16:39:47Z")

</div>

Ok, thank you. I’ve assumed eFTP is something calculated from the power curve (either all-time or recent X days).

> It will slightly decrease with time and doing less than before, so I think that was the intention to use this value, as it would reflect the FTP value better as the “old” FTP value from summer.

Thanks. I’ve notice it on my gf’s account. She is fighting a small injury and rides less so the value is 2W smaller than the one she got from the 25 minutes effort around 2 weeks ago. This smaller value was the same as the one I’ve set FTP on her account hence my confusion.

Do we know what algorithm is used for eFTP decreasing over time? It seems to work reasonably well but it would be nice to know how it works exactly.

---

<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:** [14 March 2025 06:20 UTC](https://forum.intervals.icu/t/calculate-fatigue-and-from-based-on-eftp/93692/8 "2025-03-14T06:20:10Z")

</div>

> [@PiotrekNL](#):
>
> I’ve assumed eFTP is something calculated from the power curve (either all-time or recent X days).

I have to correct myself here a bit. On the power page, of course, the value is determined using the selected power curve. I assumed the season curve, which is also the maximum value of the season during an activity. If it is a recent best value, it will be the same as the best rolling value of the season.

> [@PiotrekNL](#):
>
> Do we know what algorithm is used for eFTP decreasing over time? It seems to work reasonably well but it would be nice to know how it works exactly.

I don’t know the exact formula. All I know is that it decreases with reduced training load.
