How Wahoo Calculates Your Heart Rate Zones (THR, not HRmax)

Sven Ahrens
threshold heart rateLTHRWahooheart rate zonesSYSTM

Every other major brand anchors your zones to maximum heart rate. Wahoo anchors them to threshold heart rate (THR), the highest heart rate you can hold for a steady effort of 30 to 75 minutes. For a new account it estimates THR by taking a Tanaka max heart rate from your age and using 88% of it.

That is a better model with a worse starting point, and both halves are worth understanding.

Why threshold is the better anchor

Maximum heart rate is a ceiling. It is largely genetic, it falls with age regardless of training, and it tells you nothing about fitness. Two riders with the same maximum and completely different engines get identical zones on a Polar or a Suunto.

Threshold heart rate moves with your training. Get fitter and you can hold a higher heart rate for an hour, so the anchor rises and every zone follows it. That is the whole argument for LTHR zones, and it is why the serious training platforms use threshold rather than maximum.

Your numbers

Average HR of the final 20 min of a 30-min solo time trial.

Everything computes instantly in your browser. Nothing is stored or sent anywhere.

Lactate-threshold HR

165bpm

cycling LTHR

ZoneRangeWhat it trains
Z1

Active Recovery

≤ 132 bpm

Z2

Endurance

133–147 bpm

Z3

Tempo

148–153 bpm

Z4

Threshold

154–163 bpm

Z5a

VO₂max

164–168 bpm

Z5b

Anaerobic Capacity

169–175 bpm

Z5c

Neuromuscular

≥ 176 bpm

Z1 · Active Recovery. Recovery spins; flushes the legs. RPE 1–2, very easy.

Z2 · Endurance. Aerobic base and fat metabolism. RPE 3–4, all-day pace.

Z3 · Tempo. Aerobic endurance, 'sweet' steady work. RPE 5–6, comfortably hard.

Z4 · Threshold. Lactate threshold; sustainable hard. RPE 7–8, 20–60 min limit.

Z5a · VO₂max. Maximal aerobic power. RPE 9, 3–8 min efforts.

Z5b · Anaerobic Capacity. Anaerobic capacity, short and sharp. RPE 9–10, 30s–3min.

Z5c · Neuromuscular. Sprint power and neuromuscular drive. RPE 10, all-out.

  • LTHR-based zones are more individual than %HRmax because they anchor to your actual threshold, not an age estimate. Cycling and running LTHR differ, so test each sport separately.
  • Field test: warm up, then ride or run a hard 30-minute solo time trial. Your LTHR is the average heart rate of the final 20 minutes (Friel's protocol).

A PDF of your personalized results, with a QR code to reopen them anytime.

Enter a tested threshold heart rate and you get the zone boundaries Wahoo is trying to approximate. LTHR vs %HRmax zones covers why the two systems disagree about where Zone 2 sits, and how to find your lactate threshold covers the test.

Why the default THR is a guess stacked on a guess

Wahoo's default is 88% of Tanaka's 208 − 0.7 × age. For a 40-year-old that is 0.88 × 180, so about 158 bpm.

Two separate estimates sit inside that number. The age formula carries an individual error of roughly ±10 to 12 bpm. Then the 88% ratio is itself a population average, and the real figure varies widely between athletes: a well-trained endurance athlete often sits higher, an untrained one lower. Stack the two and the default THR can be well over ten beats away from your real one.

Wahoo says as much. Its own documentation calls the age-based calculation "at best a gross generalization" and pushes you towards a fitness assessment, specifically the Full Frontal or Half Monty tests in SYSTM.

How to fix it

Test your threshold. A 30-minute time trial is the standard field protocol: warm up, ride or run as hard as you can hold for 30 minutes, and take your average heart rate over the final 20 minutes. That average is a good working LTHR. The SYSTM assessments do the same job with more structure if you are already in that ecosystem.

Enter it in the Wahoo app. Open your zones, set the THR value, auto-calculate the zones from it, and adjust the lower bound of individual zones if you want to.

Re-test it. Unlike HRmax, threshold moves. Two or three times a year is enough to keep the anchor honest, and the trend itself is a fitness measurement.

FAQ

What does Wahoo use to calculate heart rate zones? Threshold heart rate, not maximum heart rate. Zones are auto-calculated from the THR value in your profile.

What is Wahoo's default threshold heart rate? 88% of a Tanaka age-based maximum, 208 − 0.7 × age. For a 40-year-old that is about 158 bpm.

What is THR on a Wahoo? Threshold heart rate, the maximum heart rate you can sustain for a steady effort of roughly 30 to 75 minutes.

How do I change my heart rate zones on Wahoo? In the Wahoo app, edit the zone set, set your own THR, auto-calculate from it, then adjust individual zone floors if needed.

Is threshold heart rate better than max heart rate for zones? For anything lasting 20 minutes or more, yes. Threshold rises with fitness. Maximum falls with age and says nothing about how trained you are.

Other brands

  • Garmin uses Tanaka HRmax and auto-raises it from peaks.
  • COROS offers a threshold model too, and uses it for all its analysis.
  • Polar and Suunto default to 220 − age.
  • Apple Watch publishes no formula at all.

Sources

Cover photo by Glory Cycles, CC BY 2.0, via Wikimedia Commons.

Blog

From zones to a plan

Turn your zones into a daily plan

Coach Kalle is an AI endurance and strength coach that turns your zones into daily workouts and adapts as you go.

Train with Coach Kalle →