How to Calculate Heart Rate Zones for Exercise

Heart Rate Zone Calculator (Karvonen Method)

Measure your pulse for 1 minute while sitting quietly.

Your Custom Training Zones

Based on your age and resting heart rate, here are your target heart rate ranges (BPM):

Zone Intensity BPM Range Benefit


How to Calculate Heart Rate Zones for Optimal Exercise

Understanding your heart rate zones is the key to training smarter, not harder. Whether you are looking to burn fat, improve cardiovascular endurance, or increase your top-end speed, monitoring your heart rate ensures you are working at the correct intensity for your specific goals.

The Karvonen Formula Explained

While the simple formula (220 minus age) is popular, it often misses the mark because it doesn't account for individual fitness levels. This calculator uses the Karvonen Formula, which incorporates your Resting Heart Rate (RHR) to provide a more personalized Heart Rate Reserve (HRR).

The math works like this:

  1. Max Heart Rate (MHR): 220 – Age
  2. Heart Rate Reserve (HRR): MHR – Resting Heart Rate
  3. Target Heart Rate: (HRR × % Intensity) + Resting Heart Rate

Breaking Down the 5 Training Zones

  • Zone 1: Very Light (50-60%) – Best for recovery and warming up. It improves overall health but doesn't feel like a "workout."
  • Zone 2: Light (60-70%) – The "Fat Burning" zone. This intensity builds basic endurance and aerobic capacity. You should be able to hold a full conversation.
  • Zone 3: Moderate (70-80%) – Aerobic power. This improves blood circulation and strengthens the heart and skeletal muscles.
  • Zone 4: Hard (80-90%) – Anaerobic capacity. This is where you increase your speed and lactate threshold. Breathing is heavy.
  • Zone 5: Maximum (90-100%) – Performance and sprint power. This is only sustainable for very short bursts (seconds to a couple of minutes).

Example Calculation

Imagine a 40-year-old individual with a resting heart rate of 60 BPM. To calculate the bottom of Zone 2 (60%):

  • MHR: 220 – 40 = 180 BPM
  • HRR: 180 – 60 = 120 BPM
  • 60% Intensity: (120 × 0.60) + 60 = 132 BPM

This means their Zone 2 training starts at 132 beats per minute.

function calculateHRZones() { var age = parseFloat(document.getElementById('userAge').value); var rhr = parseFloat(document.getElementById('restingHR').value); var resultArea = document.getElementById('hrResultArea'); var tableBody = document.getElementById('zoneTableBody'); var mhrText = document.getElementById('mhrText'); if (isNaN(age) || isNaN(rhr) || age <= 0 || rhr <= 0) { alert("Please enter a valid age and resting heart rate."); return; } var mhr = 220 – age; var hrr = mhr – rhr; if (hrr <= 0) { alert("Resting heart rate cannot be higher than maximum heart rate. Please check your inputs."); return; } var zones = [ { name: "Zone 1", intensity: "50-60%", color: "#3498db", desc: "Recovery / Warm-up", low: 0.50, high: 0.60 }, { name: "Zone 2", intensity: "60-70%", color: "#2ecc71", desc: "Aerobic / Fat Burn", low: 0.60, high: 0.70 }, { name: "Zone 3", intensity: "70-80%", color: "#f1c40f", desc: "Endurance / Fitness", low: 0.70, high: 0.80 }, { name: "Zone 4", intensity: "80-90%", color: "#e67e22", desc: "Anaerobic / Speed", low: 0.80, high: 0.90 }, { name: "Zone 5", intensity: "90-100%", color: "#e74c3c", desc: "VO2 Max / Sprints", low: 0.90, high: 1.00 } ]; var html = ""; for (var i = 0; i < zones.length; i++) { var lowBpm = Math.round((hrr * zones[i].low) + rhr); var highBpm = Math.round((hrr * zones[i].high) + rhr); html += ""; html += "" + zones[i].name + ""; html += "" + zones[i].intensity + ""; html += "" + lowBpm + " – " + highBpm + ""; html += "" + zones[i].desc + ""; html += ""; } tableBody.innerHTML = html; mhrText.innerHTML = "Estimated Max Heart Rate: " + mhr + " BPM | Heart Rate Reserve: " + hrr + " BPM"; resultArea.style.display = "block"; // Smooth scroll to results resultArea.scrollIntoView({ behavior: 'smooth', block: 'nearest' }); }

Leave a Comment