eFTP giving wrong results

I reduced the decay rate of eFTP but didn’t regenerate all the achievements. I think I had better restore the original quicker decay. That eFTP value is from a long time ago. It will take a few hours to recompute everything.

Yes, 293W FTP is from 2017, and I have been well below those numbers in last 2 seasons.
Anything to do on my side to trigger the regeneration?

It has regenerated yours but it still has you on 274w even with the higher decay. I suggest adding a “Set eFTP” calendar event say 1st Nov 2018 to a reasonable number. The decay side of this is very hit and miss.

1 Like

Hi, just started using this site a bit - very impressive!

I was trying to understand the eFTP and saw some behavior that I couldn’t understand. My history had a run of eFTP updates that showed up in mid 2019 each a week apart showing what I guess were intended as eFTP PRs?

In order from oldest to newest ride over 3 weeks mid 2019:

  • 39min@255-> eFTP 261 (seems reasonable if you assume FTP is more like ~40 min power for lots of people)
  • 56min@238 -> eFTP 261 (again, if we assume demonstrated ~40 min efforts are FTP, this seems like a reasonable enough value - maybe with some decay time, it just happened to tie the prior effort on your power model so it called it a new eFTP PR?)
  • 41min@227 -> eFTP 261 (this I can’t explain at all… a week later, I don’t think FTP would have decayed that much nor should 41 mins at 227 = 261 FTP)

Is there anything on the site that elaborates on how the modeling is done in terms of the shape of the assumed power-duration curve, and can you elaborate on how the eFTP decay is done? (I’m sure you may have answered this on the TR forum somewhere so please feel free to refer me there as well!)

Something else I haven’t been able to understand is that the first eFTP update came on Dec 2017 -

FTP +0 to 266w from 7m at 223w

I wish :slight_smile: Is this just a matter of it eventually working its way back further on your server and recalculating?

I’ll drop some money in the paypal as loading and syncing 25k miles of rides was surely a lot of processing time somewhere… I think this site will likely be the end of beating my head against golden cheetah’s tragic user interface.

Basically the system is a bit buggy when loading in old activities in chunks. Notice that all those “FTP ups” go to 261w … Thats because they are “old” achievements that have been rendered invalid by older rides bumping FTP up more as they sync. The bug is that the achievement isn’t removed.

I will explain more tonight (GMT+2), gotta work now!

Thats about it. As it gets chunks of history more recent “FTP up” achievements are invalidated by new “older” ones that result in a higher eFTP. Thats why they say “+0w” and the power doesn’t make sense. If you go to one of those rides and click “Reset” it is re-analysed and the bogus FTP up achievement removed. Its an outstanding bug that this isn’t done automatically. I did that to this one:

https://intervals.icu/activities/2453879228
(I need to get back to the French Alps again!)

The algorithm uses a max effort of at least 3 minutes (configurable, if your anaerobic power is good make it longer like 5 mins) to place you on one of many pre-defined power curves. The curve parameters (CP, W’, pMax) are uses to extrapolate you 60m power for FTP. The curves were modelled from real power curve data from FastfitnessTips using the first 20 mins of each set. There is a steep drop off after 20mins because not many people do max efforts longer than that so that data was not used.

It is effectively a generalisation of the 95% of 20m power rule of thumb to any point on the assumed power curve.

The decay is a bit hit and miss. If you reduce your training load for 2 weeks compared to the previous 2 weeks your eFTP decays slowly.

If you know it has dropped much more you can add a calendar event of category “Set eFTP” to reset it.

Screen Shot 2020-04-22 at 17.12.08

1 Like

Thanks David - that all makes sense - I did notice that time cutoff as well. I also noticed that many of the eFTP PRs I saw were based on short power, despite my focus being more on long intervals / sustained power, so I may adjust that for myself.

While the eFTP is not something I’d trust to calibrate training levels on, I see it as an interesting way to just remind and motivate yourself “hey, you haven’t really put in a solid all-out effort anywhere lately…” - could give yourself a good excuse to skip a structured session and go hammer a segment or something :slight_smile:

1 Like

Hi @david.

First off, I just wanted to thank you for the hard work on the platform, it’s really something special. I’m astounded by how often I want to do something really specific that I assume isn’t possible and find out it’s fully supported and works exactly how I’d hoped it would.

I’d like to ask for some clarity on this:

As I couldn’t find the “Reset” action for my rides in the menus
image

The reason I’m asking is that I was riding temporarily on a miscalculated bike, which bumped up my eFTP hugely. I’ve gone back and fixed the power output from those rides (again, thanks! Totally thought that would have been impossible) so the ride eFTP is now correct, but the Achievement is still on he page and my eFTP after that ride is still artificially inflated.

If adding calendar events after each eFTP reset is the best option, happy to do that, but was excited to see there might be an option to recalculate it within each ride event.

Tx. I have just deployed a big update to the fitness and eFTP side of things that should have sorted this out.

1 Like

Just took a look and all of the eFTP’s updates now look like they track correctly against the new adjusted power outputs. Thanks for the update and for letting me know!

Any changelog/info on these changes?

Basically eFTP is now available for any sport with power. It seems to work ok for running. Also the fitness and fatigue stuff is now stored along with the wellness data for every day so it is available through the API. Before it was stored in activities and planned workouts but gaps and future fitness were calculated by client side code. Going to do a post about this when I know its all working properly. @app4g You were looking for this …

GET https://intervals.icu/api/v1/athlete/2049151/wellness?oldest=2021-12-20&newest=2021-12-30
[
    {
        "id": "2021-12-20",
        "ctl": 63.5493,
        "atl": 48.4702,
        "ctlLoad": 0.0,
        "atlLoad": 0.0,
        "sportInfo": [
            {
                "type": "Ride",
                "eftp": 283.59927
            }
        ],
4 Likes

Uber Cool! I was also calculating client-side when there are gaps (of workouts) in the middle of the week and I wasn’t able to get the ATL/CTL numbers for the entire 7 days.

This code basically means that the entire 7 days is being calculated so I won’t have to do any calc within the app for gaps? I also had to put in the default as 7 and 42. (I’m not entirely sure if the API has these info. Need to re-check)

        if dayAtl == 0 {
          let newAtl = prevAtl + (0.0 - prevAtl)/7
          let newCtl = prevCtl + (0.0 - prevCtl)/42
          let newForm = newCtl - newAtl
        }

Yes you can just use the wellness data which should not have any gaps. I haven’t made the Intervals.icu web app use this yet but will do very soon. It also goes forward into the future, up to 93 days or more if you have workouts planned further into the future.

2 Likes

I came here looking for info on this, as I was happy and surprised to see a new ftp detected badge on a recent activity, and that some other historical activities have had these added in the past few days.

1 Like

@david For some reason, after the update, my eFTP estimate from may jumped massively. I think it is no longer ignoring the May4th ride power data.

I have fixed this. Tx for the report. For everyone else with this problem your eFTP will be fixed next time an activity loads or you edit a planned workout etc…

@david You’re the best, thanks David!

SN: how do you geht these labeled ranges into the Fitness chart?

You just right click on a day on your calendar and add notes with a date range.

2 Likes