Leave blank to use the standard max heart rate formula. Enter a value for the more accurate Karvonen method.
Estimated Maximum Heart Rate (MHR)
0 BPM
Using Standard Formula
Zone
Intensity
Target Heart Rate Range
Benefit
How to Calculate Heart Rate Zones
Understanding your heart rate zones is the most efficient way to achieve fitness goals, whether you are aiming for fat loss, cardiovascular endurance, or peak athletic performance. By training in specific "zones," which are percentages of your maximum heart rate, you can ensure your body is utilizing the correct energy systems.
1. Maximum Heart Rate (MHR) Calculation
The first step in any heart rate calculation is determining your Maximum Heart Rate (MHR). The most common formula used globally is:
MHR = 220 – Age
For example, if you are 40 years old, your estimated MHR is 180 beats per minute (bpm). While this provides a general baseline, it does not account for individual fitness levels.
2. The Karvonen Formula (Advanced)
If you know your Resting Heart Rate (RHR)—your pulse when you first wake up—you can use the Karvonen formula. This method is generally considered more accurate because it factors in your cardiovascular fitness. The formula is:
Target HR = ((MHR – RHR) × Intensity %) + RHR
This calculator automatically switches to the Karvonen formula if you input your Resting Heart Rate above.
Understanding the 5 Heart Rate Zones
Zone 1 (Very Light, 50-60%): Used for warm-ups and recovery. It helps with blood flow and prepares muscles for exercise.
Zone 2 (Light, 60-70%): Often called the "Fat Burning Zone." In this zone, the body primarily uses fat stores for energy. It builds basic endurance.
Zone 3 (Moderate, 70-80%): The aerobic zone. This improves blood circulation and cardiovascular lung capacity.
Zone 4 (Hard, 80-90%): The anaerobic threshold. Training here improves your ability to sustain high-speed efforts and handle lactic acid buildup.
Zone 5 (Maximum, 90-100%): For short bursts of peak performance. This is extremely taxing and is used for interval training to develop speed and power.
Why Monitoring Matters
Without monitoring your heart rate, you might be training too hard (risking burnout or injury) or too lightly (not triggering adaptation). Using a heart rate monitor or smartwatch in conjunction with this calculator ensures every minute of exercise contributes directly to your specific goals.
function calculateHeartRate() {
// 1. Get Inputs
var ageInput = document.getElementById('calc_age');
var rhrInput = document.getElementById('calc_rhr');
var age = parseFloat(ageInput.value);
var rhr = parseFloat(rhrInput.value);
// 2. Validation
if (isNaN(age) || age 120) {
alert("Please enter a valid age between 1 and 120.");
return;
}
// 3. Calculate Maximum Heart Rate (Standard Formula)
// Formula: 220 – Age
var mhr = 220 – age;
// 4. Determine Calculation Method (Standard vs Karvonen)
var useKarvonen = false;
if (!isNaN(rhr) && rhr > 30 && rhr < mhr) {
useKarvonen = true;
}
// 5. Define Zones
// Array of objects: { name, minPct, maxPct, badgeClass, benefit }
var zones = [
{ name: "Zone 5 (Maximum)", minPct: 0.90, maxPct: 1.00, badge: "z5", benefit: "Speed & Power" },
{ name: "Zone 4 (Hard)", minPct: 0.80, maxPct: 0.90, badge: "z4", benefit: "Anaerobic Capacity" },
{ name: "Zone 3 (Moderate)",minPct: 0.70, maxPct: 0.80, badge: "z3", benefit: "Aerobic Fitness" },
{ name: "Zone 2 (Light)", minPct: 0.60, maxPct: 0.70, badge: "z2", benefit: "Fat Burning & Endurance" },
{ name: "Zone 1 (Very Light)",minPct: 0.50, maxPct: 0.60, badge: "z1", benefit: "Warm Up & Recovery" }
];
// 6. Generate Table HTML
var tableHtml = "";
// Heart Rate Reserve (for Karvonen)
var hrr = mhr – rhr;
for (var i = 0; i < zones.length; i++) {
var zone = zones[i];
var minBpm, maxBpm;
if (useKarvonen) {
// Karvonen: (HRR * %) + RHR
minBpm = Math.round((hrr * zone.minPct) + rhr);
maxBpm = Math.round((hrr * zone.maxPct) + rhr);
} else {
// Standard: MHR * %
minBpm = Math.round(mhr * zone.minPct);
maxBpm = Math.round(mhr * zone.maxPct);
}
tableHtml += "
";
}
// 7. Update UI
document.getElementById('res_mhr').innerText = mhr + " BPM";
document.getElementById('res_table_body').innerHTML = tableHtml;
var methodText = document.getElementById('method_used_text');
if (useKarvonen) {
methodText.innerHTML = "Result calculated using the Karvonen Formula (based on Resting HR).";
methodText.style.color = "#27ae60";
} else {
methodText.innerHTML = "Result calculated using the Standard MHR Formula (220 – Age).";
methodText.style.color = "#7f8c8d";
}
// Show result div
document.getElementById('hr-result-area').style.display = "block";
// Scroll to results
document.getElementById('hr-result-area').scrollIntoView({behavior: "smooth"});
}