Hello,
Hello,
The zones are probably half-open ranges, i.e. 120-140 means 120 <= hr < 140. This is actually a reasonable way to do it, since technically nothing forces hr to be an integer. It could be 139.5, which would go nowhere if ranges were 120-139 and 140-154.
The zones are probably half-open ranges, i.e. 120-140 means 120 <= hr < 140. This is actually a reasonable way to do it, since technically nothing forces hr to be an integer. It could be 139.5, which would go nowhere if ranges were 120-139 and 140-154
Yeah this is similar to how tax brackets work. The max value for every range is the same as the min value for the next, and ranges are typically defined as being exclusive of of their min values but inclusive of their max values, except for the first range. (Garmin's HR zones are the opposite, where they're inclusive of their min values but exclusive of their max values, except for the final range.)
OP can verify this by adding HR Zone as a datafield during an activity, which shows HR Zone to one decimal place (e.g. 1.6, 2.5).
I think they'll find that if Zone 3 is set to 120 - 139 and and Zone 4 is set to 139-154, and their HR is exactly 139, then their HR Zone datafield will display 4.0. This would confirm that 139 is actually zone 4, and not zone 3.
In general, I think fractional zones, as displayed on the watch and in the Connect website, are determined as follows:
For any given heart rate h, your fractional zone z equals x + (h - zone_x_min) / (zone_x_max - zone_x_min), where x is the number of a zone that h falls within (zone_x_min <= h <= zone_x_max)
e.g. Suppose Z1 is 120-140 and Z2 is 140-160:
- if your HR is 130, then your fractional zone is 1 + (130 - 120) / (Z1_max - Z1_min) = (130 -120) / (140-120) = 1 + 10 / 20 = 1 + 0.5 = 1.5 (this makes sense as 130 is is exactly halfway between 120 and 140)
- if your HR is 140, then there's 2 ways to calculate your fractional zone, both of which have the same result:
(based on z1)
1 + (140 - Z1_min) / (Z1_max - Z1_min) = 1 + (140 - 130) / (140 - 130) = 1 + 1 = 2
(based on z2)
2 + (140 - Z2_min) / (Z2_max - Z2_min) = 2 + (140 - 140) / (160 - 140) = 2 + 0 = 2
Ofc this doesn't work for heart rates above your configured max, since there's no additional upper limit beyond the configured max. As far as I can tell, anything equal to or above max HR is interpreted as 6.0. I checked with an activity I ran when I was really out of shape, so actual my max HR exceeded my configured max: the max HR by % of max was 103%, but the max hr by zone was 6.0.