← Back to all guides

Training Load

Running GAP Stream Load (GAP + NP/IF, 30s)

How Enduroco computes stream-level running load using distance, elevation, grade-adjusted pace, and NP-style smoothing.

February 25, 20266 min read

Running Stream TSS in Enduroco

When distance and elevation streams are available, Enduroco computes running load with a grade-aware stream method and sets source to Pace stream (GAP + NP/IF, 30s) (running.paceTssStream).

Inputs Required

  • Distance stream (required)
  • Altitude stream (optional but preferred)
  • Moving time
  • Running threshold pace

Calculation Pipeline

  1. Build segment speeds from distance deltas.
  2. Estimate segment grade as delta_elevation / delta_distance.
  3. Clamp grade to a safe range (-0.3 to +0.3 in current implementation).
  4. Convert each segment to grade-adjusted equivalent speed using an energy-cost model.
  5. Apply 30s rolling smoothing and NP-style 4th-power aggregation.
  6. Compute IF = normalized_gap_speed / threshold_pace.
  7. Compute load with the same TSS structure:

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

Why This Is Better Than Flat Average Pace

This method gives credit to uphill mechanical cost and avoids underestimating hilly runs that have slower raw pace but high physiological demand.

Edge Handling

  • Paused sections (no distance increase) are ignored.
  • If stream quality is insufficient, Enduroco falls back to non-stream running methods.

References