I think the Normalized Power algorithm used by Golden Cheetah might be wrong

1,317 views
Skip to first unread message

donrhummy

unread,
Mar 15, 2016, 12:52:17 AM3/15/16
to golden-cheetah-users
In Golden Cheetah, and interval I did calculated the Normalized Power as 297. My Garmin Edge calculated it as 305 and when I calculated it using Excel I got 307.

I used the formula:

1. Separate it into chunks of minutes (or partial minutes) where the power was relatively steady

2. Average the power for the first chunk

3. Raise the power to the 4th

4. Multiply #3 by the chunk's total time

5. Repeat for all other chunks

6. Add all the chunks' numbers from steps 2-4 together

7. Divide #6 by the total time for all the chunks combined

8. Take the 4th root of #7

For example, if you did:

10 minutes at 145 watts
20 minutes at 265 watts
30 minutes at 175 watts

Then your formular would be:

    ( ( ( 10 * 145 ^ 4 ) + ( 20 * 265 ^ 4 ) + ( 30 * 175^4 ) ) / 60 ) ^ ( 1 / 4 ) = 216

Even if my estimate was off by a few watts compared to the Garmin Edge's NP for the interval/lap, there's no way 297 is correct.

Can someone please double check it against an interval where you can hand calculate the proper value?

Mark Liversedge

unread,
Mar 15, 2016, 3:26:07 AM3/15/16
to golden-cheetah-users
Check your ride for gaps in recording or smart recording.
The NP calculation is correct in GC

Mark

Jean Div

unread,
Mar 15, 2016, 10:25:14 AM3/15/16
to golden-cheetah-users
Mmm.. dunno if it is related, but the NP in my GC is often below the Avg. Power.. which for me doesn't make sense.









I changed the recording interval in the Garmin from 'Smart' to 1s and there are no data drops that I see.

Could this be related..?

Ta,
Jean

Chris Cleeland

unread,
Mar 15, 2016, 10:32:24 AM3/15/16
to donrhummy, golden-cheetah-users
I have not looked at the code that calculates NP in GC, but your method is not the same as that defined by NP's creator:


Back when I ran WKO2 and GC side-by-side, I never found the two calculations to be out of sync, so I tend to think that GC's algorithm is as correct as WKO2's.

I would personally not trust Garmin's implementation.


--
_______________________________________________
Golden-Cheetah-Users mailing list
golden-che...@googlegroups.com
http://groups.google.com/group/golden-cheetah-users?hl=en
---
You received this message because you are subscribed to the Google Groups "golden-cheetah-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to golden-cheetah-u...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--
Chris Cleeland

donrhummy

unread,
Mar 15, 2016, 5:56:44 PM3/15/16
to golden-cheetah-users, donrh...@gmail.com
OK, I used Coggan's exact method described in your link and I get 307.1528696154. So Golden Cheetah is still off by 10 watts.
--
Chris Cleeland

Mark Liversedge

unread,
Mar 15, 2016, 6:35:22 PM3/15/16
to golden-cheetah-users, donrh...@gmail.com
On Tuesday, 15 March 2016 21:56:44 UTC, donrhummy wrote:
OK, I used Coggan's exact method described in your link and I get 307.1528696154. So Golden Cheetah is still off by 10 watts.

Highly unlikely.
Check your data.

Mark 

donrhummy

unread,
Mar 15, 2016, 8:32:54 PM3/15/16
to golden-cheetah-users, donrh...@gmail.com
Can you please post the algorithm/function (or point me to it in the code online) so I can try that directly?

Thank you.

donrhummy

unread,
Mar 15, 2016, 8:49:26 PM3/15/16
to golden-cheetah-users
Mark,

Here's the power for every second of the interval. Please try doing Coggan's method on this by hand (in excel) and see if it comes out different than in GoldenCheetah:

http://pastebin.com/kfTxh5qu

There are 184 values (recorded at 1-sec intervals). It was a 3-minute interval but I pressed the lap button 4 seconds late.


On Tuesday, March 15, 2016 at 6:35:22 PM UTC-4, Mark Liversedge wrote:

Ale Martinez

unread,
Mar 15, 2016, 10:21:47 PM3/15/16
to golden-cheetah-users, donrh...@gmail.com
El martes, 15 de marzo de 2016, 21:32:54 (UTC-3), donrhummy escribió:
Can you please post the algorithm/function (or point me to it in the code online) so I can try that directly?

Ale Martinez

unread,
Mar 15, 2016, 10:28:20 PM3/15/16
to golden-cheetah-users
El martes, 15 de marzo de 2016, 21:49:26 (UTC-3), donrhummy escribió:
Mark,

Here's the power for every second of the interval. Please try doing Coggan's method on this by hand (in excel) and see if it comes out different than in GoldenCheetah:

http://pastebin.com/kfTxh5qu

There are 184 values (recorded at 1-sec intervals). It was a 3-minute interval but I pressed the lap button 4 seconds late.
For short intervals NP has known border problems, the precise valued depends on how you deal with them and  generally it is not considered valid for these durations, AFAIK.
Reply all
Reply to author
Forward
0 new messages