← Back to all guides

Training Load

Power TSS (NP/IF, 30s)

How Enduroco computes cycling load from power streams using 30-second smoothing, Normalized Power, and Intensity Factor.

February 25, 20265 min read

Power TSS in Enduroco

When a cycling activity has usable watts data and FTP, Enduroco computes load from the power stream and sets source to Power stream (NP/IF, 30s) (cycling.powerTss).

Inputs Required

  • Cycling activity type (Ride, VirtualRide, or EBikeRide)
  • FTP (thresholds.cycling.ftp)
  • Watts stream (raw or persisted)

Calculation Steps

  1. Compute a rolling average over 30s power windows.
  2. Raise each rolling value to the 4th power.
  3. Average those 4th-power values.
  4. Take the 4th root to get Normalized Power (NP).
  5. Compute Intensity Factor (IF): IF = NP / FTP.
  6. Compute TSS:

TSS = (duration_seconds * NP * IF) / (FTP * 3600) * 100

Equivalent form:

TSS = (duration_seconds * IF^2 * 100) / 3600

Practical Read

  • 1 hour at IF = 1.0 gives about 100 TSS.
  • Same duration at lower IF gives proportionally lower load because IF is squared.

Notes

  • Enduroco stores computed power metrics (normalizedPower, intensityFactor, tssExact, tss) and recalculates against current FTP when needed.
  • If power-stream TSS is available, it becomes the canonical cycling load source.

References