Free tool

Build heart-rate zones from Karvonen or LTHR.

Calculate heart-rate training zones using the two methods that actually have research behind them - Karvonen Heart Rate Reserve (max HR + resting HR) and Joe Friel LTHR (lactate threshold heart rate). Pick the method that matches the data you have, get a 5- or 7-zone table with training intent and session duration per zone. Free, no signup, runs in your browser.

Save your training to a real log

Free · no signup · your file stays on your device

Z1Recovery95-114 bpm Z2Endurance115-135 bpm Z3Tempo136-155 bpm Z4Threshold156-170 bpm Z5VO2 max171-190 bpm
148 bpm
Method

Heart-rate zones

ZoneNameRangeIntentDuration
Z1Active Recovery123 - 136 bpmEasy spin, recovery jogs20-90 min
Z2Endurance136 - 150 bpmAerobic base - conversational pace60-240 min
Z3Tempo150 - 163 bpmComfortably hard, marathon effort20-60 min
Z4Threshold163 - 177 bpmLactate threshold work8-40 min in intervals
Z5VO2max177 - 190 bpmMaximal aerobic - interval work3-8 min per rep

How it works

  1. 1

    Pick a method

    Karvonen if you know max HR and resting HR. LTHR if you have a recent 30-minute time-trial average for the final 20 minutes.

  2. 2

    Enter your numbers

    Real measurements only - predicted max HR from age formulas will produce zones that mislead you.

  3. 3

    Read the zone table

    Each zone has an HR range, a training intent, and a typical session duration.

  4. 4

    Program them on your device

    Garmin, Wahoo, Coros, Polar, and Suunto all support custom HR zones. Loading them in once removes guesswork.

The math

Karvonen method

HRR = MaxHR − RestingHR
TargetHR = RestingHR + HRR × intensity%

HRR (Heart Rate Reserve) is the working range of your heart. A zone like "Z2: 60-70% HRR" means TargetHR low = Rest + 0.60 × HRR, high = Rest + 0.70 × HRR.

Worked example

Max HR 190, Resting HR 55. HRR = 135. Z2 lower bound = 55 + 0.60 × 135 = 136 bpm. Z2 upper bound = 55 + 0.70 × 135 = 150 bpm. So conversational endurance work sits at 136-150 bpm for this athlete.

LTHR method (Friel zones)

Z1: < 85% LTHR
Z2: 85 - 89%
Z3: 90 - 94%
Z4: 95 - 99%
Z5a: 100 - 102%
Z5b: 103 - 106%
Z5c: > 106%

LTHR-based zones are anchored at threshold, which is closer to where most quality work happens than max HR. Z5a is at threshold, Z5b is VO2max, Z5c is anaerobic.

Worked example

LTHR 170. Z2 = 0.85 × 170 to 0.89 × 170 = 145-151 bpm. Z5a (at threshold) = 170-173 bpm. The bands are tight near threshold because that's where small differences in physiology matter most.

Why two systems exist

Karvonen is older, simpler, and works for athletes who only know max and resting HR. Friel's LTHR system was designed for endurance athletes with access to a threshold test and is more directly tied to the physiology that limits sustained performance.

How to use this in training

  • Use HR to cap your easy days. The single biggest fitness mistake amateurs make is running easy days too hard. HR-cap Z2 forces honest pacing.
  • Use HR as a secondary metric for quality work. Power on the bike, pace on the run - these are the primary controls. HR is the lagging indicator that confirms intensity.
  • Track resting HR daily. A 7-day rolling resting HR is a free, reliable indicator of recovery state. A 5+ bpm overnight jump signals you should consider a recovery day.
  • Cross-check your max HR. If you regularly see HR numbers above your "max" in races, your max is higher than you think. Update it.
  • Re-test LTHR seasonally. Major training-block start, mid-season, late-season - three time trials a year are enough to keep zones honest.

Common mistakes & misconceptions

  • Using 220 − age as max HR

    The formula has a ±15 bpm spread for any given age. Test, don't predict.

  • Assuming HR drift means you're in the wrong zone

    After 2-3 hours of riding in heat, HR can drift 10-15 bpm at constant power. You're not suddenly Z3; you're fatigued and dehydrated. Don't back off if power and perceived effort agree with the original target.

  • Trusting optical wrist HR on intervals

    Wrist HR lags 15-30 seconds and undercounts during sprints. Use a chest strap for any interval work - the zones are meaningless otherwise.

  • Comparing your zones to a training partner's

    Two athletes with the same FTP can have wildly different max HRs and LTHRs. Zones are individual. Stop comparing.

  • Using cycling zones for running

    Running uses more muscle mass and tends to produce 5-10 bpm higher HRs at the same physiological intensity. Build sport-specific zones.

  • Never updating after fitness changes

    Resting HR drops as you get fitter, and LTHR moves upward as a percentage of max. Old zones become inaccurate over months, not years.

Related tools

FAQ

What is the Karvonen formula?

Karvonen calculates target heart rate using Heart Rate Reserve - the difference between max HR and resting HR - rather than just max HR. Target = Resting + (Max − Resting) × intensity%. It accounts for individual fitness because better-trained athletes have lower resting heart rates.

What is LTHR?

Lactate Threshold Heart Rate is the heart rate at which lactate begins to accumulate faster than it can be cleared - sustainable for about 30-60 minutes maximal. Many coaches argue it is a better anchor for training zones than max HR because it reflects current fitness rather than physiology you cannot change.

Why is "220 minus age" inaccurate?

That formula has a standard deviation of about 10-12 bpm. Two 35-year-olds with the same "predicted" max HR of 185 could have actual max HRs of 170 and 200. Build zones around predictions and the bottom and top zones will be wildly wrong for most athletes.

How do I actually test max HR?

After a thorough 20-minute warm-up, run or ride up a 5-10% grade climb with two 3-minute all-out efforts separated by 3 minutes of recovery. The peak number you see during the second effort is close to true max HR. This is brutal - don't do it untrained.

How do I find my LTHR?

Joe Friel's 30-minute time trial protocol: warm up, then ride or run all-out for 30 minutes solo. The average HR for the final 20 minutes is your LTHR. It is the most repeatable field test for the threshold-based zone systems.

Why does my HR drift up during a long ride?

Cardiac drift - heart rate rises 5-15 bpm over the course of a 2-4 hour ride at constant power output due to thermal stress, dehydration, and glycogen depletion. Don't assume you've moved up a zone; verify with power or pace.

Can I use HR zones for both running and cycling?

Use sport-specific tests. Running max HR is typically 5-10 bpm higher than cycling max HR because more muscle mass is engaged. Set up two zone schemes if you train both.

How accurate are wrist-based optical HR monitors?

For steady-state efforts they are typically within 3-5 bpm of a chest strap. For intervals, sprints, and any high-variability work they lag and can be off by 20+ bpm. For zone-based training, use a chest strap.

Do HR zones change if I get fitter?

Max HR is relatively fixed for adults. LTHR and resting HR change with training - fit athletes have lower resting HR and a higher LTHR as a percentage of max. Retest LTHR every 8-12 weeks.

Should I cap my Z2 by HR or by power/pace?

If you trust your HR data on long rides, HR-cap Z2. If cardiac drift makes HR-Z2 too restrictive on long rides, use power or pace as the primary cap and HR as a sanity check. Either way, "Z2" must feel conversational.

Save your training to a real log

A zone table on a sticky note is fine for one workout. Domestique pins zones to every planned and completed session, so cardiac drift, fitness changes, and zone creep show up in plain sight.

Join the waitlist