Heart Rate Zone Calculators

.hr-calc-container { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; max-width: 800px; margin: 20px auto; padding: 25px; border: 1px solid #e0e0e0; border-radius: 12px; background-color: #ffffff; box-shadow: 0 4px 6px rgba(0,0,0,0.05); } .hr-calc-header { text-align: center; margin-bottom: 25px; } .hr-calc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-bottom: 20px; } .hr-input-group { display: flex; flex-direction: column; } .hr-input-group label { font-weight: 600; margin-bottom: 8px; color: #333; } .hr-input-group input { padding: 12px; border: 2px solid #ddd; border-radius: 6px; font-size: 16px; } .hr-input-group input:focus { border-color: #e74c3c; outline: none; } .hr-calc-btn { grid-column: span 2; background-color: #e74c3c; color: white; padding: 15px; border: none; border-radius: 6px; font-size: 18px; font-weight: bold; cursor: pointer; transition: background 0.3s; } .hr-calc-btn:hover { background-color: #c0392b; } #hr-results { margin-top: 25px; display: none; } .hr-zone-table { width: 100%; border-collapse: collapse; margin-top: 15px; } .hr-zone-table th, .hr-zone-table td { padding: 12px; text-align: left; border-bottom: 1px solid #eee; } .hr-zone-table th { background-color: #f8f9fa; color: #555; } .zone-1 { border-left: 5px solid #3498db; } .zone-2 { border-left: 5px solid #2ecc71; } .zone-3 { border-left: 5px solid #f1c40f; } .zone-4 { border-left: 5px solid #e67e22; } .zone-5 { border-left: 5px solid #e74c3c; } .hr-explanation { margin-top: 40px; line-height: 1.6; color: #444; } .hr-explanation h2 { color: #222; margin-top: 25px; } .hr-explanation h3 { color: #333; margin-top: 20px; } @media (max-width: 600px) { .hr-calc-grid { grid-template-columns: 1fr; } .hr-calc-btn { grid-column: span 1; } }

Heart Rate Zone Calculator

Calculate your target heart rate ranges using the Karvonen Formula for more accurate training zones.

Your Personalized Training Zones

Estimated Max Heart Rate: BPM

Zone Intensity Range (BPM)

Understanding Your Heart Rate Zones

Training with heart rate zones allows you to tailor your workouts to specific physiological goals. Whether you want to burn fat, improve endurance, or increase your speed, knowing your numbers is essential. This calculator uses the Karvonen Formula, which accounts for your resting heart rate to provide more accurate targets than age-based formulas alone.

The Five Training Zones

  • Zone 1 (Recovery): 50-60% of HRR. Ideal for active recovery and warming up. Improves basic circulatory health.
  • Zone 2 (Aerobic Base): 60-70% of HRR. Often called the "Fat Burning Zone." It builds endurance and helps your body become efficient at using fat for fuel.
  • Zone 3 (Aerobic Capacity): 70-80% of HRR. Enhances cardiovascular strength and lung capacity. This is the pace for moderate-intensity steady-state cardio.
  • Zone 4 (Anaerobic Threshold): 80-90% of HRR. Improves your ability to handle high-intensity efforts. You will breathe hard and feel the "burn."
  • Zone 5 (Maximum Effort): 90-100% of HRR. Used for short intervals and sprints. It develops peak power and speed.

Example Calculation

If you are 35 years old with a resting heart rate of 60 BPM:

  1. Max HR: 220 – 35 = 185 BPM.
  2. Heart Rate Reserve (HRR): 185 – 60 = 125 BPM.
  3. Zone 2 Target (60%): (125 * 0.60) + 60 = 135 BPM.

How to Find Your Resting Heart Rate

For the most accurate results, measure your resting heart rate (RHR) in the morning immediately after waking up, before you get out of bed. Use two fingers on your wrist or neck and count the beats for 60 seconds. A typical RHR for adults is between 60 and 100 BPM, while highly trained athletes may see values in the 40s or 50s.

function calculateHRZones() { var age = parseFloat(document.getElementById('hrAge').value); var restHR = parseFloat(document.getElementById('hrRest').value); if (isNaN(age) || age 120) { alert("Please enter a valid age."); return; } if (isNaN(restHR) || restHR 150) { alert("Please enter a realistic resting heart rate."); return; } var maxHR = 220 – age; var hrr = maxHR – restHR; if (hrr <= 0) { alert("Calculated Maximum Heart Rate must be higher than Resting Heart Rate. Please check your inputs."); return; } document.getElementById('maxHrVal').innerText = maxHR; var zones = [ { name: "Zone 1 (Very Light)", low: 0.50, high: 0.60, class: "zone-1", desc: "Recovery / Easy" }, { name: "Zone 2 (Light)", low: 0.60, high: 0.70, class: "zone-2", desc: "Fat Burn / Endurance" }, { name: "Zone 3 (Moderate)", low: 0.70, high: 0.80, class: "zone-3", desc: "Aerobic Capacity" }, { name: "Zone 4 (Hard)", low: 0.80, high: 0.90, class: "zone-4", desc: "Anaerobic Threshold" }, { name: "Zone 5 (Maximum)", low: 0.90, high: 1.00, class: "zone-5", desc: "Peak Performance" } ]; var tableBody = document.getElementById('hr-table-body'); tableBody.innerHTML = ""; for (var i = 0; i < zones.length; i++) { var zone = zones[i]; var lowBPM = Math.round((hrr * zone.low) + restHR); var highBPM = Math.round((hrr * zone.high) + restHR); var row = document.createElement('tr'); row.className = zone.class; row.innerHTML = "" + zone.name + "" + zone.desc + "" + "" + (zone.low * 100) + "% – " + (zone.high * 100) + "%" + "" + lowBPM + " – " + highBPM + " BPM"; tableBody.appendChild(row); } document.getElementById('hr-results').style.display = "block"; document.getElementById('hr-results').scrollIntoView({ behavior: 'smooth', block: 'nearest' }); }

Leave a Comment