Marathon Heart Rate Calculator

Marathon Heart Rate Calculator: Training Zones & Race Pace :root { –primary-color: #e74c3c; –secondary-color: #2c3e50; –accent-color: #ecf0f1; –text-color: #333; –border-radius: 8px; } body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; line-height: 1.6; color: var(–text-color); max-width: 1200px; margin: 0 auto; padding: 20px; background-color: #f9f9f9; } .container { display: flex; flex-wrap: wrap; gap: 40px; } .calculator-section { flex: 1; min-width: 300px; background: white; padding: 30px; border-radius: var(–border-radius); box-shadow: 0 4px 15px rgba(0,0,0,0.1); } .content-section { flex: 1.5; min-width: 300px; } h1, h2, h3 { color: var(–secondary-color); margin-bottom: 20px; } h1 { text-align: center; width: 100%; border-bottom: 2px solid var(–primary-color); padding-bottom: 10px; } .form-group { margin-bottom: 20px; } label { display: block; margin-bottom: 5px; font-weight: 600; color: var(–secondary-color); } input { width: 100%; padding: 12px; border: 1px solid #ddd; border-radius: var(–border-radius); font-size: 16px; box-sizing: border-box; } input:focus { border-color: var(–primary-color); outline: none; } .btn-calc { width: 100%; background-color: var(–primary-color); color: white; padding: 15px; border: none; border-radius: var(–border-radius); font-size: 18px; font-weight: bold; cursor: pointer; transition: background 0.3s; } .btn-calc:hover { background-color: #c0392b; } #results { margin-top: 30px; display: none; background-color: var(–accent-color); padding: 20px; border-radius: var(–border-radius); } .result-card { background: white; padding: 15px; border-radius: 6px; margin-bottom: 15px; border-left: 5px solid var(–primary-color); } .result-card h4 { margin: 0 0 10px 0; color: var(–secondary-color); } .result-value { font-size: 24px; font-weight: bold; color: var(–primary-color); } table { width: 100%; border-collapse: collapse; margin-top: 20px; background: white; } th, td { padding: 12px; text-align: left; border-bottom: 1px solid #ddd; } th { background-color: var(–secondary-color); color: white; } tr:nth-child(even) { background-color: #f2f2f2; } .highlight-row { background-color: #fadbd8 !important; font-weight: bold; } .small-text { font-size: 0.85em; color: #666; margin-top: 5px; } @media (max-width: 768px) { .container { flex-direction: column; } }

Marathon Heart Rate Calculator

Calculate Your Zones

Measure first thing in the morning.
If left empty, we estimate using 220 – Age.

Your Heart Rate Profile

Max Heart Rate (MHR)

0 BPM

Heart Rate Reserve (HRR)

0 BPM
MHR – Resting Heart Rate

Training Zones (Karvonen Method)

Zone Intensity Target Range (BPM)

Target Marathon Race Pace

0 – 0 BPM
Approx. 75% – 85% Intensity

Mastering Your Marathon Heart Rate

Training for a marathon requires more than just logging miles; it requires training at the right intensities to build aerobic capacity without overtraining. This calculator uses the Karvonen Method, which is widely considered more accurate for athletes than standard formulas because it accounts for your Resting Heart Rate (RHR).

Why Use Heart Rate Training?

Heart rate training allows runners to monitor their effort objectively. External factors like heat, humidity, dehydration, and elevation can make a standard pace feel much harder. By sticking to heart rate zones, you ensure you are staying within the appropriate physiological system regardless of the conditions.

Understanding the Zones

  • Zone 1 (Recovery / 50-60%): Used for warm-ups, cool-downs, and active recovery runs. This promotes blood flow and helps clear lactate.
  • Zone 2 (Aerobic Base / 60-70%): The "bread and butter" of marathon training. Running here builds mitochondrial density and teaches your body to burn fat as fuel.
  • Zone 3 (Aerobic Power / 70-80%): Often called the "grey zone." It is harder than easy running but not hard enough to be a threshold workout. However, for marathoners, the upper end of this zone often mimics race pace.
  • Zone 4 (Threshold / 80-90%): Your lactate threshold. Training here improves your body's ability to clear lactate at faster speeds.
  • Zone 5 (VO2 Max / 90-100%): Maximum effort sprints or intervals. Less common in marathon builds but useful for speed and leg turnover.

The "Marathon Zone"

For most recreational runners, the optimal marathon race strategy involves running primarily in the high-aerobic zone. This typically falls between 75% and 85% of your Heart Rate Reserve. Starting the race conservatively at the lower end of this range allows you to conserve glycogen stores for the final 10 kilometers, helping you avoid "hitting the wall."

How to Measure Resting Heart Rate

To get the most accurate results from this calculator:

  1. Check your pulse immediately after waking up, before getting out of bed.
  2. Count the beats for 60 seconds (or 30 seconds multiplied by 2).
  3. Repeat this for 3 days and take the average.
function calculateZones() { // 1. Get Inputs var ageInput = document.getElementById('age').value; var rhrInput = document.getElementById('restingHr').value; var maxHrInput = document.getElementById('maxHr').value; // 2. Validate basics if (ageInput === "" || rhrInput === "") { alert("Please enter both your Age and Resting Heart Rate."); return; } var age = parseFloat(ageInput); var rhr = parseFloat(rhrInput); if (isNaN(age) || age 120) { alert("Please enter a valid age."); return; } if (isNaN(rhr) || rhr 200) { alert("Please enter a valid resting heart rate."); return; } // 3. Determine Max HR var maxHr; if (maxHrInput !== "" && !isNaN(parseFloat(maxHrInput))) { maxHr = parseFloat(maxHrInput); } else { // Standard formula: 220 – Age maxHr = 220 – age; } // Validate Max HR vs RHR if (maxHr <= rhr) { alert("Max Heart Rate must be higher than Resting Heart Rate. Please check your inputs."); return; } // 4. Calculate HRR (Heart Rate Reserve) var hrr = maxHr – rhr; // 5. Update Summary Display document.getElementById('resMaxHr').innerHTML = Math.round(maxHr) + " BPM"; document.getElementById('resHrr').innerHTML = Math.round(hrr) + " BPM"; // 6. Calculate Zones (Karvonen: TargetHR = ((maxHr – rhr) * %Intensity) + rhr) // Helper function for calculation function getZoneLimit(percentage) { return Math.round((hrr * percentage) + rhr); } // Define Zones var zones = [ { name: "Zone 1 (Recovery)", minPct: 0.50, maxPct: 0.60, desc: "Warm up / Cool down" }, { name: "Zone 2 (Aerobic)", minPct: 0.60, maxPct: 0.70, desc: "Base building / Fat burning" }, { name: "Zone 3 (Tempo)", minPct: 0.70, maxPct: 0.80, desc: "Marathon prep / Steady state" }, { name: "Zone 4 (Threshold)", minPct: 0.80, maxPct: 0.90, desc: "Lactate threshold" }, { name: "Zone 5 (Maximum)", minPct: 0.90, maxPct: 1.00, desc: "VO2 Max / Sprints" } ]; // 7. Populate Table var tbody = document.getElementById('zoneBody'); tbody.innerHTML = ""; // Clear previous for (var i = 0; i < zones.length; i++) { var z = zones[i]; var minBpm = getZoneLimit(z.minPct); var maxBpm = getZoneLimit(z.maxPct); var row = ""; row += "" + z.name + "" + z.desc + ""; row += "" + Math.round(z.minPct * 100) + "% – " + Math.round(z.maxPct * 100) + "%"; row += "" + minBpm + " – " + maxBpm + " bpm"; row += ""; tbody.innerHTML += row; } // 8. Calculate Specific Marathon Pace (Typically 75% – 85% of HRR) var mpMin = getZoneLimit(0.75); var mpMax = getZoneLimit(0.85); document.getElementById('resMarathonPace').innerHTML = mpMin + " – " + mpMax + " BPM"; // 9. Show Results document.getElementById('results').style.display = "block"; }

Leave a Comment