Forecast AI Beta: How is it working?

Great points. In the execution of a training plan, your TP may reach a point where you’ve run out of time to keep it moving upwards and the focus of your training become more towards higher intensity. In this situation, HIE moves higher but TP remains the same. Other systems accomodate this by having workouts that have different %FTP targets. With Xert, you can simply do the same workout and it will scale automatically since they are a function of TP and HIE (and PP too) so you don’t need to be guessing which one you can complete and how much more each workout needs to add. You should be able to complete them if their difficulty is within reason and your signature is up-to-date. You can also gauge by the amount of low, high and peak XSS each workout has. These should enable you to have a manageable progressive overload towards your goal. If your high intensity training load isn’t increasing, then you’ve plateaued, for example.

Simply looking at the structure of a workout and its changes over a plan won’t necessarily reveal this. It boils down to the amount of low, high and peak XSS strain you accumulate in an exponentially weighted moving average (“rolling” average more conceptually) and whether these are moving up, sideways or even downwards.

1 Like

Top athletes reach plateaus which are defined by the number of hours they have, how long it takes for them to recover and the particular focus they have in their training. These upper limits of training are what they and their coaches look to fine tune with different strategies and protocols so that can eke out those small gains that create a difference between them and their next competitor. For example, if they find ways to improve recovery, it allows them to add more training time and this gives them an added edge.

So yes, it is absolutely true that you can only increase your fitness with a static number of hours to a maximum otherwise you’d keep getting stronger and stronger. There must be an upper limit.

