Fox Formula (Standard)
Tanaka Formula (Over 40s)
Gulati Formula (Women)
Haskell & Fox (Aggressive)
Estimated Maximum Heart Rate0 BPM
Your Target Training Zones
Zone
Intensity
Target Range (BPM)
Benefit
What is the Formula for Calculating Your Maximum Heart Rate?
Calculating your maximum heart rate (MHR) is a fundamental step in designing an effective and safe cardiovascular training program. Your MHR represents the highest number of beats per minute (BPM) your heart can achieve during maximum physical exertion. While a clinical stress test is the most accurate method, mathematical formulas provide a reliable estimate for the general population.
The Formulas Explained
There is no single "perfect" formula, as individual physiology varies. However, researchers have developed several equations to estimate MHR based on age and gender.
1. The Fox Formula (Standard)
This is the most widely recognized and simplest formula. It is commonly used for general fitness but can underestimate MHR in older adults.
MHR = 220 – Age
2. The Tanaka Formula
Published in 2001, this study found the Fox formula often underestimated MHR for older adults. The Tanaka equation is generally considered more accurate for healthy adults over the age of 40.
MHR = 208 – (0.7 × Age)
3. The Gulati Formula (For Women)
Research conducted at Northwestern Medicine in 2010 suggested that the standard formula often overestimates MHR in women. The Gulati formula provides a gender-specific calculation for better accuracy.
MHR = 206 – (0.88 × Age)
Understanding Heart Rate Training Zones
Once you have calculated your Maximum Heart Rate, you can determine your target training zones. These zones help you train at the right intensity for your specific goals.
Zone 1 (50-60%): Very light intensity. Used for warm-ups and active recovery.
Zone 2 (60-70%): Light intensity. Often called the "Fat Burning Zone," this improves general endurance and metabolic efficiency.
Zone 3 (70-80%): Moderate intensity. Improves aerobic capacity and blood circulation.
Zone 4 (80-90%): Hard intensity. Increases speed endurance and high-intensity performance.
Zone 5 (90-100%): Maximum effort. Only sustainable for very short bursts; improves sprint speed and neuromuscular power.
Factors Affecting Maximum Heart Rate
It is important to remember that these formulas are estimates. Several factors can influence your actual maximum heart rate:
Genetics: Some individuals naturally have higher or lower max heart rates.
Altitude: High altitudes can temporarily lower your MHR capacity.
Medication: Beta-blockers and other medications can significantly suppress heart rate.
Fitness Level: Interestingly, MHR does not significantly change with fitness, though your resting heart rate will lower as you get fitter.
Disclaimer: This tool provides estimates for informational purposes only. Always consult a physician before beginning a new exercise program, especially if you have a history of heart conditions.
function calculateMaxHeartRate() {
// 1. Get Input Values
var ageInput = document.getElementById('inputAge');
var formulaSelect = document.getElementById('inputFormula');
var resultContainer = document.getElementById('resultContainer');
var displayMaxHR = document.getElementById('displayMaxHR');
var displayFormulaUsed = document.getElementById('displayFormulaUsed');
var zonesBody = document.getElementById('zonesTableBody');
var age = parseFloat(ageInput.value);
var method = formulaSelect.value;
// 2. Validate Input
if (isNaN(age) || age 120) {
alert("Please enter a valid age between 1 and 120.");
return;
}
// 3. Calculate MHR based on selected formula
var mhr = 0;
var formulaText = "";
if (method === 'fox') {
mhr = 220 – age;
formulaText = "Formula Used: Fox (220 – Age)";
} else if (method === 'tanaka') {
mhr = 208 – (0.7 * age);
formulaText = "Formula Used: Tanaka (208 – 0.7 × Age)";
} else if (method === 'gulati') {
mhr = 206 – (0.88 * age);
formulaText = "Formula Used: Gulati (206 – 0.88 × Age)";
} else if (method === 'haskell') {
mhr = 220 – age; // Haskell is practically same as Fox in basic form, often cited as HRmax
// Sometimes cited as 205.8 – (0.685 * age), let's use a variation or stick to Fox base.
// Let's use the Inbar equation actually which is aggressive: 205.8 – 0.685 * age
mhr = 205.8 – (0.685 * age);
formulaText = "Formula Used: Inbar/Haskell (205.8 – 0.685 × Age)";
}
// Round MHR to nearest whole number
mhr = Math.round(mhr);
// 4. Update UI with MHR
displayMaxHR.innerText = mhr + " BPM";
displayFormulaUsed.innerText = formulaText;
resultContainer.style.display = "block";
// 5. Calculate Zones
// Zone logic:
// Z1: 50-60%, Z2: 60-70%, Z3: 70-80%, Z4: 80-90%, Z5: 90-100%
var zones = [
{ id: 1, minPct: 0.50, maxPct: 0.60, name: "Very Light", benefit: "Warm up, Recovery" },
{ id: 2, minPct: 0.60, maxPct: 0.70, name: "Light (Fat Burn)", benefit: "Endurance, Fat Metabolism" },
{ id: 3, minPct: 0.70, maxPct: 0.80, name: "Moderate (Aerobic)", benefit: "Aerobic Capacity" },
{ id: 4, minPct: 0.80, maxPct: 0.90, name: "Hard (Anaerobic)", benefit: "Speed Endurance" },
{ id: 5, minPct: 0.90, maxPct: 1.00, name: "Maximum", benefit: "Max Power, Sprinting" }
];
// Clear previous table rows
zonesBody.innerHTML = "";
// Build Table Rows
for (var i = 0; i 0) minBpm = minBpm + 1; // start next zone 1 beat higher
var row = document.createElement('tr');
row.className = "mhr-zone-" + z.id;
var html = "