Three-dimensional impulse-response model

We have started implementing some of the ideas in this paper (Xert uses a similar model):

Nothing is live yet but I like the first results. You get a trace with the relative contribution of each energy system (aerobic, glycolytic and PCr) as well as a strain measure that can be used to calculate a TSS like score (strain score = SS) for the activity. SS can be further broken down by energy system.


(none of that is live yet)

What I hope this will bring to Intervals.icu:

  • Per activity breakdown of aerobic, glycolytic and PCr contribution for better monitoring of what you were actually training (better than time in zones?)
  • SS (also per energy system) as an alternative to TSS for training load
  • Per energy system ā€œfitness over timeā€ scores so you can make sure you train all the energy systems ahead of goal events

Challenges:

  • What power to use for p_max, cp, w_prime etc.. Currently testing with power curves for last 84 days and the eFTP algorithm. This is quite robust and probably good for most people on Intervals.icu.
  • This won’t work if you have done nothing for the last couple of weeks. Likely need a way to add a ā€œresetā€ date to the calendar and power data before then is not used for the model. So you can start over.
  • We could use captured FTP and W’prime but people don’t keep those up to date.

@TommyGl (the Intervals.icu part time data scientist!) Has been helping a lot with this work.

56 Likes

I don’t think I understood a single word of how it can eventually work, but on paper it is super cool!!! Thanks @david !!!

1 Like

Hi David,

this looks like a really impressive feature and I honestly can’t wait to see it live in action! The detailed breakdown by energy system sounds super valuable—not just for better monitoring but also for smarter training decisions overall. It already covers some of the ground from my feature request about (Metabolic Profile, FatMax, and fuel utilization), which makes me even more excited.

Keep up the great work! :slight_smile:

2 Likes

Super interesting. Can’t wait to test it. If you need a tester, let me know. /Dev and Professional tester (not a cyclist, unfortunately)

1 Like

Linked to this, can we look to improve the eFTP mechanics? Currently it requires a max effort above a set duration, however there are much better systems that don’t require a single max effort out there (i.e. TrainerRoad AI FTP detection, and Join). Suunto also calculates your aerobic and anaerobic thresholds using HRV with MoveSense.

This would in turn improve a lot else in intervals.icu as various calcs can be based on the eFTP.

I like the idea of a confidence level for each of the metrics, which shows how well they can be trusted. What I don’t like is doing training specifically for the purpose of updating a data model (hence why I don’t do FTP tests).

3 Likes

That is possible but significant scope creep. Building a power model from submax efforts is a tricky thing to try and do. It might also be harder to do for the general case (someone doing random rides, outdoors) compared to prescribing indoor training rides and seeing how well they get done. Would need to do quite a bit of research.

I have no idea how the other platforms do it tbh. I guess if you have a seed, you can look at training volume generally to make some rough assumptions and track hr response? In theory you don’t need a power curve, just a lactate turnpoint (ideally 2)

Definitely need a power curve (pMax, cp and W’) for this work though.

1 Like

From the paper, Xert uses Morton’s 3-parameter model. In my experience, this model produces reasonable estimates over time. I like the system and think it has some usefulness, so I did a spreadsheet implementation.

Workout planning

Workout analysis.

Also, there is another paper describing MPA. I believe the MPA equation is slightly difference than in the newer Xert paper.
Xert MPA paper

Are you planning to implement Bannister’s models for each strain score component? That’s the main benefit of this system I think. Golden Cheetah’s Banister model is a great example.

6 Likes

I’m not sure I’d agree with trying to build model CP/W` using submaximal efforts anyway. And I think there’s a conflation here.

You can plot a power curve that shows your ā€˜best efforts’ over a recent time frame, which may or may not have been a maximal effort to show your current relationship between power and duration. This isn’t necessarily the same as using the data points to model CP and W`. Models of Critical Power (CP) and W′ assume that the power inputs used to fit the model are maximal efforts. I’m pretty sure this applies to the Omni-Domain PDM which models across exercise domains as well.

