Steps to reproduce
- Set up custom HR zones for Run with the IDs Z1, Z2, ZX, Z3, ZY, Z4, Z5 (80/20 style, based on LTHR).
- Create a planned run with a step that uses a zone range with ZX-Z3:
- RPE 5-6 Easy 30m CZZX-CZZ3 HR
- See the HR printed wrong
- This HR is synced to device also.
Expected vs. actual behaviour
- Expected: the 30m step targets the span from the bottom of ZX to the top of Z3.
- Actual: the target is a single value, 156–156 bpm, which looks like the boundary between ZX and Z3. Same failure with ZX at the upper end of a range (e.g.
CZZ2-CZZX). - Ranges between numeric IDs work fine:
CZZ2-CZZ3 HRgives the correct span. - Renaming the zone ID from ZX to Z23 makes the range work. So the parser seems to fail when a range endpoint has a non-numeric ID.
Device & browser
- Intervals.icu web
Screenshots

