Exercise Heart Rate Zones Calculator

Exercise Heart Rate Zones Calculator .hr-calculator-container { max-width: 800px; margin: 0 auto; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; line-height: 1.6; color: #333; } .hr-calc-box { background: #f9fbfd; border: 1px solid #e1e4e8; border-radius: 8px; padding: 30px; margin-bottom: 40px; box-shadow: 0 4px 6px rgba(0,0,0,0.05); } .hr-calc-title { text-align: center; margin-bottom: 25px; color: #2c3e50; 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: #4a5568; } .hr-input-group input { width: 100%; padding: 12px; border: 1px solid #cbd5e0; border-radius: 6px; font-size: 16px; box-sizing: border-box; transition: border-color 0.2s; } .hr-input-group input:focus { border-color: #3182ce; outline: none; box-shadow: 0 0 0 3px rgba(49, 130, 206, 0.1); } .hr-calc-btn { display: block; width: 100%; padding: 14px; background: #e53e3e; color: white; border: none; border-radius: 6px; font-size: 18px; font-weight: 600; cursor: pointer; transition: background 0.2s; margin-top: 10px; } .hr-calc-btn:hover { background: #c53030; } #hr-result-section { display: none; margin-top: 30px; animation: fadeIn 0.5s ease-in; } .hr-summary { text-align: center; margin-bottom: 20px; background: #fff; padding: 15px; border-radius: 6px; border: 1px solid #eee; } .hr-summary h3 { margin: 0; color: #2d3748; } .hr-summary span { font-size: 2em; font-weight: bold; color: #e53e3e; } .hr-zones-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-zones-table th, .hr-zones-table td { padding: 15px; text-align: left; border-bottom: 1px solid #eee; } .hr-zones-table th { background-color: #edf2f7; font-weight: 600; color: #2d3748; } .zone-row-1 { border-left: 5px solid #a0aec0; } /* Grey */ .zone-row-2 { border-left: 5px solid #4299e1; } /* Blue */ .zone-row-3 { border-left: 5px solid #48bb78; } /* Green */ .zone-row-4 { border-left: 5px solid #ed8936; } /* Orange */ .zone-row-5 { border-left: 5px solid #f56565; } /* Red */ .hr-content h2 { color: #2c3e50; margin-top: 40px; border-bottom: 2px solid #e53e3e; padding-bottom: 10px; display: inline-block; } .hr-content p, .hr-content li { color: #4a5568; font-size: 16px; } .hr-content ul { margin-left: 20px; } @keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } } .error-msg { color: #e53e3e; font-size: 14px; margin-top: 5px; display: none; }
Heart Rate Zone Calculator
Please enter a valid age between 10 and 100.
Enter 0 or leave blank to use the standard Max HR formula. Entering a value activates the Karvonen formula (more accurate).

Estimated Max Heart Rate

BPM
Zone Intensity Heart Rate Range (BPM) Benefit

Optimizing Performance: The Ultimate Guide to Heart Rate Zones

Training effectively isn't just about how fast you run or how heavy you lift; it is fundamentally about biology. To maximize cardiovascular efficiency, fat loss, or athletic performance, you must train at the right intensity. Our Heart Rate Zones Calculator helps you identify these critical intensity levels tailored specifically to your physiology.

Why Heart Rate Training Matters

Your heart rate is a direct biofeedback mechanism that indicates how much stress your body is under. Training "blindly" often leads to the "grey zone"—a level of intensity that is too hard to be easy (inhibiting recovery) but too easy to be hard (limiting performance gains). By defining specific zones, you can target specific energy systems:

  • Aerobic Efficiency: Building the "engine" to go longer.
  • Lactate Threshold: Teaching the body to clear metabolic waste faster.
  • Anaerobic Capacity: Improving raw speed and power.

Understanding the 5 Heart Rate Zones

This calculator divides your training intensity into five distinct zones. Depending on whether you input your Resting Heart Rate (RHR), the calculator uses either the standard Max Heart Rate formula or the Karvonen formula.

Zone 1: Very Light (50-60%)

This is the recovery zone. It is used for warming up, cooling down, and active recovery days. Training here increases blood flow to muscles to flush out waste products without placing undue stress on the cardiovascular system.

Zone 2: Light (60-70%)

Often called the "Fat Burning Zone." Here, your body learns to utilize fat as its primary fuel source. It builds the base for endurance training and improves overall metabolic health. You should be able to hold a conversation easily in this zone.

Zone 3: Moderate (70-80%)

The aerobic zone. This intensity improves blood circulation and the efficiency of the heart and lungs. It is harder than Zone 2, and conversation becomes difficult (short sentences only). This is where aerobic capacity is built.

Zone 4: Hard (80-90%)

The threshold zone. You are shifting from aerobic to anaerobic metabolism. Your body produces lactic acid faster than it can clear it. Training here increases your VO2 Max and tolerance to lactic acid build-up.

Zone 5: Maximum (90-100%)

Redline intensity. This zone is sustainable for only very short bursts (seconds to a few minutes). It is used for interval training to develop peak speed and neuromuscular power.

The Karvonen Formula vs. Standard Formula

Most basic trackers calculate zones based solely on age (220 – Age). However, this ignores your fitness level. This calculator prefers the Karvonen Method if you provide your Resting Heart Rate.

The formula is: Target HR = ((Max HR − Resting HR) × %Intensity) + Resting HR.

By including your resting heart rate, the zones are adjusted to your specific cardiovascular reserve, making the data significantly more accurate for athletes with lower resting heart rates.

How to Measure Resting Heart Rate

For the most accurate results, measure your pulse immediately after waking up in the morning, before getting out of bed or drinking caffeine. Count the beats for 60 seconds. Do this for 3 days and take the average.

function calculateHeartZones() { // 1. Get DOM elements var ageInput = document.getElementById('hrAge'); var rhrInput = document.getElementById('hrRHR'); var ageError = document.getElementById('ageError'); var resultSection = document.getElementById('hr-result-section'); var displayMaxHR = document.getElementById('displayMaxHR'); var tableBody = document.getElementById('zonesTableBody'); // 2. Parse values var age = parseFloat(ageInput.value); var rhr = parseFloat(rhrInput.value); // 3. Validation var isValid = true; if (isNaN(age) || age 100) { ageError.style.display = 'block'; isValid = false; } else { ageError.style.display = 'none'; } if (!isValid) return; // 4. Calculation Logic var maxHR = 220 – age; // Standard estimation var useKarvonen = false; // Check if RHR is valid for Karvonen if (!isNaN(rhr) && rhr > 30 && rhr < maxHR) { useKarvonen = true; } var heartRateReserve = maxHR – rhr; // Define Zone Percentages var zones = [ { id: 1, name: "Very Light / Recovery", minPct: 0.50, maxPct: 0.60, colorClass: "zone-row-1", benefit: "Warm up, Active Recovery" }, { id: 2, name: "Light / Fat Burn", minPct: 0.60, maxPct: 0.70, colorClass: "zone-row-2", benefit: "Endurance Base, Fat Metabolism" }, { id: 3, name: "Moderate / Aerobic", minPct: 0.70, maxPct: 0.80, colorClass: "zone-row-3", benefit: "Aerobic Fitness, Blood Circulation" }, { id: 4, name: "Hard / Threshold", minPct: 0.80, maxPct: 0.90, colorClass: "zone-row-4", benefit: "High Speed Endurance, Lactic Tolerance" }, { id: 5, name: "Maximum / VO2 Max", minPct: 0.90, maxPct: 1.00, colorClass: "zone-row-5", benefit: "Max Effort, Speed, Power" } ]; // 5. Build Table HTML var tableHTML = ""; for (var i = 0; i < zones.length; i++) { var z = zones[i]; var minBPM, maxBPM; if (useKarvonen) { // Karvonen Formula: ((MaxHR – RHR) * %Intensity) + RHR minBPM = Math.round((heartRateReserve * z.minPct) + rhr); maxBPM = Math.round((heartRateReserve * z.maxPct) + rhr); } else { // Standard Formula: MaxHR * %Intensity minBPM = Math.round(maxHR * z.minPct); maxBPM = Math.round(maxHR * z.maxPct); } tableHTML += ''; tableHTML += 'Zone ' + z.id + ''; tableHTML += '' + (z.minPct * 100) + '% – ' + (z.maxPct * 100) + '%'; tableHTML += '' + minBPM + ' – ' + maxBPM + ' bpm'; tableHTML += '' + z.benefit + ''; tableHTML += ''; } // 6. Update DOM displayMaxHR.innerText = maxHR; tableBody.innerHTML = tableHTML; resultSection.style.display = 'block'; // Scroll to results resultSection.scrollIntoView({ behavior: 'smooth', block: 'nearest' }); }

Leave a Comment