How much time has been spent in each HR zone, and where to look for the breakdown.
The HR zones distribution is the time-in-zone breakdown computed across recent activities, using the athlete's sport-specific LTHR. It is a quick read on whether training is concentrated in the right intensity bands.
URL (API):
GET /api/athlete/<public_id>/hr-zones/?days=<N>&sport=<sport>.
For each Yousuli HR zone (see Glossary: zones), the endpoint returns:
Each Activity stores its own per-second HR stream (extracted by the parser). The HR zones logic walks the stream, bins each second into the appropriate zone using the athlete's sport- specific LTHR, and aggregates across activities in the window.
Activities without HR data are skipped. Activities with HR but no LTHR for the sport are also skipped (the zones cannot be computed).
The zone breakdown is sport-scoped because the athlete has a separate LTHR for bike, run, and swim:
sport=bike uses bike_hr_threshold.sport=run uses run_hr_threshold.sport=swim uses swim_hr_threshold.A typical balanced endurance program shows:
Heavily polarised programs push Z1+Z2 closer to 85% and Z3 close to zero. Heavily tempo-biased programs push Z3 higher at the cost of Z1+Z2.
Neither pattern is universally right; the right shape depends on the athlete and the phase.
HR lags power by 30 to 90 seconds. For short hard intervals, HR-based time-in-zone underestimates time at the top of the power curve because HR has not caught up yet. For long steady efforts, HR-based zones are reliable.
See also: Yousuli HR zones, Activity FIT parser metrics, Sport analytics page tour.
Still stuck? Ask us a question and we'll write up an answer.
Ask a question