# Feature Request: Normalized Power Personal Records

**URL:** <https://www.trainerroad.com/forum/t/feature-request-normalized-power-personal-records/20137>\
**Category:** TrainerRoad Software\
**Tags:** feature-request\
**Created:** [August 26, 2019, 9:52pm UTC](https://www.trainerroad.com/forum/t/feature-request-normalized-power-personal-records/20137 "2019-08-26T21:52:44Z")\
**Posts on this page:** 17\
**Page:** 1

<div class="post-metadata">

**Author:** ![John\_Barclay](https://sea2.discourse-cdn.com/trainerroad/forum/user_avatar/www.trainerroad.com/john_barclay/32/20486_2.png) [@John\_Barclay](https://www.trainerroad.com/forum/u/John_Barclay)\
**Post date:** [August 26, 2019, 9:52pm UTC](https://www.trainerroad.com/forum/t/feature-request-normalized-power-personal-records/20137/1 "2019-08-26T21:52:44Z")

</div>

I believe I heard @Nate_Pearson talk about Normalized Power Personal Records on the podcast. Any update on this or where it may be on the list of features in development?

I would love to be able to track this aspect of my power as well - particularly as I’ve been pretty happy with my NP on many of my outdoor rides this season!

---

<div class="post-metadata">

**Author:** ![Bryce](https://sea2.discourse-cdn.com/trainerroad/forum/user_avatar/www.trainerroad.com/bryce/32/72_2.png) [@Bryce](https://www.trainerroad.com/forum/u/Bryce)\
**Post date:** [August 26, 2019, 11:15pm UTC](https://www.trainerroad.com/forum/t/feature-request-normalized-power-personal-records/20137/2 "2019-08-26T23:15:04Z")

</div>

Hey @John_Barclay!

I just ran this by Jonathan and he said:

> [@](#):
>
> It’s something we have had on the list for quite some time, but because we are working on so many awesome new things right now, we have no hard timeline on when it would be available.

Sorry we don’t have anything more definitive right now 😕.

---

<div class="post-metadata">

**Author:** ![John\_Barclay](https://sea2.discourse-cdn.com/trainerroad/forum/user_avatar/www.trainerroad.com/john_barclay/32/20486_2.png) [@John\_Barclay](https://www.trainerroad.com/forum/u/John_Barclay)\
**Post date:** [August 27, 2019, 3:15am UTC](https://www.trainerroad.com/forum/t/feature-request-normalized-power-personal-records/20137/3 "2019-08-27T03:15:18Z")

</div>

Cool, thanks @Bryce!

---

<div class="post-metadata">

**Author:** ![Nate\_Pearson](https://sea2.discourse-cdn.com/trainerroad/forum/user_avatar/www.trainerroad.com/nate_pearson/32/117463_2.png) [@Nate\_Pearson](https://www.trainerroad.com/forum/u/Nate_Pearson)\
**Post date:** [August 28, 2019, 5:20pm UTC](https://www.trainerroad.com/forum/t/feature-request-normalized-power-personal-records/20137/4 "2019-08-28T17:20:18Z")

</div>

> [@John\_Barclay](#):
>
> I believe I heard @Nate talk about Normalized Power Personal Records on the podcast. Any update on this or where it may be on the list of features in development?
> 
> I would love to be able to track this aspect of my power as well - particularly as I’ve been pretty happy with my NP on many of my outdoor rides this season!

I’d like this too. It’s a much more CPU intensive calculation and that’s why it wasn’t done with the regular PRs at first.

Question: How short should we calculate NP for? Coggan says don’t show it for anything less than 20 minutes. I feel like people wouldn’t like that. I was thinking 5 minutes.

Thoughts?

---

<div class="post-metadata">

**Author:** ![mcneese.chad](https://sea2.discourse-cdn.com/trainerroad/forum/user_avatar/www.trainerroad.com/mcneese.chad/32/15056_2.png) [@mcneese.chad](https://www.trainerroad.com/forum/u/mcneese.chad)\
**Post date:** [August 28, 2019, 5:28pm UTC](https://www.trainerroad.com/forum/t/feature-request-normalized-power-personal-records/20137/5 "2019-08-28T17:28:47Z")

</div>

> [@Nate\_Pearson](#):
>
> I was thinking 5 minutes.

That seems reasonable to me.

- Maybe 15 to 30 second blocks from 5 minutes up to 20 minutes?
- Then 1 minute blocks from 1 hour to 2 hours?
- Finally 5 minutes after that?

---

<div class="post-metadata">

**Author:** ![John\_Barclay](https://sea2.discourse-cdn.com/trainerroad/forum/user_avatar/www.trainerroad.com/john_barclay/32/20486_2.png) [@John\_Barclay](https://www.trainerroad.com/forum/u/John_Barclay)\
**Post date:** [August 28, 2019, 6:27pm UTC](https://www.trainerroad.com/forum/t/feature-request-normalized-power-personal-records/20137/6 "2019-08-28T18:27:22Z")

</div>

This makes sense to me too. Certainly fewer time intervals than average power.

I would actually be fine with starting NP at 20 minutes given Dr. Coggan’s view…but I also agree that many would want to start it earlier, so starting at 5 minutes seem reasonable.

---

<div class="post-metadata">

**Author:** ![Nate\_Pearson](https://sea2.discourse-cdn.com/trainerroad/forum/user_avatar/www.trainerroad.com/nate_pearson/32/117463_2.png) [@Nate\_Pearson](https://www.trainerroad.com/forum/u/Nate_Pearson)\
**Post date:** [August 28, 2019, 6:36pm UTC](https://www.trainerroad.com/forum/t/feature-request-normalized-power-personal-records/20137/7 "2019-08-28T18:36:10Z")

</div>

Why not per-second PRs? It makes it easier for us to display them if they line up with power PRs.

---

<div class="post-metadata">

**Author:** ![John\_Barclay](https://sea2.discourse-cdn.com/trainerroad/forum/user_avatar/www.trainerroad.com/john_barclay/32/20486_2.png) [@John\_Barclay](https://www.trainerroad.com/forum/u/John_Barclay)\
**Post date:** [August 28, 2019, 6:43pm UTC](https://www.trainerroad.com/forum/t/feature-request-normalized-power-personal-records/20137/8 "2019-08-28T18:43:17Z")

</div>

Whatever is easier for you guys! My assumption that fewer time intervals would be easier to manage, but I clearly have no idea of the back-end implications.

---

<div class="post-metadata">

**Author:** ![mcneese.chad](https://sea2.discourse-cdn.com/trainerroad/forum/user_avatar/www.trainerroad.com/mcneese.chad/32/15056_2.png) [@mcneese.chad](https://www.trainerroad.com/forum/u/mcneese.chad)\
**Post date:** [August 28, 2019, 6:58pm UTC](https://www.trainerroad.com/forum/t/feature-request-normalized-power-personal-records/20137/9 "2019-08-28T18:58:35Z")

</div>

Based on the computing issue, I assumed that less would be more manageable.

But if that’s not the case, a 1:1 match on the intervals you have for the AP ones makes perfect sense.

---

<div class="post-metadata">

**Author:** ![jkc](https://avatars.discourse-cdn.com/v4/letter/j/a4c791/32.png) [@jkc](https://www.trainerroad.com/forum/u/jkc)\
**Post date:** [August 28, 2019, 7:05pm UTC](https://www.trainerroad.com/forum/t/feature-request-normalized-power-personal-records/20137/10 "2019-08-28T19:05:41Z")

</div>

Consider adding/superimposing VI?

---

<div class="post-metadata">

**Author:** ![ErickVH](https://sea2.discourse-cdn.com/trainerroad/forum/user_avatar/www.trainerroad.com/erickvh/32/15689_2.png) [@ErickVH](https://www.trainerroad.com/forum/u/ErickVH)\
**Post date:** [August 28, 2019, 7:35pm UTC](https://www.trainerroad.com/forum/t/feature-request-normalized-power-personal-records/20137/11 "2019-08-28T19:35:42Z")

</div>

You still have to compute the NP for every second on every workout so you can build your bests. That’s the expensive part.

---

<div class="post-metadata">

**Author:** ![mcneese.chad](https://sea2.discourse-cdn.com/trainerroad/forum/user_avatar/www.trainerroad.com/mcneese.chad/32/15056_2.png) [@mcneese.chad](https://www.trainerroad.com/forum/u/mcneese.chad)\
**Post date:** [August 28, 2019, 7:38pm UTC](https://www.trainerroad.com/forum/t/feature-request-normalized-power-personal-records/20137/12 "2019-08-28T19:38:00Z")

</div>

If the data is there, then let’s get it all.

As they say, “If it’s free… it’s for me!” 😛

---

<div class="post-metadata">

**Author:** ![jpowers](https://sea2.discourse-cdn.com/trainerroad/forum/user_avatar/www.trainerroad.com/jpowers/32/35855_2.png) [@jpowers](https://www.trainerroad.com/forum/u/jpowers)\
**Post date:** [August 28, 2019, 7:50pm UTC](https://www.trainerroad.com/forum/t/feature-request-normalized-power-personal-records/20137/13 "2019-08-28T19:50:53Z")

</div>

> [@Nate\_Pearson](#):
>
> How short should we calculate NP for? Coggan says don’t show it for anything less than 20 minutes. I feel like people wouldn’t like that. I was thinking 5 minutes.

For record-chart purposes, I think the main thing that limits how short you can compute NP for is the fact that for short time intervals, the 30-second smoothing applied when computing NP starts pulling NP below average power. With some simple test cases, that effect seems to become small somewhere in the vicinity of 6 minutes.

One thing you might want to consider is, instead of showing a graph of NP records, show max(AvgP, NP). That lets you have it be well-behaved at all time scales. Should be easy enough to mock up internally once you have a NP-record graph. You could even come up with your own trademarked term for it. 😉

---

<div class="post-metadata">

**Author:** ![jpowers](https://sea2.discourse-cdn.com/trainerroad/forum/user_avatar/www.trainerroad.com/jpowers/32/35855_2.png) [@jpowers](https://www.trainerroad.com/forum/u/jpowers)\
**Post date:** [August 28, 2019, 8:00pm UTC](https://www.trainerroad.com/forum/t/feature-request-normalized-power-personal-records/20137/14 "2019-08-28T20:00:24Z")

</div>

> [@ErickVH](#):
>
> You still have to compute the NP for every second on every workout so you can build your bests. That’s the expensive part.

They already do that for average power, though. Unless I’m missing something, doing it for normalized power is not significantly more expensive.

---

<div class="post-metadata">

**Author:** ![ErickVH](https://sea2.discourse-cdn.com/trainerroad/forum/user_avatar/www.trainerroad.com/erickvh/32/15689_2.png) [@ErickVH](https://www.trainerroad.com/forum/u/ErickVH)\
**Post date:** [August 28, 2019, 9:14pm UTC](https://www.trainerroad.com/forum/t/feature-request-normalized-power-personal-records/20137/15 "2019-08-28T21:14:49Z")

</div>

This is all guessing on how it’s implemented. I’m justifying their stated position.

From [medium the definition of NP](https://medium.com/critical-powers/formulas-from-training-and-racing-with-a-power-meter-2a295c661b46):

> rolling\_average = 30 second rolling average  
> rolling\_avg\_powered = rolling\_average^4  
> avg\_powered\_values = average of rolling\_avg\_powered  
> NP = avg\_powered\_values^0.25

I think if you were to do a strict ‘compute NP for every applicable bin at every second’ it would be overly expensive. You would effectively be forced to re-compute the PB chart for every second of the workout, so all of a sudden computing bests for a 3 hour workout is 11,000x more expensive.

Looking at it it _seems_ like there should be some cheats to make it cheap by not going through the whole algorithm at every point. But I would need to spend time actually implementing it or doing math to show that it’s correct. They don’t pay me enough for that.

---

<div class="post-metadata">

**Author:** ![jpowers](https://sea2.discourse-cdn.com/trainerroad/forum/user_avatar/www.trainerroad.com/jpowers/32/35855_2.png) [@jpowers](https://www.trainerroad.com/forum/u/jpowers)\
**Post date:** [August 29, 2019, 8:01pm UTC](https://www.trainerroad.com/forum/t/feature-request-normalized-power-personal-records/20137/16 "2019-08-29T20:01:21Z")

</div>

> [@ErickVH](#):
>
> I think if you were to do a strict ‘compute NP for every applicable bin at every second’ it would be overly expensive.

I’m still thinking it’s just as expensive as making the PR chart for average power.

Finding the maximum k-second average of a function is O(N), The average-power PR chart for a single ride is the k-second average for every value k. I don’t know offhand if there’s a clever way of making that cheaper than O(N^2). Regardless, TrainerRoad has some algorithm that they use, make\_ride\_pr\_chart, that computes the maximum-averages PR chart R(k) from the ride power function P(t).

Computing the NP PR chart is the same problem. It’s just applied to a different function, Q(t) = [smooth\_30\_sec( P(t) )]^4. If you apply make\_ride\_pr\_chart to Q(t) instead of P(t), you get the NP PR chart. (After you do x^0.25 on the result.)

---

<div class="post-metadata">

**Author:** ![Zissou](https://sea2.discourse-cdn.com/trainerroad/forum/user_avatar/www.trainerroad.com/zissou/32/62942_2.png) [@Zissou](https://www.trainerroad.com/forum/u/Zissou)\
**Post date:** [September 12, 2021, 3:44pm UTC](https://www.trainerroad.com/forum/t/feature-request-normalized-power-personal-records/20137/17 "2021-09-12T15:44:43Z")

</div>

Was going to ask about this but found this thread- would be a great feature for comparing race efforts on different courses (eg punchy vs flat)