As an interesting aside, the Norwegian method now made famous by the Ingebrigsten brothers (see involves a lot of threshold training which is carefully monitored with frequent lactate testing. In principle, the lactate testing allows them to butt up against the very limits of exercise that they can recover from. Going a bit too hard makes them unable to recover in time for the next bout of training and thus reduces their highest possible training volume they can achieve. Going too easy and they lose the opportunity to build up just a bit more that they can tolerate.

I think it’s going great. I’ve learned a couple things. As usual Xert somehow always challenges my preconceived notions. I question the protocol. Then I get results.

A couple things:

  1. I’m afraid to change anything. But it also makes me afraid to go for breakthrough efforts. I did one yesterday anyway, and luckily because it was < 1hr I hit the xss target (ish) and everything seems to be fine for moving forward without a change. I guess that’s the good thing about high xss training. :smiley:
  2. The reason I opted for the effort even though I was scheduled for endurance was two-fold. One. I was a little bored of the same 2:15 3x13 ~lt1 interval ride. :smiley: Two. I was/am concerned that because my decay is set to none that my threshold will actually not track against the forecast, and the only way for me to really know is to throw a few haymakers in now and then (off plan) to test it out.

Therefore the fear. That I’ll see the dreaded red dot, I’ll ‘re-forecast’ and my beautiful plan will be ruined. haha. I asked before, but I’m not sure if I asked in the right way. Does my defined decay value play a factor in the forecast values, aka on the training tab?

The only thing I can think I’d want is some explanation for the plan it makes, whether there are phases, what the goal is, why it is deciding to program what it does. In broad terms. That is asking a lot I’m sure, but would be useful to me. Maybe there’s too much secret in that sauce. Like I’d love for it to say, you’re doing a 20m target so the plan is optimized for X, or something like that. Or, you have a very low HIE training load so this plan slowly ramps up over time, while maintaining/slightly increasing low training load. anyway.

I think it’s been great. So far so good.

Surely the upper limit for this has genetic variance along with enormous variance for diet, sleep, recovery, combinatory strength training etc?

Ie more than just ‘no u can’t break 5wkg on 10 hours computer says no’?

Much of the variance in improvements as a result of the volume and intensity of the work you do on the bike is encapsulated already in your fitness signature, training loads and training responsiveness which compares your historical performance with your training volumes in 3 dimensions. There is also your Recovery Demands, which is user settable which increases/decreases the amount of recovery each user needs after training.

Outside influences can be expected to affect your Recovery Demands such as diet, sleep, overall health, injuries which will slow down your ability to progressively improve as well as cap the highest fitness you can achieve, assuming they are chronic.

Other factors such as strength training or other exercises either affect your training loads directly (I include my weight training in my overall plan, for example, that improves my cycling performance) or affect your recoverability from training indirectly, i.e. Recovery Demands. You can get into the finer details of things such as how much swimming affects your cycling fitness, for example and/or how much it affects your recovery demands. These are details that you can assess day-to-day. But the “elephant in the room” is your cycling training and its affect on you both on improving your performance and requiring recovery. If we can that relatively accurate, the others can now be folded in without creating confounds where we throw up out hands and exclaim that fitness and training are too complex to be mathematically modeled and can only be optimized by an experienced coach. Such is the sentiment often with the older models still in use where athletes have no option but to hire a coach and collect other data like HR data, HRV, RPE, etc. etc. in order to augment the information from the older methods since they fail to account for things effectively.

With Xert, we aim to get as much information that is available in the data into a format that is actionable - fitness, performance, fatigue, responsiveness - and present it in a way that you can then use to optimize a result. Variations like when you don’t get a good nights sleep affect your training which we can then include into your data and adapt accordingly. This is all part of the process of improvement.

Ultimately, there is a limit to what any athlete can achieve on 10 hours a week. You might be able to beat what Xert says you can reach but this is more likely due to not having a good robust history to base the prediction on or intentionally not settings things up correctly. There will be variance but generally there aren’t short cuts to some magical gains that are associated with training information captured already… at least not legal ones. :smile:

1 Like

Awesome Eric.

We’re going to lay out the details of how all this comes together once the dust settles. It’s still a bit of an evolving puzzle and we continue to make improvements and discoveries but unfortunately they are not always visible to users. It is still beta per se and the feedback we’ve been getting from users has been immensely valuable in helping us identify areas that need attention. As you might imagine, the scope of what the system needs to be able to handle is unfathomably broad. To address this, we see a big difference between expanding the scope by exception handling vs improving the encapsulation of the nature of work, strain and fitness gains at the core level. We almost always opt for the latter than the former even it means a lot more work for us. We’re in it for the long haul…

So sit tight for a bit while we work through a few more things. Promise you you’ll the get details you’re looking for.


Awesome responses @xertedbrain!

I play with the planner/xert daily (and sink a lot of time into them), I am seeing improvements weekly and sometimes multiple times a week with the system.

I would say that its getting there - I still think the red dot is being triggered by magenta days weeks to months out that maybe really shouldn’t be triggering the adapt button yet as its so far out it doesn’t matter still (I.E the adapt forecast should focus on getting you through a week session or 7-day and not care about the rest of the plan until its “relevant”)

The system does take a lot of time to learn, there is no way around it but it is unlocking so much potential and knowledge about yourself. I honestly had no idea how taxing/tiring some of my rides were until recently following my progression.

The biggest question I have right now for @xertedbrain is when will we see beta “race” as I train to race and would like to see how this forecasting compares.

everyone else a quick tip - forecasting a “event” just gets you ready for the event and forecasting “goal” gets you in a position for as “quick” you can be for a race or event.


Thanks for your detailed reply Armando.

So as someone who fed / designed the model, could you give us a bit of insight on what the model is programmed to see as “realistic” growth for an athlete?

Is it based upon all of the data available to the engine about YOU, ais it about the average person in the system, or is it based upon a preconceived model of where someone should hit their “genetic limit”?

As an example; I offer the model a 5 year training history of between 5 and 10 hours a week with various peaks.

If I offer it 28 hours a wek for 4 months, it thinks that putting 10w on my 4minute power is unreasonable.

Is that based on the fact that I’ve never shown this rate of progression in the past? Is it based on the average xert user taking 6 months to put 10 watts on their 4 minute power on 28 hours a week?

Is the engine able to understand that I have a 500w for 5 minutes and multiple 5min efforts over 475 in my last 24 months of training history (on never more than about 8-10 hours a week) or does it ignore this?

Or is this because the model predicts a rate of fitness decay that means those results are irrelevant because they weren’t in the last 3 weeks?

Secondly, and if it’s ok to ask, is there a reason the model doesn’t increase the amount of intensity in your program as you increase your aims in Forecast AI? e.g. I ask it to put me together a program to hit 475 for 4 minutes, and so it realises I will need to work harder in the X hours I give it and so the proportion of that time spent at higher intensity is increased?

If not, is there a reason why you / the xert model opposes the general coaching consensus that as the amount of time you have compresses, the proportion that has to be spent at higher intensity to gain effective fitness increases.

Sorry for the long message and I appreciate your time.

1 Like

Let’s unpack this a bit…

“Realistic growth” is based a number of settings, some that have been established by our analysis and corroborated with available science. For example, the low, high and peak time constants play in important role in how fast your can grow and each training load depends on these values.

The system will establish the pattern of individual low/high/peak training loads against the changes in your fitness signature variables. This is training responsiveness.

At the moment, this is based on a projected/expected growth of your low, high and peak training loads to achieve that goal. The updated page in the wizard makes this a bit clearer (hope to roll this out very soon):

You can see that the reason why this is considered amber is the growth in High Intensity Energy from 29kj to 31.1kj. That’s stretching the base assumptions of growth and so a warning is shown. Running the Forecast AI will apply your current availabilities and training load increases, recovery demands, polarization level, etc. Forecast AI takes it all into account to see if this is achievable. This initial page doesn’t apply all these details (otherwise it already knows your plan).

This information is used only insofar as it maps your training load changes with these results, i.e. informs the training load to performance training responsiveness coefficients. Unless there is faultly, misrepresentations in your data, improved performance comes with a combination of higher low/high/peak training loads. Performance improvements are rarely ever “free” (i.e. dissociated with increased training volumes) unless there is something else going on outside what’s in your power data.

It does this by applying progressive overload to your low/high/peak training loads individually but assigned together in the form of Focus and Specificity for training prescription. These are the increases to the amount of intensity in each impulse-response model. If you view the Forecast Chart and click on Low, High or Peak in the legend on the bottom, you’ll see how each change/grow throughout the plan.

We are working on improving the estimates to each combination’s workout duration so that we can better fit them into each athlete’s availability. So rather than a coach saying today is VO2max day and you need to do 5x5’s, XFAI says you need to apply this much low, this much high, and this much peak to continue to improve towards your goal and these are in proportion to what (edit: they) your training loads are at that time. We fit the workout to you rather than you having to do a workout you may not be ready for or that may be too long or too short for your schedule. The method will be far superior than any coach will be able to assess without using Xert. It’s all guess work at the moment, using experience they have to try and get it right. Lots of feedback and trail-and-error is the how coaches work today. It can work and some are exceptional but won’t be anything like what Xert is able to do.


Maybe you can make use of the huge workout library in order to get better XSS/hour estimates for the various low/high/peak XSS combinations? The difficulty of the workouts is also readily available (great feature of Xert), so you could also scale the XSS/hour estimates with the training load of the user. This would be congruent with the “increase intensity instead of hours” on one hand and the commonly provided advice to not choose too difficult of a workout when sitting at low training loads on the other hand.
Just as an idea…

Xert could probably easily improve the estimated durations shown in the calendar by doing as you suggest.

However, I suspect it will be harder to perfectly utilize this in the training plan optimization because it will increase the complexity of the optimization. For instance, the constraint on total hours in a week will be hard to implement if it cannot be easily expressed as the sum of XSS for the days.

What they could easily do is to allow for say 70 XSS/hour if you have 60 min available, while reducing to 60 XSS/hour if you have 120 min available. The curve could easily be created to fit the user or be more generic. (I suspect a new rider will find it harder to sustain power for longer durations, so it could make sense to adjust this slightly to training load or similar.)

A problem with this approach is that it assumes that all low XSS will give the same adaptions and give the same recovery needs. So if you ride 60 min at TP or the XSS equivalent duration in zone 2, the recovery needs and the adaptions will be the same.


I was probably not being clear enough and that’s my fault.

Xert can see like 3 years of my training history. It therefore has evidence that I have, in the past, done efforts at x or y power for a certain time. My intuitive understanding is that the model would take this into consideration when planning a program for me.

But the algorithm seems to just say ‘no, too high’. The problem I can’t get past is not that I will or won’t hit 460w or how realistic that is, it’s that the engine REFUSES to build me a training program for it, but will only build me a training program that is less ambitious.

So anyway, I went out and manually fixed it (10mins AVG @ 400w in 30/15 ronnestads)


But this has only made my problem worse :joy:. Forecast AI now thinks that NO progress is possible in 4 months. I literally can’t move the slider low enough!

It’s because it’s estimating you’ll need more hours. If you slide the Max Weekly Slider, it should allow you to continue to improve your fitness signature and training loads. Eventually though, everyone will plateau and this is mostly probably gated by your available time to train, the amount of time it takes to recover and the specific mix of low, high, peak you are training.

Two additional thoughts from my side.

  • He just got a breakthrough that raised his TP with 34 W and HIE with 3 kJ. It is not unlikely that he can get additional breakthroughs if he tries a few more time. If so, he is actually fitter than he thinks and the road to his goal is shorter.
  • He has probably used a too low fitness signature for some time given the big breakthrough he got. If so, the XSS generated before the breakthrough was probably artificially high and the training load is the same.

Armando - I understand that it is telling me I need more hours / xss to improve. I can see the (!) next to time.

WHY is it telling me I need more hours, when I have DEMONSTRATED that I do not need more hours / xss?

Just because someone else needs 20h a week to get to 3wkg, does not mean everyone does?

Let me try another way of expressing it.

I was doing what xert thought was about a 70xss load. I just got a breakthrough that means that it was more like a 60 xss load.

If I offer forecast ai a 90xss load, this is now a 30% increase in load.

Why can’t someone get fitter by increasing their load by 30%?

Why can’t someone get fitter with the same “load”?

Load is normalised to fitness. 60xss at 300w to 60xss at 320w are not the same thing. Your body understands novel stimulus. You are putting more strain on the body by doing 30/15s at 400w than 350w. It might be that just doing the same amount of 30/15s at 400w is enough novel stimulus to improve your fitness, you may not need to do twice as many 30/15s. You might be able to continue improving output without changing normalised load for YEARS. There are people on TrainerRoad who have just done the “low volume” (3-5hrs a week) plan for 5 years and improved every single year. I have improved year on year with extraordinarily little change in normalised load.

Does that make any more sense?

The method is predicated on a valid starting signature and valid historical data. While the algorithms are pretty robust, a lot data isn’t and finding a middle ground that works across a many different athletes habits, signatures and training responsiveness within a scope of possible bad data is a pretty big challenge. Hence, we provide a bunch of tools for you to help manage this.

Durations are only estimates at the moment. The key value is XSS. You can decide to put 100xss or 200xss into an hour of high intensity training. You can also decide to ride easy with a coffee stop for 60xss and take much more than an hour.

We’re working on a better way to estimate training time but it will always be a situation where the athlete will be able to choose and some might do it in 1 hour and another in 3.

You wiil get fitter and fitter until you don’t. If this weren’t true, we’d all just keep training 3 hours a week and eventually race like MVDP. It’s an a priori fact that you can’t get infinitely fitter with the same training load. You might say there is a very long time constant for some adaptations. While that might be true and you might see year-to-year variation on the same load, it’s more likely due to other out-of-band factors than the actual amount of training load. Some adaptations take a long time to develop but then again our time constant is 60 days for low intensity which means it can take a 2-3 years to build it up to get to 5 star Training Status if you’re starting from an untrained state.

You wiil get fitter and fitter until you don’t.


Could I ask then why XERT predicts when you need to increase your volume (rather than doing similar volume at higher load) by looking at the average person’s response to training rather than your response to training?

more likely due to out of band factors than training load

I’m just totally confused by this. 4 years of improvement with almost no increase in time trained or intensity distribution - and it’s just down to nothing to do with the fact that I am doing similar volume but now at a higher load?

I think what @xertedbrain is saying on volume (if you define in hours) is that it’s not directly used. XSS and training load are what drive the model, and for communication purposes that’s translated back to hours - am unsure whether that’s based on average intensity or personal intensity, but am not sure it matters - look at the XSS level and ramp, and if you figure you can do that in fewer hours, go for it. It is important in the initial plan set up though, I agree.

I think the whole ‘personal’ vs ‘average’ when it comes to responsiveness may be somewhere in between…, in your account settings there are parameters for training response which are personalized, but presumably have a degree of averaging / balancing against the population (think statistical credibility). I don’t work for Xert and don’t know, but it’s my impression from what I’ve read.

The accuracy of that for you will depend on quality of data, and one of the important things is presumably how frequently you have had breakthroughs in the past. That’s important so your signature is up to date (it decays unless you change the default) which in turn affects historic load calculations on one side (overstates training load a bit). And on the other side, with infrequent breakthroughs I expect it has infrequent personal data points from which to infer your response to training. E.g. you could be getting a lot fitter but if you never fully express it, the system won’t know. I have no idea of your training history or data, just mentioning a possibility. Maybe post your PMC (unless you’d rather keep private) to get a sense of some of those things. There may be other considerations from the Xert team too

Am not quite clear what this means - do you improve each year on constant hours and constant training load? Or constant hours but increasing training load. Per above, Xert models the latter ie XSS and training load.

Or by load do you mean absolute level eg your 100 TL was based off a 350w threshold one year, but a 380w threshold another year, in the same hours and intensity distribution. If so, very keen to know how you did that :blush: and actually, there is an interesting question of how / why fitness signatures track with training load (at least for me and presumably many), given training load is a relative measure…

I’m not certain if the Forecast AI is working well for long Grand Fondo rides. I registered to a long ride end of June and set it up here entering my time availability. The event itself is 270km long, has 5000m elevation gain, takes 11-12h of riding and Xert expects 800 XSS.

Last year I often rode 300-500km a week and during peaks more than 2000km in a month.
I do 4+ hours tours every week, 6-8 hours at least once a month (more during summer). Also towards summer, my rides contain more and more elevation gain with longer tempo/threshold efforts. I also ride on Zwift, where I do most of my VO2 / sprint workouts.

Back to Forecast AI: I configured Tuesdays for 4+ hour rides, but almost all Tuesdays are Rest and preceeded by a high intensity ~100 XSS on Monday. Only the last Tuesday before the event is a longer 400 XSS ride while all other long/intense days are below ~200. Hence I slightly doubt the plan as it doesn’t really ramp up the “per ride XSS” at all. Like just ride 2-3 hours, then once 6 hours to be fit for 11-12 hour ride.