1,157 heart rate samples from a 2:01:06 finish in Bengaluru — mapped to all 16 segments, decomposed into zones, drift, and recovery. The story the splits alone can’t tell.
Heart rate zones are defined as percentages of a reference max of 190 bpm (one above the observed race peak). In this race, two zones dominate: Z4 Threshold and Z5 Anaerobic.
The pattern is striking: every running segment from Run 3 onwards landed in Z5. Stations are mixed, with Sled Pull, Row, and Wall Balls coming in below the race average.
Overall drift is nearly invisible (+0.6 bpm). But isolating just running segments reveals the real fatigue picture: a +4.2 bpm rise from early to late runs. Stations were almost identical across halves.
Most transitions see heart rate rise into the next run — the run effort exceeds what the station was demanding at its end. The exception, Sandbag → Run 8, was the only true recovery moment of the race.
| # | Segment | Duration | Avg | Peak | Low | % max | Zone |
|---|---|---|---|---|---|---|---|
| 01 | Run 1~1 km | 7:01 | 154 | 168 | 101 | 81% | Z4 Threshold |
| 02 | SkiErg1000 m | 5:11 | — | — | — | — | — |
| 03 | Run 2~1 km | 6:40 | 166 | 168 | 162 | 88% | Z4 Threshold |
| 04 | Sled Push50 m | 5:26 | 170 | 182 | 150 | 89% | Z4 Threshold |
| 05 | Run 3~1 km | 7:33 | 178 | 189 | 144 | 94% | Z5 Anaerobic |
| 06 | Sled Pull50 m | 10:01 | 158 | 172 | 141 | 83% | Z4 Threshold |
| 07 | Run 4~1 km | 6:53 | 176 | 183 | 169 | 93% | Z5 Anaerobic |
| 08 | Burpee Broad Jump80 m | 8:37 | 162 | 171 | 148 | 85% | Z4 Threshold |
| 09 | Run 5~1 km | 6:45 | 172 | 175 | 151 | 90% | Z5 Anaerobic |
| 10 | Row1000 m | 5:49 | 159 | 165 | 151 | 83% | Z4 Threshold |
| 11 | Run 6~1 km | 5:44 | 170 | 179 | 149 | 90% | Z4 Threshold |
| 12 | Farmers Carry200 m | 2:29 | 167 | 176 | 163 | 88% | Z4 Threshold |
| 13 | Run 7~1 km | 5:22 | 178 | 183 | 156 | 94% | Z5 Anaerobic |
| 14 | Sandbag Lunges100 m | 8:03 | 170 | 181 | 157 | 89% | Z4 Threshold |
| 15 | Run 8~1 km | 8:02 | 171 | 181 | 143 | 90% | Z4 Threshold |
| 16 | Wall Balls100 reps | 11:28 | 161 | 179 | 143 | 85% | Z4 Threshold |
A closer look at each workout station’s heart rate signature — what the trace reveals about physiological cost and pacing.
The SkiErg has no recorded heart rate data in this dataset — a ~11-minute sensor gap covered the SkiErg and the start of Run 2, likely due to skin contact on the upper-body pulling motion. From the split time (5:11), this was a controlled effort. A typical Z4 effort would be expected based on surrounding context.
Sled Push averaged 170 bpm with a peak of 182 — squarely in threshold and pushing toward anaerobic at the end. At 5:26 for 50 metres, this was a continuous near-max effort with brief restarts. The lasting cost shows up in the next run: Run 3 hit the race's overall peak of 189 bpm.
Sled Pull was the longest single segment at 10:01 but had a deceptively low average HR of 158 bpm — among the lowest of any segment. The technical, stop-start nature of pulling the sled lets HR come down between efforts. But the followup is brutal: the transition into Run 4 produced a 21 bpm spike (157 → 178), the biggest cardiovascular jump of the race.
Burpee Broad Jumps averaged 162 bpm — surprisingly lower than the surrounding runs. The combination of mandatory deep breaths (burpees force them) and forward locomotion produces a different HR signature than continuous-grind stations. Peak hit 171.
The 1000m Row sat at 159 bpm average — the second-lowest of any station after Sled Pull. Rowing's biomechanical advantage (large muscle groups, controlled rhythm) translates to better HR efficiency. Peak 165, very narrow range.
The shortest station at 2:29 ran at 167 bpm average / 176 peak. Heart rate sits at race-average — it's heavy but brief, not enough time to build above threshold. The carry's grip and trunk demand is the cost; cardiovascular cost is moderate.
Sandbag Lunges averaged 170 bpm with a peak of 181. Despite being primarily lower-body strength, the static eccentric loading combined with sustained time-under-tension keeps HR high. Interestingly, the transition into Run 8 showed a 21 bpm drop (167 → 146) — the only true recovery transition of the race.
Wall Balls — the final station and a 11:28 grind — averaged 161 bpm with peaks up to 179. Despite being the closer, the average HR is lower than mid-race stations because the smart strategy is small-set wave throws with brief rests. This is paced effort, not all-out.
For a competitive sub-2-hour finish, expect to average around 167 bpm and spend 90%+ of the race at threshold or above (Z4 + Z5). In this race, the average was 167 bpm across 2 hours 1 minute, with 92.3% of total time at or above 80% of max HR.
In this race, the running segments produced higher average heart rates than the strength stations. The single highest segment average was Run 3 and Run 7, both at 178 bpm. Among workout stations, Sled Push (170 bpm avg) and Sandbag Lunges (170 bpm avg) the highest.
Sled Pull, despite being a heavy strength station, ended with the lowest finishing heart rate at 157 bpm — the slow, technical nature of pulling the sled the full 50 metres in stages allows HR to come down between efforts. It's a deceptive 'recovery' though: the heart rate jumped 21 bpm into the following Run 4.
In this race: Z1 Recovery 0.1%, Z2 Aerobic 0.0%, Z3 Tempo 7.6%, Z4 Threshold 51.7%, Z5 Anaerobic 40.6%. More than 92% of the race was spent at threshold or anaerobic effort — HYROX is functionally a 2-hour threshold race.
Yes, but unevenly. In this race, the second-half average heart rate was only +0.6 bpm higher than the first half overall — but when you isolate just the running segments, drift was +4.2 bpm (168.7 → 172.8). Stations stayed nearly flat. Translation: the legs were paying the cumulative cost on the runs.
The roxzone — the time spent moving between segments — averaged ~41 seconds per transition in this race (10:12 total across 15 transitions). Heart rate behaviour in transitions was bidirectional: 5 of 6 measured transitions saw HR rise into the next run rather than drop, because the run effort exceeds what the previous station was demanding by the end.
Heart rate was captured on an Apple Watch during a Mixed Cardio workout session, exported as JSON via the Health Auto Export iOS app. 1,157 samples were recorded during the 2:01:06 race window at a median interval of 5 seconds. Segment durations are taken from the official HYROX race results. The 10:12 of total roxzone time is distributed equally as ~41 seconds between each of the 15 segment transitions for charting.
Heart rate was captured on an Apple Watch (Mixed Cardio workout, started 09:50:10 IST, ended 11:51:38 IST on 12 April 2026), exported via the Health Auto Export iOS app as JSON. 1,157 heart-rate samples were recorded across the race window at a median interval of 5 seconds.
Segment durations are taken directly from the official HYROX results (bib 95039, HYROX Bengaluru 2026, Sunday division). The 10:12 of roxzone (transition) time is distributed equally as ~41 seconds between each of the 15 segment transitions for charting.
One ~11-minute window during the SkiErg and early Run 2 has no HR samples (a watch sensor gap) — this region is shown as a break in the line rather than interpolated. Heart rate zones use a reference max of 190 bpm (one bpm above the observed race peak of 189). Time in zone is summed only between consecutive samples less than 60 seconds apart, to avoid mis-attributing the sensor gap.