Estimate your Max Heart Rate (MHR) and training zones.
Please enter a valid age between 1 and 120.
Fox Formula (Standard: 220 – Age)
Tanaka Formula (208 – 0.7 × Age)
Gellish Formula (207 – 0.7 × Age)
Gulati Formula (Women: 206 – 0.88 × Age)
Estimated Max Heart Rate
0bpm
Target Training Zones
Zone
Intensity
Heart Rate Range
Benefit
Understanding Your Maximum Heart Rate
Your Maximum Heart Rate (MHR) is the highest number of beats per minute (bpm) your heart can pump under maximum stress. It is a crucial metric for athletes and fitness enthusiasts to determine training intensities and ensure safety during exercise. While a clinical stress test is the most accurate way to measure MHR, mathematical formulas provide a reliable estimate for most individuals.
Common Formulas Used
Over the years, researchers have developed several formulas to estimate MHR based on age. This calculator allows you to choose between the most scientifically recognized methods:
1. The Fox Formula
This is the most widely used and simplest formula, often found on cardio equipment.
MHR = 220 – Age
2. The Tanaka Formula
Proposed in 2001, this formula is considered more accurate for healthy adults across a wider age range.
MHR = 208 – (0.7 × Age)
3. The Gellish Formula
Similar to Tanaka, this non-linear regression formula is often used in clinical settings.
MHR = 207 – (0.7 × Age)
4. The Gulati Formula (For Women)
Research suggests the standard formulas may overestimate MHR for women. The Gulati formula is specifically calibrated for female physiology.
MHR = 206 – (0.88 × Age)
Heart Rate Training Zones
Once you know your MHR, you can calculate specific heart rate zones to target different fitness goals:
Zone 1 (50-60%): Very light activity used for warm-ups and recovery.
Zone 2 (60-70%): The "Fat Burning" zone. Builds basic endurance and burns fat efficiently.
Zone 3 (70-80%): Aerobic zone. Improves cardiovascular system and stamina.
Zone 4 (80-90%): Anaerobic zone. Improves high-speed endurance and lactic acid tolerance.
Zone 5 (90-100%): Maximum effort. Used for short interval sprints by advanced athletes.
Disclaimer
These calculations are estimates. Genetics, medication, and fitness levels can significantly influence your actual maximum heart rate. Always consult a physician before starting a new exercise program, especially if you have a history of heart conditions.
function calculateHeartRate() {
var ageInput = document.getElementById('calcAge');
var formulaInput = document.getElementById('calcFormula');
var ageError = document.getElementById('ageError');
var resultSection = document.getElementById('resultSection');
var mhrDisplay = document.getElementById('mhrResult');
var zonesBody = document.getElementById('zonesBody');
// Reset error state
ageError.style.display = 'none';
var age = parseFloat(ageInput.value);
var formula = formulaInput.value;
// Validation
if (isNaN(age) || age 120) {
ageError.style.display = 'block';
resultSection.style.display = 'none';
return;
}
// Calculate MHR based on formula
var mhr = 0;
if (formula === 'fox') {
mhr = 220 – age;
} else if (formula === 'tanaka') {
mhr = 208 – (0.7 * age);
} else if (formula === 'gellish') {
mhr = 207 – (0.7 * age);
} else if (formula === 'gulati') {
mhr = 206 – (0.88 * age);
}
// Round MHR to nearest whole number
mhr = Math.round(mhr);
// Update MHR Display
mhrDisplay.textContent = mhr;
resultSection.style.display = 'block';
// Calculate Zones
// Zone 1: 50-60%
// Zone 2: 60-70%
// Zone 3: 70-80%
// Zone 4: 80-90%
// Zone 5: 90-100%
var zones = [
{
name: "Zone 1",
intensity: "50% – 60%",
range: Math.round(mhr * 0.5) + " – " + Math.round(mhr * 0.6) + " bpm",
benefit: "Warm Up / Recovery",
color: "#bdc3c7"
},
{
name: "Zone 2",
intensity: "60% – 70%",
range: Math.round(mhr * 0.6 + 1) + " – " + Math.round(mhr * 0.7) + " bpm",
benefit: "Fat Burn / Endurance",
color: "#3498db"
},
{
name: "Zone 3",
intensity: "70% – 80%",
range: Math.round(mhr * 0.7 + 1) + " – " + Math.round(mhr * 0.8) + " bpm",
benefit: "Aerobic Capacity",
color: "#2ecc71"
},
{
name: "Zone 4",
intensity: "80% – 90%",
range: Math.round(mhr * 0.8 + 1) + " – " + Math.round(mhr * 0.9) + " bpm",
benefit: "Anaerobic Threshold",
color: "#f1c40f"
},
{
name: "Zone 5",
intensity: "90% – 100%",
range: Math.round(mhr * 0.9 + 1) + " – " + mhr + " bpm",
benefit: "Maximum Performance",
color: "#e74c3c"
}
];
// Clear previous table rows
zonesBody.innerHTML = ";
// Populate table
for (var i = 0; i < zones.length; i++) {
var row = document.createElement('tr');
var zoneCell = document.createElement('td');
zoneCell.innerHTML = '' + zones[i].name;
var intensityCell = document.createElement('td');
intensityCell.textContent = zones[i].intensity;
var rangeCell = document.createElement('td');
rangeCell.textContent = zones[i].range;
rangeCell.style.fontWeight = 'bold';
var benefitCell = document.createElement('td');
benefitCell.textContent = zones[i].benefit;
row.appendChild(zoneCell);
row.appendChild(intensityCell);
row.appendChild(rangeCell);
row.appendChild(benefitCell);
zonesBody.appendChild(row);
}
}