Exercise Max Heart Rate Calculator

Exercise Max Heart Rate Calculator .mhr-calculator-container { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; max-width: 800px; margin: 0 auto; padding: 20px; background-color: #f9fbfd; border-radius: 8px; border: 1px solid #e1e4e8; } .mhr-calculator-header { text-align: center; margin-bottom: 30px; } .mhr-calculator-header h1 { color: #2c3e50; margin: 0 0 10px 0; font-size: 28px; } .mhr-calculator-header p { color: #6c757d; font-size: 16px; } .mhr-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-bottom: 25px; } @media (max-width: 600px) { .mhr-form-grid { grid-template-columns: 1fr; } } .mhr-input-group { margin-bottom: 15px; } .mhr-input-group label { display: block; margin-bottom: 8px; font-weight: 600; color: #34495e; } .mhr-input-group input, .mhr-input-group select { width: 100%; padding: 12px; border: 1px solid #ced4da; border-radius: 6px; font-size: 16px; box-sizing: border-box; transition: border-color 0.2s; } .mhr-input-group input:focus, .mhr-input-group select:focus { border-color: #3498db; outline: none; } .mhr-btn { display: block; width: 100%; padding: 14px; background-color: #e74c3c; color: white; border: none; border-radius: 6px; font-size: 18px; font-weight: bold; cursor: pointer; transition: background-color 0.2s; } .mhr-btn:hover { background-color: #c0392b; } .mhr-result-section { margin-top: 30px; background-color: #ffffff; padding: 25px; border-radius: 8px; box-shadow: 0 4px 6px rgba(0,0,0,0.05); display: none; } .mhr-main-stat { text-align: center; margin-bottom: 30px; padding-bottom: 20px; border-bottom: 2px solid #f1f3f5; } .mhr-stat-value { font-size: 48px; font-weight: 800; color: #2c3e50; display: block; } .mhr-stat-label { color: #7f8c8d; font-size: 14px; text-transform: uppercase; letter-spacing: 1px; } .mhr-zones-table { width: 100%; border-collapse: collapse; margin-top: 20px; } .mhr-zones-table th, .mhr-zones-table td { padding: 12px; text-align: left; border-bottom: 1px solid #eee; } .mhr-zones-table th { background-color: #f8f9fa; color: #333; font-weight: 600; } .zone-badge { display: inline-block; padding: 4px 8px; border-radius: 4px; font-size: 12px; font-weight: bold; color: white; } .zone-1 { background-color: #95a5a6; } /* Grey */ .zone-2 { background-color: #3498db; } /* Blue */ .zone-3 { background-color: #2ecc71; } /* Green */ .zone-4 { background-color: #f1c40f; color: #333; } /* Yellow */ .zone-5 { background-color: #e74c3c; } /* Red */ .mhr-content { margin-top: 40px; line-height: 1.6; color: #444; } .mhr-content h2 { color: #2c3e50; border-bottom: 2px solid #e74c3c; padding-bottom: 10px; margin-top: 30px; } .mhr-content ul { padding-left: 20px; } .mhr-content li { margin-bottom: 10px; }

Exercise Max Heart Rate Calculator

Determine your maximum heart rate and optimal training zones.

Male Female
Tanaka (More Accurate) Fox (Standard 220-Age) Gulati (Specific for Women)
Needed only if using Karvonen method logic.
0 Estimated Max Heart Rate (BPM)

Your Training Zones

Zone Intensity Heart Rate Range Benefit

Understanding Your Max Heart Rate (MHR)

Your Maximum Heart Rate (MHR) is the fastest rate at which your heart can beat per minute. Knowing this number is the foundation of effective heart rate training. Instead of guessing your effort level, you can use heart rate zones to target specific physiological adaptations, from burning fat to improving cardiovascular endurance.

How We Calculate MHR

This calculator offers three scientific methods to estimate your MHR:

  • The Fox Formula (220 – Age): This is the most common and simplest formula. It provides a rough estimate suitable for beginners but may underestimate MHR for fit individuals or older adults.
  • The Tanaka Formula (208 – 0.7 × Age): Considered more accurate for a wider range of ages and fitness levels, this formula adjusts the decline in heart rate capacity more gradually than the Fox formula.
  • The Gulati Formula (206 – 0.88 × Age): Research suggests that the standard formulas may overestimate MHR in women. The Gulati formula is specifically derived for females to provide a more precise estimation.

Heart Rate Training Zones Explained

Once your MHR is established, your training intensity is broken down into 5 zones:

Zone 1: Very Light (50-60% MHR)

Used for warm-ups, cool-downs, and active recovery. It promotes blood flow and helps muscles recover without placing stress on the cardiovascular system.

Zone 2: Light (60-70% MHR)

Often called the "Fat Burning Zone". In this zone, your body becomes more efficient at oxidizing fat for fuel. It builds basic endurance and can be sustained for long durations.

Zone 3: Moderate (70-80% MHR)

The "Aerobic Zone". This improves your aerobic capacity (VO2 Max) and blood circulation. Training here strengthens the heart and lungs.

Zone 4: Hard (80-90% MHR)

The "Anaerobic Zone". Training here increases your lactate threshold, allowing you to sustain high-intensity effort for longer. It is physically demanding and usually done in intervals.

Zone 5: Maximum (90-100% MHR)

Used for short bursts of maximum effort (sprinting). This zone is sustainable only for very short periods and is used to develop peak speed and power.

Disclaimer: This calculator provides estimates based on population averages. Individual heart rates can vary significantly due to genetics, medication, and fitness level. Always consult a physician before starting a new exercise program.

function calculateMHR() { // 1. Get Inputs var ageInput = document.getElementById('mhr-age'); var genderInput = document.getElementById('mhr-gender'); var formulaInput = document.getElementById('mhr-formula'); var rhrInput = document.getElementById('mhr-rhr'); var resultSection = document.getElementById('mhr-result'); var resultBpm = document.getElementById('result-bpm'); var zonesBody = document.getElementById('zones-body'); // 2. Parse Values var age = parseInt(ageInput.value); var gender = genderInput.value; var formula = formulaInput.value; var rhr = rhrInput.value ? parseInt(rhrInput.value) : 0; // 3. Validation if (!age || isNaN(age) || age 120) { alert("Please enter a valid age between 1 and 120."); return; } // 4. Calculate Max Heart Rate (MHR) var maxHeartRate = 0; if (formula === 'fox') { // Standard Formula maxHeartRate = 220 – age; } else if (formula === 'tanaka') { // Tanaka Formula maxHeartRate = 208 – (0.7 * age); } else if (formula === 'gulati') { // Gulati Formula (Specifically for women, but we calculate based on selection) if (gender === 'female') { maxHeartRate = 206 – (0.88 * age); } else { // Fallback for men selecting Gulati (revert to Tanaka or warn? Let's use Tanaka logic for men as Gulati is female specific) maxHeartRate = 208 – (0.7 * age); } } // Round MHR maxHeartRate = Math.round(maxHeartRate); // 5. Calculate Zones // We will use standard percentage zones. // If RHR is provided, we could use Karvonen, but for this specific request, // we will stick to % of MHR to keep the output table standard and robust. var zones = [ { id: 5, name: "Maximum", pct: "90-100%", minPct: 0.9, maxPct: 1.0, color: "zone-5", benefit: "Peak Performance & Speed" }, { id: 4, name: "Hard", pct: "80-90%", minPct: 0.8, maxPct: 0.9, color: "zone-4", benefit: "Lactate Threshold" }, { id: 3, name: "Moderate", pct: "70-80%", minPct: 0.7, maxPct: 0.8, color: "zone-3", benefit: "Aerobic Capacity" }, { id: 2, name: "Light", pct: "60-70%", minPct: 0.6, maxPct: 0.7, color: "zone-2", benefit: "Fat Burning & Endurance" }, { id: 1, name: "Very Light", pct: "50-60%", minPct: 0.5, maxPct: 0.6, color: "zone-1", benefit: "Warm Up & Recovery" } ]; // 6. Generate HTML for Zones var tableHtml = ""; for (var i = 0; i 0) { var prevZoneHigh = Math.round(maxHeartRate * zones[i-1].minPct); // This logic ensures continuity, but simple math is usually fine. // Let's stick to the direct calculation for clarity in the UI. } tableHtml += ""; tableHtml += "Zone " + zone.id + " " + zone.name + ""; tableHtml += "" + zone.pct + ""; tableHtml += "" + lowBpm + " – " + highBpm + " bpm"; tableHtml += "" + zone.benefit + ""; tableHtml += ""; } // 7. Update DOM resultBpm.innerText = maxHeartRate; zonesBody.innerHTML = tableHtml; resultSection.style.display = "block"; // Scroll to results resultSection.scrollIntoView({ behavior: 'smooth' }); }

Leave a Comment