Heart Rate for Running Calculator

Running Heart Rate Zone Calculator

Your Training Intensity Zones

Calculated using the Karvonen Formula (Heart Rate Reserve).

Zone Intensity BPM Range Purpose

Understanding Your Running 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 relying on perceived exertion or "pace," which can be affected by heat, terrain, or fatigue, heart rate provides a direct physiological window into how hard your cardiovascular system is working.

How the Calculator Works

This calculator utilizes the Karvonen Formula. Unlike the simple "220 minus age" method, the Karvonen formula incorporates your Resting Heart Rate (RHR) to determine your Heart Rate Reserve (HRR). This provides a much more personalized set of training zones because it accounts for your current fitness level.

The Five Training Zones Explained

  • Zone 1 (Recovery): 50-60% of HRR. This is for very light activity, warm-ups, and cool-downs. It improves overall health and helps recovery after harder sessions.
  • Zone 2 (Aerobic Base): 60-70% of HRR. The "gold standard" for long-distance runners. This builds endurance, strengthens the heart, and teaches the body to burn fat more efficiently.
  • Zone 3 (Tempo): 70-80% of HRR. This improves aerobic power. It's the pace where you can still talk in short sentences but you're breathing deeply.
  • Zone 4 (Threshold): 80-90% of HRR. This enhances your anaerobic capacity and moves your lactate threshold higher, allowing you to run faster for longer periods.
  • Zone 5 (Anaerobic/Redline): 90-100% of HRR. High-intensity interval training (HIIT) and sprints. This increases maximum performance and speed but can only be sustained for short bursts.

Practical Running Examples

Consider a 35-year-old runner with a resting heart rate of 60 BPM:

  1. Easy Run: Should stay within Zone 2 (approx. 135-147 BPM). This builds the "engine" without overtaxing the nervous system.
  2. Interval Session: Target Zone 4 or 5 (173+ BPM) during the work intervals to improve speed and V02 Max.
  3. Recovery Run: Keep it strictly in Zone 1 (122-135 BPM) the day after a race or hard workout.
function calculateHeartZones() { var age = document.getElementById('hr_age').value; var rhr = document.getElementById('hr_resting').value; var resultsDiv = document.getElementById('hr_results'); var tableBody = document.getElementById('hr_table_body'); var maxDisplay = document.getElementById('hr_max_display'); if (age === "" || rhr === "" || age <= 0 || rhr <= 0) { alert("Please enter valid age and resting heart rate numbers."); return; } var ageNum = parseFloat(age); var rhrNum = parseFloat(rhr); // Calculate Max Heart Rate (Haskell & Fox formula) var mhr = 220 – ageNum; // Calculate Heart Rate Reserve var hrr = mhr – rhrNum; if (hrr <= 0) { alert("Resting heart rate cannot be higher than or equal to your theoretical maximum heart rate. Please check your inputs."); return; } var zones = [ { name: "Zone 1", label: "Very Light", low: 0.50, high: 0.60, purpose: "Recovery & Health" }, { name: "Zone 2", label: "Light", low: 0.60, high: 0.70, purpose: "Endurance & Fat Burn" }, { name: "Zone 3", label: "Moderate", low: 0.70, high: 0.80, purpose: "Aerobic Capacity" }, { name: "Zone 4", label: "Hard", low: 0.80, high: 0.90, purpose: "Anaerobic Threshold" }, { name: "Zone 5", label: "Maximum", low: 0.90, high: 1.00, purpose: "Speed & VO2 Max" } ]; var html = ""; for (var i = 0; i < zones.length; i++) { var z = zones[i]; // Karvonen: ((MHR – RHR) * Intensity) + RHR var bpmLow = Math.round((hrr * z.low) + rhrNum); var bpmHigh = Math.round((hrr * z.high) + rhrNum); html += ""; html += "" + z.name + ""; html += "" + (z.low * 100) + "% – " + (z.high * 100) + "% (" + z.label + ")"; html += "" + bpmLow + " – " + bpmHigh + " BPM"; html += "" + z.purpose + ""; html += ""; } tableBody.innerHTML = html; maxDisplay.innerHTML = "Estimated Max Heart Rate: " + mhr + " BPM | Heart Rate Reserve: " + hrr + " BPM"; resultsDiv.style.display = "block"; // Smooth scroll to results resultsDiv.scrollIntoView({ behavior: 'smooth', block: 'nearest' }); }

Leave a Comment