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.
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.
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.
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).
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)
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.
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.
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.
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.
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.
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
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
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.