Normalized Power Variances TrainingPeaks v. TrainerRoad v. Strava

Does else anyone notice power differences between what TrainingPeaks, TrainerRoad, Strava, and the Wahoo/Garmin apps show for average power and normalized power for the same exact ride?

Here’s an example, same ride, but the stats per TP and the stats per TR.

I’m not sure what’s causing the variances here, but it almost always seems to happen on my race files in particular. Hopefully someone else has experienced the same and knows of a solution?

There is a difference in TSS I have noticed, power remains the same. Make sure you head unit, TR and TP are all on the same FTP number. Ive made that mistake before.

I see in your EDIT: TrainingPeaks image that the entire workout is 40:19. The duration of the actual effort looks correct in the top righthand box but I’m suspicious of that when the graph is showing the full 40:19. If you select in the graph from the beginning of the effort (presumably that spike of power and stop the selection at the end of the data does that affect the NP and AVG power?

Same FTP on all three, the TSS difference is due to the NP difference.

If I cut the start sprint from the file, the NP number is much closer to what I’m seeing on Strava and TrainingPeaks. However, if I just cut the part where I’m waiting at the start and leave in the sprint the numbers are similar.

Which brings up another point… if you through a huge sprint in a file, does the normalized power from that ride even mean anything?

It looks like two possibly unrelated issues. The average and normalized power are calculated from raw power data with no regard to your personal FTP setting. However, the IF (intensity factor) does use your FTP and the reported IF for each ride is very different. In TR your effort was very hard and in TP your effort was more tempo to sweet spot.

I’d say that’s up to you. In a crit, I’m often sprinting out of the corners, sprinting for primes, and sprinting for the finish. NP (and IF) gives me a good comparison of one race’s effort to another.

oh, I typo’d my initial response and went back and edited. I meant for you to crop the effort in TrainingPeaks… sorry. I’d still guess there is going to be a variance caused by some other reason.

Here’s the cropped version of TrainingPeaks. Basically the same as the non-cropped version.

The reason the report IF for both rides is very different is because I have 212NP of TrainingPeaks and 285NP on TrainerRoad.

It’s as if TrainerRoad is give me a huge bump in normalized power (and therefor TSS) from the start sprint, where as TrainingPeaks is ignoring this opening sprint for purposes of calculating power numbers.

I’m not sure which method is more accurate, but it’s concerning that the opening 30 seconds of the ride seems to create a nearly 50% difference in TSS.

For comparison, I just looked up a “spiky race” in both TP, TR, and Garmin Connect. Raw averages are identical, IF nearly identical, TSS close enough, and NP within 1%.

Looking at your graphs, the TR graph looks like the 285 NP is about right. It’s hard to compare to the TP graph with the smoothing slider at its current location. Sliding it to the left should show similar spikes as TR (but since only a display function it won’t affect the reported power data). Something seems amiss with the data in TP.

Normalised power is calculated from a 30s moving average over the power data. There are different ways of handing the start of the series when you don’t have 30s of data yet. That could be some of the differences but I don’t think enough to explain 285 NP vs 212 NP. Maybe something todo with zero power handling or moving or not handling?

Normalized Power Formula or Calculator by Andy Coggan

Strava uses xPower which is based on a 25 secs moving average as opposed to 30 secs for NP. The rest of the algorithm is the same. TP treats zero differently. How? I still can’t figure it out but they have acknowledge it (seen it in reference to WKO).