Skip to main content
AI Fit Hub

Cardio

Heart Rate Zone Calculator

Five heart rate training zones from your age and resting heart rate, by the Karvonen heart-rate-reserve method or as a percentage of max.

Your numbers

Start from an example

Age
Resting heart rate (bpm)

Count for 60 seconds on waking, before you get up; average three mornings.

Zone method
Max heart rate estimate
Measured max heart rate (optional) (bpm)

From a recent all-out effort. When set, it replaces the age estimate.

Result

Max heart rate (220 − age)
190 bpm

Your zones (Karvonen)

Zone 1 (Recovery)125–138 bpm
Zone 2 (Endurance)138–151 bpm
Zone 3 (Tempo)151–164 bpm
Zone 4 (Threshold)164–177 bpm
Zone 5 (VO2 Max)177–190 bpm
Heart rate reserve
130 bpm
Zone 2 (endurance)
138–151 bpm
Zone 5 (VO2 max)
177–190 bpm

Training zones

Target heart rates across the five training intensity bands.

Zone 1 (Recovery)
125–138 bpm
Target: Lower bound 125 bpm
Zone 2 (Endurance)
138–151 bpm
Target: Lower bound 138 bpm
Zone 3 (Tempo)
151–164 bpm
Target: Lower bound 151 bpm
Zone 4 (Threshold)
164–177 bpm
Target: Lower bound 164 bpm
Zone 5 (VO2 Max)
177–190 bpm
Target: Lower bound 177 bpm

Formula from Karvonen (1957) and Tanaka HRmax revisited (2001), checked against the source on May 25, 2026.

Education, not medical advice. The result comes only from the published formula and your inputs. How we check our formulas.

What does the Heart Rate Zone Calculator calculate, and which formula does it use?

The Heart Rate Zone Calculator builds five training zones with the Karvonen heart-rate-reserve method: max heart rate is estimated as 220 − age, heart-rate reserve is max HR minus resting HR, and each zone adds 50–100% of that reserve back onto resting HR — from Zone 1 recovery (50–60%) up to Zone 5 VO2 max (90–100%).

Last updated .

How far off can this be?

In 3,320 healthy adults who reached a verified maximum on an exercise test, age alone predicted maximal heart rate with a standard error of 10.8 beats a minute, whatever their sex, fitness or BMI, and the older formulas underestimated it for people over 30.

For a 30-year-old, the calculator's default 220 − age gives 190 bpm. With a standard error of 10.8 bpm, about two in three people of that age have a maximum between 179 and 201 bpm, and every zone shifts with it.

If you know your own maximum from a hard effort or a lab test, enter it: that removes this error from every zone.

Source: Nes et al. 2013, Scand J Med Sci Sports, “Age-predicted maximal heart rate in healthy subjects: The HUNT fitness study” .

How to use it

  1. Measure resting heart rate immediately after waking before getting out of bed (count pulse for 60 full seconds). Average 3 consecutive mornings for the most reliable baseline input for the Karvonen formula.
  2. Enter your age and resting heart rate, and your measured max heart rate if you know it (otherwise pick 220 − age or Tanaka's 208 − 0.7 × age). Read your five zones: Z1 recovery, Z2 aerobic base (conversational), Z3 tempo, Z4 threshold, Z5 VO2 max. Age-based max estimates are typically off by about 10 bpm, so treat the boundaries as approximate.
  3. Elite endurance athletes do about 80% of their sessions at low intensity (Seiler 2010). Easy Zone 1-2 work, where you can speak in full sentences, builds the aerobic base and is easy to recover from.
  4. Keep hard Zone 4-5 work to a minority of sessions, around 20% in the elite pattern, so each hard session gets full effort and the easy days stay easy.
  5. Re-run this calculator every 2–3 months of consistent training. Improved cardiovascular fitness lowers resting heart rate, which shifts all zone boundaries — keeping your intensity calibrated to current fitness level.

Questions people usually ask

Which formula is used here?

By default the Karvonen method: each zone is resting heart rate plus 50–60%, 60–70%, 70–80%, 80–90% or 90–100% of your heart rate reserve (max minus resting). You can switch to a plain percentage of max. Max heart rate is 220 − age by default, Tanaka's 208 − 0.7 × age as an option, or your own measured max.

How accurate is 220 minus age?

It is a population average. In a meta-analysis of 351 studies, Tanaka and colleagues found 208 − 0.7 × age fitted adults better, especially over 40, and individual maximums still scatter around any formula by about 10 bpm. A measured max from a hard, all-out effort makes every zone more accurate.

Should I use Karvonen or percent of max?

Karvonen uses your resting heart rate as well, so the zones shift as you get fitter and your resting rate falls; percent-of-max zones are simpler and ignore it. For most people training by feel and heart rate together, Karvonen gives the more individual bands.

Do I need to convert units?

No. Heart rate is beats per minute in every system, so there is nothing to convert on this tool.

Is this medical advice?

No. This tool provides general fitness estimates and should not replace medical guidance.

Is this tool free and private to use?

Yes. AI Fit Hub tools are free, no-signup browser tools. Inputs stay in your browser unless you choose to share a URL.

  • Nutrition TDEE Calculator

    Estimate your daily energy expenditure with Mifflin-St Jeor + activity factors.

  • Nutrition Macro Calculator

    Convert calorie targets into protein, carbs, and fat grams for your goal.

  • Planning Calorie Deficit Calculator

    Estimate required daily calorie deficit for a target timeline and bodyweight change.

  • Planning Body Recomposition Planner

    Plan body-fat reduction pace, deficit targets, and protein needs around a timeline.

Background on the Heart Rate Zone Calculator

All resources
All articles

By goal

Use it from an agent or code

Any agent can run this calculator by URL: put the inputs in the query string and get JSON back, with the inputs that used defaults and a line to cite (add format=md for markdown). MCP clients reach it through https://aifithub.io/mcp.

https://aifithub.io/api/run/heart-rate-zone-calculator?age=30&resting_hr=60&method=karvonen&max_hr_formula=fox&max_hr=0

In code, import the same module; it runs where you import it, with no request or key.

import { compute } from "https://aifithub.io/engines/heart-rate-zone-calculator.js";

Input and output contract, TypeScript types and the guide for agents.