Heart Rate Zone Running Calculator

.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 #e1e1e1; 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: 30px; } .hr-calc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-bottom: 25px; } .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; transition: border-color 0.3s; } .hr-input-group input:focus { border-color: #e91e63; outline: none; } .hr-calc-btn { grid-column: span 2; background-color: #e91e63; color: white; border: none; padding: 15px; font-size: 18px; font-weight: bold; border-radius: 6px; cursor: pointer; transition: background 0.3s; } .hr-calc-btn:hover { background-color: #c2185b; } .hr-results { margin-top: 30px; display: none; } .hr-table { width: 100%; border-collapse: collapse; margin-top: 15px; } .hr-table th, .hr-table td { padding: 12px; text-align: left; border-bottom: 1px solid #eee; } .hr-table th { background-color: #f8f9fa; color: #555; } .zone-box { display: inline-block; width: 12px; height: 12px; margin-right: 8px; border-radius: 2px; } .z1 { background-color: #9e9e9e; } .z2 { background-color: #4caf50; } .z3 { background-color: #ffeb3b; } .z4 { background-color: #ff9800; } .z5 { background-color: #f44336; } .hr-article { margin-top: 40px; line-height: 1.6; color: #444; } .hr-article h2 { color: #222; margin-top: 25px; } .hr-article ul { padding-left: 20px; } @media (max-width: 600px) { .hr-calc-grid { grid-template-columns: 1fr; } .hr-calc-btn { grid-column: span 1; } }

Heart Rate Zone Running Calculator

Calculate your personalized training zones using the Karvonen Formula.

Your Personalized Training Zones

Based on your Heart Rate Reserve (HRR): BPM

Zone Intensity Range (BPM)

Mastering Your Run with Heart Rate Zones

Training by heart rate is one of the most effective ways for runners to ensure they are working at the correct intensity for their specific fitness goals. Instead of guessing based on "perceived exertion," a heart rate zone running calculator uses your physiological data to define exactly how hard your heart should be beating during a recovery run, a tempo run, or an interval session.

The Karvonen Formula Explained

This calculator utilizes the Karvonen Formula. Unlike a simple percentage of max heart rate, the Karvonen method incorporates your Resting Heart Rate (RHR) to determine your Heart Rate Reserve (HRR). This provides a much more accurate representation of your true exertion levels because it accounts for your baseline fitness level.

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

Understanding the 5 Running Zones

  • Zone 1 (50-60% HRR): Very Light. Best for active recovery and warming up. You should be able to hold a full conversation easily.
  • Zone 2 (60-70% HRR): Light/Endurance. This is the "aerobic base" zone. Most of your weekly mileage should be in this zone to build cardiovascular efficiency and burn fat.
  • Zone 3 (70-80% HRR): Moderate/Aerobic. This improves your aerobic capacity. It's the "comfortably hard" zone often used for long steady-state runs.
  • Zone 4 (80-90% HRR): Hard/Threshold. This is your anaerobic threshold. You can only maintain this for 20-60 minutes. It improves your speed endurance.
  • Zone 5 (90-100% HRR): Maximum Effort. Reserved for short intervals and sprints. It develops peak performance and speed.

Real-World Example

Let's look at a 30-year-old runner with a resting heart rate of 60 BPM:

  • Max Heart Rate: 220 – 30 = 190 BPM
  • Heart Rate Reserve: 190 – 60 = 130 BPM
  • Zone 2 Target (60%): (130 * 0.60) + 60 = 138 BPM
  • Zone 2 Target (70%): (130 * 0.70) + 60 = 151 BPM

This runner would aim to keep their heart rate between 138 and 151 BPM during their easy endurance runs to maximize the benefits of Zone 2 training.

How to Measure Your Resting Heart Rate

To get the most accurate results from this calculator, measure your RHR first thing in the morning before getting out of bed. Use a smartwatch or manually count your pulse at your wrist (radial artery) for 60 seconds. Repeat this for three mornings and take the average.

function calculateHRZones() { var ageInput = document.getElementById('hrAge').value; var rhrInput = document.getElementById('hrRHR').value; if (ageInput === " || rhrInput === ") { alert('Please enter both your age and resting heart rate.'); return; } var age = parseFloat(ageInput); var rhr = parseFloat(rhrInput); if (age <= 0 || rhr <= 0) { alert('Please enter valid positive numbers.'); return; } var maxHR = 220 – age; var hrr = maxHR – rhr; if (hrr <= 0) { alert('Calculated Heart Rate Reserve is too low. Please check your inputs.'); return; } document.getElementById('hrrValue').innerText = hrr; var zones = [ { name: 'Zone 1 (Recovery)', min: 0.50, max: 0.60, class: 'z1' }, { name: 'Zone 2 (Endurance)', min: 0.60, max: 0.70, class: 'z2' }, { name: 'Zone 3 (Aerobic)', min: 0.70, max: 0.80, class: 'z3' }, { name: 'Zone 4 (Threshold)', min: 0.80, max: 0.90, class: 'z4' }, { name: 'Zone 5 (Max Effort)', min: 0.90, max: 1.00, class: 'z5' } ]; var tableBody = document.getElementById('hrTableBody'); tableBody.innerHTML = ''; for (var i = 0; i < zones.length; i++) { var zoneMin = Math.round((hrr * zones[i].min) + rhr); var zoneMax = Math.round((hrr * zones[i].max) + rhr); var row = document.createElement('tr'); var cell1 = document.createElement('td'); cell1.innerHTML = '' + zones[i].name; var cell2 = document.createElement('td'); cell2.innerText = (zones[i].min * 100) + '% – ' + (zones[i].max * 100) + '%'; var cell3 = document.createElement('td'); cell3.innerText = zoneMin + ' – ' + zoneMax + ' BPM'; row.appendChild(cell1); row.appendChild(cell2); row.appendChild(cell3); tableBody.appendChild(row); } document.getElementById('hrResults').style.display = 'block'; // Scroll to results on mobile if (window.innerWidth < 600) { document.getElementById('hrResults').scrollIntoView({ behavior: 'smooth' }); } }

Leave a Comment