Calculate your target heart rate zones using the Karvonen Formula.
Karvonen (Most Accurate)
Standard (220 – Age)
Estimated Maximum Heart Rate:0
Target Heart Rate (THR):0
Training Zone:–
How to Calculate Your Optimal Heart Rate
Understanding your exercise heart rate is crucial for optimizing cardiovascular fitness and ensuring you are working out safely. This calculator utilizes two primary methods, with the Karvonen Formula being the preferred choice for athletes as it accounts for your resting heart rate (an indicator of current fitness levels).
The Karvonen Formula Explained
The Karvonen formula calculates Heart Rate Reserve (HRR) to determine your specific target zones. The math works as follows:
Max HR: 220 – Age
Heart Rate Reserve (HRR): Max HR – Resting HR
Target HR: (HRR × Intensity%) + Resting HR
Example Calculation
If you are 40 years old with a resting heart rate of 60 BPM and you want to exercise at 70% intensity:
Max HR: 220 – 40 = 180 BPM
HRR: 180 – 60 = 120 BPM
Target HR: (120 × 0.70) + 60 = 144 BPM
Common Training Zones
Zone
Intensity
Benefit
Recovery / Warm-up
50% – 60%
Basic health, recovery, and weight management.
Fat Burn / Aerobic
60% – 70%
Improves endurance and fat metabolism.
Aerobic / Fitness
70% – 80%
Enhances cardiovascular capacity and lung strength.
Anaerobic / Performance
80% – 90%
Increases speed and lactic acid tolerance.
Red Line / Max Effort
90% – 100%
Sprinting and high-intensity interval training (HIIT).
Why Monitor Your Heart Rate?
Training without a target is like driving without a speedometer. By monitoring your Beats Per Minute (BPM), you can ensure you aren't over-training (which leads to burnout) or under-training (which leads to plateaus). For weight loss, staying in the 60-70% zone is often cited as the "fat-burning zone," while those looking to run marathons may spend more time in the 70-80% aerobic zone.
function calculateTargetHR() {
var age = parseFloat(document.getElementById('hrAge').value);
var resting = parseFloat(document.getElementById('hrResting').value);
var intensity = parseFloat(document.getElementById('hrIntensity').value);
var formula = document.getElementById('hrFormula').value;
if (isNaN(age) || isNaN(intensity) || age <= 0) {
alert("Please enter a valid age and intensity level.");
return;
}
var maxHR = 220 – age;
var targetHR = 0;
if (formula === "karvonen") {
if (isNaN(resting) || resting <= 0) {
alert("Please enter your resting heart rate for the Karvonen formula.");
return;
}
var hrr = maxHR – resting;
targetHR = (hrr * (intensity / 100)) + resting;
} else {
targetHR = maxHR * (intensity / 100);
}
// Determine Zone Label
var zone = "";
if (intensity < 60) {
zone = "Warm-up / Recovery";
} else if (intensity < 70) {
zone = "Fat Burn (Aerobic)";
} else if (intensity < 80) {
zone = "Endurance / Fitness";
} else if (intensity < 90) {
zone = "Performance (Anaerobic)";
} else {
zone = "Maximum Effort (Red Line)";
}
document.getElementById('resMaxHR').innerHTML = Math.round(maxHR) + " BPM";
document.getElementById('resTargetHR').innerHTML = Math.round(targetHR) + " BPM";
document.getElementById('resZone').innerHTML = zone;
document.getElementById('hrResultBox').style.display = "block";
}