← All toolsHeart Rate Zone Calculator

Heart Rate Zone Calculator for Runners

Calculate your five heart rate training zones using Max HR percentage, the Karvonen (heart rate reserve) method, or lactate-threshold HR (LTHR). Enter your numbers for instant, personalised zones.

Choose a method
bpm
Estimate: 220 − your age. Or use an actual max from a hard race or test.
How the three methods compare

Max HR percentage is the simplest method — each zone is a fixed percentage of your maximum heart rate. It is quick to set up but assumes a standard fitness profile; actual zone boundaries vary between individuals.

Karvonen (heart rate reserve) accounts for resting HR, which correlates with aerobic fitness. By anchoring zones to both ends of your HR range it tends to set zone boundaries slightly higher for well-trained runners with a low resting HR.

LTHR-based zones (Friel) are the most individualised. The lactate threshold is a real physiological marker — the intensity above which lactate accumulates — so zones derived from it reflect your aerobic fitness directly rather than age-predicted estimates. Run a 30-minute time trial at max effort and use your average HR for the final 20 minutes as your LTHR.

Why static heart rate zones need recalibrating
The problem

Heart rate zones set from a single max HR test or age formula are a snapshot. As your fitness improves your resting HR drops, your stroke volume increases, and the pace you run at any given heart rate rises — which means your zones are now conservative. Do a hard training block and the zones you set in January may be 5–10 bpm too low by March.

There’s also the daily noise: heat adds 5–10 bpm, altitude adds more, fatigue and illness shift your heart rate upward. A fixed zone boundary can’t see any of that.

How Vertical does it differently

Vertical derives your threshold continuously from your Garmin run data — no manual re-testing required. Each session’s effort is adjusted for heat, fatigue, and terrain so “Zone 2” stays genuinely aerobic, not accidentally tempo.

Try Vertical free →