Fox Formula (Standard: 220 – Age)
Tanaka Formula (208 – 0.7 × Age)
Gulati Formula (Women: 206 – 0.88 × Age)
Gellish Formula (207 – 0.7 × Age)
Enter this to calculate zones using the Karvonen Method (more accurate).
Estimated Maximum Heart Rate
0BPM (Beats Per Minute)
Your Target Heart Rate Training Zones
Zone
Intensity
Target Pulse Range
Benefit
Understanding Your Maximum Pulse Rate
Your maximum pulse rate, or Maximum Heart Rate (MHR), is the highest number of beats per minute your heart can pump under maximum stress. Determining this number is the foundational step for creating effective cardiovascular training programs.
Why Calculate Your Max Pulse?
Training at specific percentages of your maximum pulse allows you to target different energy systems in your body. Whether you want to burn fat, improve aerobic endurance, or increase peak performance, knowing your "zones" ensures you aren't training too easily to see results or too hard to sustain safety.
Calculation Formulas Explained
This calculator offers several scientific methods to estimate your MHR:
1. The Fox Formula
MHR = 220 – Age
This is the most common and simplest formula. It is widely used for the general population but can have a margin of error of roughly 10-12 beats per minute.
2. The Tanaka Formula
MHR = 208 – (0.7 × Age)
Developed to be more accurate for older adults and those over age 40, the Tanaka equation smoothes out the decline in heart rate associated with aging.
3. The Gulati Formula
MHR = 206 – (0.88 × Age)
Research has shown that the standard formula often overestimates MHR for women. The Gulati formula is specifically calibrated for female physiology.
The Karvonen Method
If you input your Resting Heart Rate, our calculator switches to the Karvonen method. Instead of just taking percentages of your Max Heart Rate, this method calculates your Heart Rate Reserve (HRR).
This considers your current fitness level (via your resting heart rate) and is generally considered more accurate for athletes and fitness enthusiasts.
Heart Rate Training Zones
Zone 1 (50-60%): Very Light. Good for warm-ups and recovery.
Zone 2 (60-70%): Light. The "Fat Burning" zone. Improves basic endurance and metabolic efficiency.
Zone 3 (70-80%): Moderate. Improves aerobic fitness and blood circulation.
Zone 4 (80-90%): Hard. Increases maximum performance capacity and lactic acid tolerance.
Zone 5 (90-100%): Maximum. For short bursts. develops speed and neuromuscular power.
Note: This calculator provides estimates. For a precise determination of your maximum heart rate, a clinical stress test conducted by a medical professional is required. Always consult a doctor before starting a new exercise regimen.
function calculatePulse() {
// 1. Get Input Values
var ageInput = document.getElementById("userAge");
var formulaSelect = document.getElementById("calcFormula");
var rhrInput = document.getElementById("restingHeartRate");
var age = parseFloat(ageInput.value);
var formula = formulaSelect.value;
var rhr = parseFloat(rhrInput.value);
// 2. Validate Age
if (isNaN(age) || age 120) {
alert("Please enter a valid age between 1 and 120.");
return;
}
// 3. Calculate Maximum Heart Rate (MHR) based on formula
var maxHeartRate = 0;
if (formula === "fox") {
maxHeartRate = 220 – age;
} else if (formula === "tanaka") {
maxHeartRate = 208 – (0.7 * age);
} else if (formula === "gulati") {
maxHeartRate = 206 – (0.88 * age);
} else if (formula === "gellish") {
maxHeartRate = 207 – (0.7 * age);
}
maxHeartRate = Math.round(maxHeartRate);
// 4. Determine if we are using Karvonen (Heart Rate Reserve) or Standard
var useKarvonen = false;
if (!isNaN(rhr) && rhr > 20 && rhr < maxHeartRate) {
useKarvonen = true;
}
// 5. Update UI for Result
document.getElementById("maxHeartRateDisplay").innerText = maxHeartRate;
document.getElementById("result-area").style.display = "block";
var explanationText = useKarvonen
? "Using the Karvonen Method (incorporating your resting heart rate of " + rhr + " bpm)."
: "Using standard percentage of Maximum Heart Rate.";
document.getElementById("method-explanation").innerHTML = explanationText;
// 6. Calculate Zones
var zonesBody = document.getElementById("zonesBody");
zonesBody.innerHTML = ""; // Clear previous results
var zones = [
{ id: 1, minPct: 0.50, maxPct: 0.60, name: "Very Light", benefit: "Warm up, Recovery", class: "zone-row-1" },
{ id: 2, minPct: 0.60, maxPct: 0.70, name: "Light", benefit: "Fat Burn, Endurance", class: "zone-row-2" },
{ id: 3, minPct: 0.70, maxPct: 0.80, name: "Moderate", benefit: "Aerobic Fitness", class: "zone-row-3" },
{ id: 4, minPct: 0.80, maxPct: 0.90, name: "Hard", benefit: "Anaerobic Threshold", class: "zone-row-4" },
{ id: 5, minPct: 0.90, maxPct: 1.00, name: "Maximum", benefit: "Speed, Power", class: "zone-row-5" }
];
for (var i = 0; i < zones.length; i++) {
var z = zones[i];
var minBpm, maxBpm;
if (useKarvonen) {
// Target Heart Rate = ((max HR − resting HR) × %Intensity) + resting HR
var hrr = maxHeartRate – rhr;
minBpm = Math.round((hrr * z.minPct) + rhr);
maxBpm = Math.round((hrr * z.maxPct) + rhr);
} else {
// Standard Percentage
minBpm = Math.round(maxHeartRate * z.minPct);
maxBpm = Math.round(maxHeartRate * z.maxPct);
}
var row = "