Very interested to see how the new impulse model is rolled out!

Agreed and I’m not suggesting modelling a full power curve using sub-maximal efforts per-se… however the ā€˜standard’ ways of working described above assume maximal efforts which is quite problematic for a lot of athletes (particularly triathletes and time trialists) - intervals.icu does not know if an effort is maximal or not. There are also way to many athletes (and coaches) focussing on keeping these models up to date rather than training effectively. It’s the classic GIGO problem.

Everything described above is good enough for its purpose - basically emulating the Xert approach (although I feel that is over-complex for most athletes). My point, which probably belongs elsewhere, is that it is much more useful to have up-to-date values for your threshold (ideally both of them), as these are used primarily to prescribe training intensity. eFTP is severely lacking compared to AI FTP and Join eFTP in this respect.

1 Like

I have to disagree here.

The beauty of Xert is that it’s basically math. Pmax is an upper limit on power. MPA is a derived quantity based on W’bal (power between CP and Pmax). Modeled MMP is a failure envelope and sets a boundary on a domain. CP is a fuzzy boundary, but a boundary, nonetheless.

I find that Xerts system describes performance better than TR or WKO.

10 Likes

This paragraph is too complex for most athletes.

4 Likes

Yes that is currently the plan. First up is just to make the three strain components visible per cycling activity (or workout). Need to solve the ā€œhow to the the power modelā€ side of this for that.

2 Likes

Impressive @david !! You’re a magician!

Glad to see you bringing some of Xert’s scientific methods to intervals.icu! The paper is the first step towards publishing our methods and builds upon what’s already been published in the literature. The paper is currently in pre-print form but it’s going to go through the scientific peer-review process for publication in a journal. For those Xert users out there, Xert doesn’t do exactly what’s in the paper since we’ve extended the Morton 3 parameter model and there are also improvements we’ve made to Banister’s Impulse-Response Model in order to better reflect how athletes are affected by chronic/acute training strain.

Btw, we are continuing to fund scientific research in these areas, which eventually makes into platforms like intervals.icu as papers get released. With the continued financial support from users, we will be making more investments into the science for all to benefit from.

Keep up the great work on intervals.icu!

Armando Mastracci
Founder
Xert Breakthrough Training

28 Likes

I guess there will be pros and cons to using eCP or ā€˜hard coded’ values in settings. Depending on whether a) people keep the eCP model well fed or b) regularly perform more formal testing.

Blockquote
Yes that is currently the plan. First up is just to make the three strain components visible per cycling activity (or workout). Need to solve the ā€œhow to the the power modelā€ side of this for that.

Golden Cheetah does this, correct? Use the morton 3 parameter model, search for maximal efforts 7 - 20min or whatever in the last 90 (or X) days. Maybe search for all-time 1sec power for Pmax. Default Wprime to 25 kj as a good starting point. Obviously the user can override these.

I agree finding the three metrics programmatically is a challenge, but it’s fairly easy for a technical user to do themselves*, so I’d suggest rolling it out has an optional ā€œDIYā€ feature.

  • Pmax is easy. CP just set to FTP as a start, or see what rolling a 90day morton 3param solves. (sounds hard, but GoldenCheetah has done it in their open source).
    Wprime you need to look at a recent ride where you went all-out (shortish strava KOM attempt for example) and adjust the wprime kj for that activity until the balance touches zero at the end of the effort. Not as hard as it sounds.

Thanks for publishing the paper! Hopefully we can get it to work nicely for everyone :slight_smile:

Intervals.icu does this with some tweaks already. The eFTP algorithm finds cp first using the best long enough max effort to pick from a large set of pre-modelled curves. Then it looks for a shorter effort to guess W’. Best 1s power is used for pMax. This mostly works quite well.

4 Likes

That sounds perfect. Great work! I love this product by the way and am looking forward to the new features!

1 Like

Don’t you want to wait for this paper to actually be published? I mean what if it has blaring defects your not catching but reviewers do.

2 Likes