Target Heart Rate Calculator
Training in the right heart rate zone maximises the benefit of each workout. Fat-burn zones primarily use fat as fuel; cardio zones improve cardiovascular fitness; peak zones build speed and power. This calculator uses the Karvonen method, which accounts for your resting heart rate for a more personalised result.
Measure your resting HR first thing in the morning before getting up.
How it works
Your maximum heart rate is estimated as 220 minus age. The Karvonen method calculates your Heart Rate Reserve (Max HR minus Resting HR) and applies a percentage to it, then adds back the resting HR to give a personalised target range.
Max HR = 220 - age | Zone target = (Max HR - Resting HR) x % + Resting HRExample. A 30-year-old with a resting HR of 65 bpm has a max HR of 190. Fat-burn zone: 128-145 bpm; Cardio: 145-162 bpm; Peak: 162-180 bpm.
Frequently asked questions
How accurate is 220 minus age?
It is a population average and can vary by up to 10-20 bpm in individuals. A cardiac stress test gives the most accurate max HR, but the formula is sufficient for most exercisers.
Why does resting heart rate matter?
A lower resting HR indicates better cardiovascular fitness. Using resting HR in the Karvonen formula adjusts your training zones to your actual fitness level, making them more precise than percentage-of-max formulas alone.
Related calculators
Embed this calculator
Free to use on any site. Please keep the credit link.
<iframe
id="letmecalc-target-heart-rate-calculator"
src="https://letmecalc.com/embed/health/target-heart-rate-calculator"
title="Target Heart Rate Calculator"
width="100%"
height="620"
style="border:0;max-width:100%"
loading="lazy"
></iframe>
<p><a href="https://letmecalc.com/health/target-heart-rate-calculator" target="_blank" rel="noopener">Target Heart Rate Calculator</a> by letmecalc</p>
<script>
(function () {
var f = document.getElementById("letmecalc-target-heart-rate-calculator");
window.addEventListener("message", function (e) {
if (e.origin !== "https://letmecalc.com") return;
if (!f || e.source !== f.contentWindow) return;
var d = e.data;
if (!d || d.source !== "letmecalc-embed" || d.type !== "resize") return;
if (typeof d.height === "number" && d.height > 0) {
f.style.height = d.height + "px";
}
});
})();
</script>