Normalised Watts / Weighted Average Power

@david for the site, may I know which method of NP(R) or Weighted Average Power are you using?

I noticed that you didn’t use the name NP(R) but instead used Normalised Watts (Golden Cheetah uses the term isoPower) instead. :+1:

I was reading up from this link


[Picture courtesy of link above]

The key difference i think is the number of samples for the rolling data. Are you using 25s or 30s?

Average Cadence - Exclude Zero
Average Power - Does it include or exclude zero? The /interval Data page shows as “exclude zero”. What’s the effect average power when coasting?

I’m also getting confused over NP(R) and Av. Power given this article. I’ve always been looking at NP(R) during my outdoor rides on my Garmin as a means to see how “hard” i’m riding. I nearly never look at Ave. Power (However, I think I’m OK since my outdoor rides are > 20min anyways)

thanks!

Intervals.icu uses “Normalized Power” like Training Peaks. I can’t call it that because its trademarked so went with “Normalized Watts” instead.

So it is 30s for the moving average. The moving average is calculated for the whole watts stream (interpolated to 1 second ticks) but only “moving time” is included in the total for the final step:

watts = (int)Math.floor(Math.pow(tot / n, 0.25) + 0.5)

Based my calc on this post on SlowTwitch.

2 Likes

Thank you. I have this along with a couple others and I’m also following the nomenclature from intervals

  ["Normalised Watt Power",     "NW Power"      ],    // 9
  ["Intensity Power Factor",    "Intensity"     ],    // 10
  ["Load",                      "Load"          ],    // 11
  ["Power Variability",         "Variability"   ],    // 12
  ["Power Efficiency",          "Efficiency"    ],    // 13
  ["Power/HR",                  "Pwr/Hr"        ],    // 14

Still not sure how exactly to implement Lap NP tho. Does it also omit the first 30data points for the moving average?

Tx

For lap NP I calculate the 30s series for the whole activity and cut out the part I need for the lap.

So, basically calculating the NP for each second (after the initial 30s) and then just grabbing the NP number at the Lap End.

eg:
Lap at Sec:66: NP: 130
Lap at Sec:75: NP: 131

if this is it, then It’s really not complicated at all vs. what i was thinking of having to only start calculating after the initial 30s of the lap, just have to grab the last NP at that point in time and store it into my lap array.

:+1: