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.hrLoadorrunning.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.