Please see below my post, which might be helpful for TR programmers and users alike.
I didn’t follow what you were saying initially, but now I see what you mean. Pretty much across the board, NP is lower than AP on my intervals. Having said that, I’m not sure that’s what the AI looks at. @eddie is this something that’s been considered in the bug before?
As a general rule, NP should only be applied to efforts longer than about 20 minutes; Normalized Power can be somewhat misleading for shorter durations.
https://www.trainerroad.com/blog/normalized-power-what-it-is-and-how-to-use-it/
I don’t think that there should be any difference in how we’re seeing NP since we’re getting the raw power file.
If your Garmin has settings that are causing you to see delayed figures for NP, I’d look into changing that. Rather than starting the NP calculation at the start of the interval, it should be a constant rolling average..
Either way, I’d focus on viewing something like 3-5 second average power during the workout rather than lap NP. That should solve your issue, @Stavramid
NP is really useful for us, though, because it often shows a better picture of the effort with no downsides for sustained work as NP and AP start to converge.
Let me know if this helps!
Hi @eddie
I just threw an idea out there. It is up to you to judge if it does worth checking if your rolling average NP does the same as Garmin’s. Since the Garmin’s rolling average window does not seem to start from the moment the lap starts but includes some seconds from the rest period. Below is a screenshot from the trainerroad analysis for some 2min intervals at 365W Normalised but around 380W average. The prescribed interval intensity was 365W but I decided to use the lap NP instead. Indeed my FTP did not drop following the completion of the workout. I will keep testing that and check my Garmin settings if possible.
Thanks
I’m with above. You should not be using NP for short intervals - it’s misleading, and it’s how it’s calculated. It’s based on a 30 second rolling-average that goes into the calculation so for the first 30s you’re including values that were from your prior (rest?) interval
By design on a steady state interval with a rest interval before it will start low and then creep up towards average. On a shorter interval, it’s too heavily influenced by the power from the prior interval. And, on very steady outdoor intervals, it can end up lower than your actual average even for 20 mins +
If you’re constantly using NP for your intervals, there’s a chance your consistently missing power targets a little low.
It is a bit like you are arguing with the equation. Look at your lap 12. This is what NP is not good for short intervals.
I agree with the others here. When doing your workout, average power (something around a 5-second average or less is probably ideal) is better for live viewing.
It looks like maybe you went from viewing lap NP to non-lap NP, which helps, but not as much as switching over to average power.
Let me know if I’m getting this right or if I’m missing something. ![]()
That was my whole point. When I wasn’t using NP and using the average power of each interval on my Garmin Watch, my FTP would drop after finishing the workout. My hypothesis, after realising that TR uses the NP over certain durations to judge your future FTP, is that the rolling average of the NP calculation affects the future FTP detection.
@eddie @konaSS Please read my argument carefully, it seems you are misunderstanding it. If I use the whole interval average power or 5-second average then my FTP drops after completion of the workout, especially for workouts with short intervals.
I have fixed my issue, by monitoring my NP on my Garmin watch when I ride outside and making sure that it matches the prescribed interval power.
I agree nobody should be using NP for intervals but I thought TR did. Hence the workaround I found which seems to be working, is to monitor the NP of the interval on Garmin.
I can see what you’re getting at here, but I’m still not sure that I’d recommend following NP when doing outdoor workouts.
Simply hitting the power targets is your best bet for following the prescription properly.
I can see how NP might seem valuable here, though, for situations where you’re “behind” on power and need to pick it up in order to achieve the interval target in NP, but following lap AP would also work the same way.
Ultimately, if you’re hitting the power targets with your average power, you’re in a good place, but you’re not going to have a situation where your NP ends up being lower than your AP for an interval..
Agree with Eddie, I don’t think your solution is the right one.
Following NP, especially on shorter steady state intervals, will have you missing power targets for your intervals. Probably going high, not low. So, you’re actually putting out more watts than the target, which is probably why you’re seeing a higher FTP prediction.
Where NP has a place for me is outdoors on more variable efforts, especially if there are downhills or areas where I’m descending and not pedaling at all. But you should be avoiding scenarios like this for your intervals anyways.
What I’d be doing - still use AP for steady state stuff, but rating workouts appropriately. I also don’t worry about the prediction at all. I focus on if my AIFTP / FTP is right, and then executing the workouts and how they feel.
I posted above a screenshot in which my NP is lower for the intervals than my average.
You’re right. It is possible – especially with shorter intervals. Some of the figures in the image you shared are pretty strange, though.
A 5:19 interval with a NP of 185 and AP of 50.. I’m not sure how that happened.. Could you share that activity with me?
I could probably make that happen if I tried. Do a harder 30 - 60 second effort or thereabouts. Maybe not all-out, would need to play around with the power. (Or, You just have a really high NP coming out of the prior interval because of the 30s trailing calculation). Then, really noodle along for the rest of it. Coasting down hill zero power , barely effort on the pedals, something like that. NP Stays higher, AP drops like a stone.
Yes , big effort and than noodle around will cause that.
Again, yes, I guess it is possible if most of that 5:19 was spent coasting..
I think what you are seeing here is correlation not causation. If you are trying to execute a (non-erg) workout using NP, you are generally going to under-shoot the prescribed power. This is because, generally, over long enough intervals, NP will be higher than AP due to natural power variation. As to why this helps your FTP prediction is anyone’s guess. One possible explanation is that you are over-trained from the perspective of TR AI, and it wants you to train less hard to avoid predicted FTP decline. But given that there’s a known bug for FTP prediction for outdoor activities, who knows. Your observation may be valid, but I doubt it’s the root cause that TR is looking for.
Frankly, I think that FTP prediction is a just a bad idea and the product would be better off without it, and TR shouldn’t be investing their resources on a last cause, but that’s just a personal opinion …
Yeah, I think you have a point there: NP should be >= AP.
Lap 6 shows a huge discrepancy, but it is only 6 seconds long. Technically, NP is not even defined for a time period less than 30 seconds so it is actually wrong to even show a value there. It seems likely that TR is pre-filling the rolling window with zeroes and this is pulling the NP value down massively.
The same effect causes the smaller error on lap 4. The NP for the first 30 seconds is pulled down by the zeroes enough to pull down the Lap NP below AP.
The technically correct approach is not to give a lap NP value for laps less than 30 seconds. For laps of at least 30 seconds the lap NP should be the average of the NP values after the first 30 seconds, i.e. once the window has filled. This stops the pre-fill zeroes from contributing to the calculation.
I think this is technically a TR UI bug. Maybe it also impacts the NP graphs that TR displays. But I doubt that it matters all that much. ![]()
In short, the OP’s proposed solution may (or may not) be hacking TR AI, but I think you are short changing your workouts and fitness as NP for short intervals is basically a garbage number.

