Max Heart Rate Running Calculator

Max Heart Rate Running Calculator

Optimize your training zones for peak performance

Male Female

Your Predicted Max HR: BPM

Based on the Tanaka Formula (most accurate for active adults).

Fox (220-Age)
BPM
Gellish Formula
BPM

Suggested Training Zones

Why Calculating Your Max Heart Rate Matters for Runners

Every runner has a unique physiological ceiling. Your Maximum Heart Rate (MHR) is the highest number of beats per minute your heart can achieve during maximum physical exertion. Knowing this number isn't just a fun fact—it is the foundation for Heart Rate Zone Training.

The Formulas Used in This Calculator

While the old "220 minus age" formula is the most famous, it is often inaccurate by up to 10-12 beats per minute. Our calculator uses four scientifically validated methods:

  • Tanaka Formula: 208 – (0.7 × age). Considered the gold standard for healthy, active adults.
  • Fox Formula: 220 – age. The traditional baseline.
  • Gellish Formula: 207 – (0.7 × age). Excellent for athletic populations.
  • Gulati Formula: Specifically adjusted for women's physiology (used automatically when "Female" is selected).

Understanding Your Training Zones

Once you have your MHR, you can divide your running into five specific zones to ensure you aren't "over-training" or "under-training":

Zone Intensity Purpose
Zone 1 50-60% Recovery & Warm-up
Zone 2 60-70% Aerobic Base & Fat Burn
Zone 3 70-80% Aerobic Fitness/Tempo
Zone 4 80-90% Anaerobic Threshold
Zone 5 90-100% VO2 Max/Sprints

Example: 40-Year-Old Runner

Using the Tanaka formula for a 40-year-old:
208 – (0.7 × 40) = 208 – 28 = 180 BPM.
Their "Easy Run" (Zone 2) would be between 108 and 126 BPM. If they only used the Fox formula (220-40=180), the results match here, but as you age, the Tanaka formula becomes significantly more reliable.

function calculateMHR() { var age = parseFloat(document.getElementById('runnerAge').value); var gender = document.getElementById('runnerGender').value; var resultsDiv = document.getElementById('mhr-results'); if (isNaN(age) || age 120) { alert("Please enter a valid age between 1 and 120."); return; } // Tanaka Formula (208 – 0.7 * age) var tanaka = 208 – (0.7 * age); // Fox Formula (220 – age) var fox = 220 – age; // Gellish Formula (207 – 0.7 * age) var gellish = 207 – (0.7 * age); // Gulati (Women specific) var gulati = 206 – (0.88 * age); // Set Primary Result (Tanaka) document.getElementById('primaryResult').innerText = Math.round(tanaka); document.getElementById('foxResult').innerText = Math.round(fox); document.getElementById('gellishResult').innerText = Math.round(gellish); // Calculate Zones based on Tanaka var zonesHTML = "; var mhr = tanaka; var zones = [ { name: "Zone 1 (Recovery)", min: 0.50, max: 0.60, color: "#2ecc71" }, { name: "Zone 2 (Aerobic)", min: 0.60, max: 0.70, color: "#3498db" }, { name: "Zone 3 (Tempo)", min: 0.70, max: 0.80, color: "#f1c40f" }, { name: "Zone 4 (Threshold)", min: 0.80, max: 0.90, color: "#e67e22" }, { name: "Zone 5 (Sprints)", min: 0.90, max: 1.00, color: "#e74c3c" } ]; for (var i = 0; i < zones.length; i++) { var low = Math.round(mhr * zones[i].min); var high = Math.round(mhr * zones[i].max); zonesHTML += '
' + ' ' + zones[i].name + '' + '' + low + ' – ' + high + ' BPM' + '
'; } document.getElementById('trainingZones').innerHTML = zonesHTML; resultsDiv.style.display = 'block'; // Smooth scroll to results resultsDiv.scrollIntoView({ behavior: 'smooth', block: 'nearest' }); }

Leave a Comment