Science · Training load & fitness

Climbing grade, VAM, and terrain demand

How Koyaro describes the climbing demand of a ride — average uphill grade, peak VAM, and the share of time and work spent on detected climbs. No invented aero or pacing physics (those wait on #104).

Last reviewed · Part of Koyaro’s public science knowledge base — the same method notes the coaching engine cites.

Athlete summary

Two rides with the same TSS can feel very different if one is flat and the other is a mountain day. Koyaro reports how much of the ride was climbing so elevation days are not understated by a flat-looking average power.

Formulas (engine)

  • Average grade — mean of positive grade samples (mean(grade) where grade > 0).
  • Max VAM — peak vertical ascent rate on sustained climbs (max(VAM stream)), metres per hour.
  • Climbing time share — climbing_seconds / duration × 100. Climbs come from the detected-climb model; if none are found, grade ≥ 2% is the fallback.
  • Climbing load share — climbing_work_kj / (climbing_work_kj + flat_rolling_work_kj) × 100.

These are descriptive. They do not change TSS, FTP, or planned watts, and they do not invent CdA / Crr (route pacing is).

What this is not

Citations

  • Catalog / domain-model §8.1.1 activity climbing / terrain demand. No extra coefficients beyond the engine’s climb detector and the formulas above.

Ready when there’s a seat.

Join the waitlist for closed beta. We’ll invite you when there’s room — then import your history and start a living plan.