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
- Not a “climbing FTP” or VAM-based fitness score.
- Not durability after kJ of work (Fatigued Critical Power and W′ after prior work).
Citations
- Catalog / domain-model §8.1.1 activity climbing / terrain demand. No extra coefficients beyond the engine’s climb detector and the formulas above.