← Back to all guides

Training Load

Training Load Calculations: Overview

How Enduroco calculates load from power, pace, and heart-rate inputs, and what each Load Source label means.

February 25, 20264 min read

Training Load in Enduroco

Enduroco computes activity load using the best signal available for that workout: power, pace, or heart rate.

In activity details, this appears as Load Source. That label tells you exactly which methodology produced the final load value.

Current Load Sources

  • Power stream (NP/IF, 30s): cycling.powerTss
  • Pace stream (GAP + NP/IF, 30s): running.paceTssStream
  • Pace TSS (duration + IF^2): running.paceTss
  • Cycling power threshold: cycling.powerLoad
  • Running power threshold: running.powerLoad
  • Heart rate threshold: cycling.hrLoad or running.hrLoad
  • Missing threshold / none: no valid threshold signal was available

Core Principle

All TSS-like methods combine:

  • Duration
  • Relative intensity vs threshold (IF)

For the TSS variants, Enduroco uses the standard structure:

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

This is equivalent to duration_hours * IF^2 * 100.

Why the Source Changes Between Activities

Different activities expose different data quality:

  • A ride with good watts stream can use NP/IF-based power TSS.
  • A run with distance + elevation stream can use GAP-based stream TSS.
  • If only summary metrics are available, Enduroco falls back to threshold-ratio methods.

That source-aware behavior is intentional and is similar to how major endurance platforms adapt load to available data.

References