Max Heart Rate Calculator Resting

Max Heart Rate & Training Zone Calculator (Karvonen Method) .hr-calculator-wrapper { max-width: 800px; margin: 0 auto; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; color: #333; line-height: 1.6; } .hr-calc-box { background: #f8f9fa; border: 1px solid #e9ecef; border-radius: 8px; padding: 30px; box-shadow: 0 4px 6px rgba(0,0,0,0.05); margin-bottom: 40px; } .hr-calc-title { text-align: center; margin-bottom: 25px; color: #e63946; font-size: 24px; font-weight: 700; } .hr-input-group { margin-bottom: 20px; } .hr-input-group label { display: block; margin-bottom: 8px; font-weight: 600; color: #495057; } .hr-input-group input { width: 100%; padding: 12px; border: 1px solid #ced4da; border-radius: 4px; font-size: 16px; box-sizing: border-box; } .hr-input-group input:focus { border-color: #e63946; outline: none; box-shadow: 0 0 0 3px rgba(230, 57, 70, 0.25); } .hr-calc-btn { width: 100%; padding: 15px; background-color: #e63946; color: white; border: none; border-radius: 4px; font-size: 18px; font-weight: 600; cursor: pointer; transition: background-color 0.2s; } .hr-calc-btn:hover { background-color: #d62839; } #hr-results { margin-top: 30px; display: none; animation: fadeIn 0.5s; } .hr-summary-cards { display: flex; gap: 15px; margin-bottom: 25px; flex-wrap: wrap; } .hr-card { flex: 1; min-width: 140px; background: white; padding: 15px; border-radius: 6px; border-left: 5px solid #e63946; box-shadow: 0 2px 4px rgba(0,0,0,0.05); } .hr-card h4 { margin: 0 0 5px 0; font-size: 14px; color: #6c757d; text-transform: uppercase; } .hr-card .val { font-size: 28px; font-weight: 700; color: #212529; } .hr-zone-table { width: 100%; border-collapse: collapse; background: white; border-radius: 6px; overflow: hidden; box-shadow: 0 2px 4px rgba(0,0,0,0.05); } .hr-zone-table th, .hr-zone-table td { padding: 12px 15px; text-align: left; border-bottom: 1px solid #dee2e6; } .hr-zone-table th { background-color: #343a40; color: white; font-weight: 600; } .hr-zone-table tr:last-child td { border-bottom: none; } .zone-badge { display: inline-block; padding: 4px 8px; border-radius: 4px; color: white; font-size: 12px; font-weight: bold; } .z1 { background-color: #6c757d; } .z2 { background-color: #3b82f6; } .z3 { background-color: #10b981; } .z4 { background-color: #f59e0b; } .z5 { background-color: #ef4444; } /* SEO Article Styles */ .hr-content h2 { color: #212529; margin-top: 40px; border-bottom: 2px solid #e63946; padding-bottom: 10px; } .hr-content h3 { color: #495057; margin-top: 25px; } .hr-content p, .hr-content li { color: #495057; font-size: 17px; } .hr-content ul { margin-bottom: 20px; } @keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } } @media (max-width: 600px) { .hr-summary-cards { flex-direction: column; } }
Max Heart Rate & Resting HR Calculator
Best measured in bed just after waking up.

Max Heart Rate (MHR)

bpm

Heart Rate Reserve

bpm
Zone Intensity Target Range (BPM) Benefit

Why Use a Max Heart Rate Calculator with Resting Heart Rate?

Most generic heart rate calculators only use your age to determine your training zones. While the standard "220 minus age" formula gives a rough estimate of your Maximum Heart Rate (MHR), it fails to account for your individual fitness level.

This calculator utilizes the Karvonen Method. By incorporating your Resting Heart Rate (RHR) into the equation, we calculate your "Heart Rate Reserve" (HRR). This provides a much more personalized and accurate set of training zones tailored to your current cardiovascular health.

The Math Behind the Karvonen Formula

Unlike simple linear equations, the Karvonen formula determines target intensity based on the difference between your maximum and resting capability. The formula used is:

  • MHR (Max Heart Rate): 220 – Age
  • HRR (Heart Rate Reserve): MHR – Resting Heart Rate
  • Target Heart Rate: (HRR × Intensity %) + Resting Heart Rate

Understanding Your Heart Rate Zones

Training in specific heart rate zones allows you to target different physiological adaptations. Here is what the zones calculated above represent:

Zone 1: Very Light (50-60%)

Used for warm-ups, cool-downs, and active recovery. This zone improves overall health and helps with recovery after hard training days.

Zone 2: Light / Fat Burn (60-70%)

The "conversational" pace. This is the optimal zone for building basic endurance and burning fat. Marathon runners spend a lot of time here.

Zone 3: Moderate / Aerobic (70-80%)

Improves aerobic fitness and blood circulation in skeletal muscles. Training here starts to feel harder; you will breathe heavier but can still speak in short sentences.

Zone 4: Hard / Threshold (80-90%)

This increases maximum performance capacity. You are training your body to tolerate higher levels of lactic acid. It is hard to maintain this intensity for long periods.

Zone 5: Maximum (90-100%)

This is your peak effort, used for short intervals. It develops maximum speed and neuromuscular power. Sustainable for only very short bursts.

How to Measure Resting Heart Rate

To get the most accurate result from this calculator, measure your pulse immediately after waking up, before you sit up in bed. Count the beats for 60 seconds. Do this for 3-5 days and take the average.

function calculateHeartRateZones() { // 1. Get Input Values var ageInput = document.getElementById('hr-age'); var rhrInput = document.getElementById('hr-resting'); var age = parseFloat(ageInput.value); var rhr = parseFloat(rhrInput.value); // 2. Validate Inputs if (isNaN(age) || age 120) { alert("Please enter a valid age between 1 and 120."); return; } if (isNaN(rhr) || rhr 200) { alert("Please enter a valid resting heart rate (typically between 30 and 150)."); return; } // 3. Calculation Logic (Karvonen Method) var mhr = 220 – age; // Standard max heart rate formula // Safety check: Resting cannot be higher than Max if (rhr >= mhr) { alert("Your Resting Heart Rate cannot be higher than or equal to your estimated Max Heart Rate (" + mhr + "). Please check your inputs."); return; } var hrr = mhr – rhr; // Heart Rate Reserve // 4. Define Zones // Function to calc specific intensity function getZone(percentage) { return Math.round((hrr * percentage) + rhr); } // Zone boundaries var z1_min = getZone(0.50); var z1_max = getZone(0.60); var z2_min = getZone(0.60); var z2_max = getZone(0.70); var z3_min = getZone(0.70); var z3_max = getZone(0.80); var z4_min = getZone(0.80); var z4_max = getZone(0.90); var z5_min = getZone(0.90); var z5_max = getZone(1.00); // Should equal MHR ideally, slightly adjusted by rounding logic but we use calculated logic // 5. Display Summary Results document.getElementById('res-mhr').innerText = mhr; document.getElementById('res-hrr').innerText = hrr; // 6. Populate Table var tbody = document.getElementById('res-table-body'); tbody.innerHTML = "; // Clear previous var zones = [ { name: "Zone 5", cls: "z5", pct: "90-100%", range: z5_min + " – " + mhr, benefit: "Maximum Performance & Speed" }, { name: "Zone 4", cls: "z4", pct: "80-90%", range: z4_min + " – " + (z4_max – 1), benefit: "Increases Max Performance Capacity" }, { name: "Zone 3", cls: "z3", pct: "70-80%", range: z3_min + " – " + (z3_max – 1), benefit: "Improves Aerobic Fitness" }, { name: "Zone 2", cls: "z2", pct: "60-70%", range: z2_min + " – " + (z2_max – 1), benefit: "Basic Endurance & Fat Burning" }, { name: "Zone 1", cls: "z1", pct: "50-60%", range: z1_min + " – " + (z1_max – 1), benefit: "Warm Up & Active Recovery" } ]; for (var i = 0; i < zones.length; i++) { var row = ""; row += "" + zones[i].name + ""; row += "" + zones[i].pct + ""; row += "" + zones[i].range + " bpm"; row += "" + zones[i].benefit + ""; row += ""; tbody.innerHTML += row; } // 7. Show Results Container document.getElementById('hr-results').style.display = 'block'; }

Leave a Comment