Cycling Normalized Power Calculator

Paste your per-second power samples and optional FTP to compute Normalized Power.

Result

How it is calculated

The power samples are read as one value per second, separated by spaces, commas, semicolons or new lines; entries that are not numbers are skipped. The tool then takes a 30-second rolling average, which starts once 30 samples exist. Each rolling average is raised to the 4th power, these are averaged, and the 4th root is taken: NP = (mean(P₃₀⁴))^(1/4), in watts. Because of the 4th power, hard surges weigh more than easy riding.

It also reports the average power, VI = NP ÷ average and, if FTP (watts) is greater than zero, IF = NP ÷ FTP; without FTP the IF shows a dash. If fewer than 30 samples are pasted, the window shrinks to what you gave, so NP simply equals the average. Watts are rounded to whole numbers, VI and IF to two decimals.

Worked example

Forty seconds of data: 20 s at 100 W, then 20 s at 300 W, with FTP 250 W. The average is (20 × 100 + 20 × 300) ÷ 40 = 200 W. The 30 s rolling average exists for 11 positions, rising from 166.7 W to 233.3 W in steps of 6.67 W. Averaging their 4th powers gives about 1,707,018,272, and the 4th root is 203 W. VI = 203.26 ÷ 200 = 1.02, and IF = 203.26 ÷ 250 = 0.81.

Try this example →

Common mistakes

  • Pasting samples that are not one per second, such as a 4-second or per-minute export. The 30-sample window then spans a different time and NP is not comparable with the usual value.
  • Pasting fewer than 30 samples and expecting NP to differ from the average. With a short list the tool uses one window over everything, so NP equals the average and VI is 1.00.
  • Leaving out the zeros during coasting or stops. They belong in the data; removing them raises the average and understates the real variability.
  • Entering FTP in the wrong unit, such as watts per kilogram. FTP must be in watts, otherwise IF comes out far from the usual range.
  • Typos or text mixed into the list. Anything that is not a number is silently ignored, so the sample count shown should match the number of seconds you pasted.

Sources

About this calculator

The cycling Normalized Power calculator processes per-second power-meter data through the algorithm Dr. Andrew Coggan developed: it takes a 30-second rolling average of the power samples, raises each rolling average to the 4th power, averages those values, then takes the 4th root to get NP — a number that better reflects the true physiological cost of a variable-effort ride than a simple average watts figure does.

Alongside NP, the calculator reports the Variability Index (VI = NP ÷ average power, where a number close to 1.0 indicates a steady, even effort) and, if you supply your Functional Threshold Power, the Intensity Factor (IF = NP ÷ FTP), which shows what fraction of your threshold the ride represented. Cyclists and coaches using training platforms like TrainingPeaks or WKO rely on NP, VI, and IF together to quantify training stress and compare the intensity of rides with very different power profiles — a steady time trial versus a surging criterium, for instance.

Was this helpful?

You can pick up to 3 reactions.

Comments (1)

  • Editorial team

    The default is only 60 seconds, so the 30-second rolling average has just 31 positions and the 1.01 intensity factor rests on very little data. Paste a full ride with one sample per second instead. Which head unit or app do you export from, and does it record every second?

Popular calculators

All Calculators