Fox Formula (220 – Age)
Tanaka Formula (208 – 0.7 × Age)
Gellish Formula (207 – 0.7 × Age)
Unisex / Neutral
Male
Female
Results
Estimated Maximum Heart Rate (MHR):— bpm
Heart Rate Reserve (HRR):— bpm
Training Intensity Zones
Method: Standard Percentage
Zone
Intensity
Range (BPM)
Benefit
Understanding Your Maximum and Minimum Heart Rate
Monitoring your heart rate is one of the most effective ways to gauge the intensity of your exercise and ensure you are training safely and effectively. Whether you are an elite athlete or just starting a fitness journey, understanding your Maximum Heart Rate (MHR) and your training zones is crucial for cardiovascular health.
Note: The "Minimum" heart rate in a training context usually refers to your Resting Heart Rate (RHR) or the lower bound of your aerobic training zone. A lower RHR generally indicates better cardiovascular fitness.
What is Maximum Heart Rate (MHR)?
Your Maximum Heart Rate is the highest number of beats per minute (bpm) your heart can achieve during maximum physical exertion. It is primarily determined by genetics and age. As you get older, your MHR naturally decreases.
While the most accurate way to determine MHR is a clinical stress test, mathematical formulas provide a safe and reasonable estimate for most people:
Fox Formula: 220 – Age. This is the most common standard used widely in fitness.
Tanaka Formula: 208 – (0.7 × Age). Often considered more accurate for healthy adults over age 40.
Gellish Formula: 207 – (0.7 × Age). A refined linear equation often used in sports science.
Heart Rate Reserve (Karvonen Method)
If you know your Resting Heart Rate (measured when you first wake up or have been sitting quietly for 10 minutes), you can use the Karvonen Method. This method is often more accurate for individuals with higher or lower than average fitness levels because it takes your specific baseline into account.
The calculation is: Target Heart Rate = ((MHR − Resting HR) × % Intensity) + Resting HR
Training Zones Explained
To maximize fitness gains, you should aim to keep your heart rate within specific "zones" derived from your MHR or Heart Rate Reserve:
Zone 1 (50-60%): Very Light. Warm-up and recovery. Helps with overall health and recovery after hard sessions.
Zone 2 (60-70%): Light. Basic endurance and fat burning. This zone improves your body's ability to use fat as a fuel source.
Zone 3 (70-80%): Moderate. Aerobic fitness. improves blood circulation and skeletal muscle strength.
Zone 4 (80-90%): Hard. Anaerobic capacity. Increases maximum performance capacity for shorter sessions.
Zone 5 (90-100%): Maximum. VO2 Max. For very short bursts (intervals). Helps develop speed and neuromuscular coordination.
Safety and Accuracy
Remember that these calculators provide estimates. Factors such as medication (like beta-blockers), stress, caffeine, and temperature can affect your heart rate. If you experience dizziness, chest pain, or extreme shortness of breath, stop exercising immediately and consult a healthcare professional.
function calculateHeartRate() {
var ageInput = document.getElementById('userAge').value;
var rhrInput = document.getElementById('restHR').value;
var formula = document.getElementById('formulaType').value;
var resultArea = document.getElementById('result-area');
var methodText = document.getElementById('methodUsed');
// Basic Validation
if (ageInput === "" || isNaN(ageInput)) {
alert("Please enter a valid age.");
return;
}
var age = parseFloat(ageInput);
if (age 120) {
alert("Please enter a realistic age between 1 and 120.");
return;
}
// Calculate Maximum Heart Rate (MHR)
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);
}
mhr = Math.round(mhr);
// Check for RHR for Karvonen Method
var rhr = 0;
var useKarvonen = false;
if (rhrInput !== "" && !isNaN(rhrInput)) {
rhr = parseFloat(rhrInput);
if (rhr > 0 && rhr = mhr) {
alert("Resting Heart Rate cannot be higher than or equal to Maximum Heart Rate.");
return;
}
}
// Display Base Metrics
document.getElementById('resMHR').innerHTML = mhr + " bpm";
var rowHRR = document.getElementById('rowHRR');
if (useKarvonen) {
var hrr = mhr – rhr;
document.getElementById('resHRR').innerHTML = hrr + " bpm";
rowHRR.style.display = "flex";
methodText.innerHTML = "Method: Karvonen (Heart Rate Reserve) – More accurate for your fitness level.";
} else {
rowHRR.style.display = "none";
methodText.innerHTML = "Method: Standard Percentage of Max Heart Rate (MHR). Enter Resting HR for Karvonen precision.";
}
// Calculate Zones
var zones = [
{ id: 1, name: "Zone 1 (Warm Up)", minPct: 0.50, maxPct: 0.60, benefit: "Recovery, Warm up" },
{ id: 2, name: "Zone 2 (Fat Burn)", minPct: 0.60, maxPct: 0.70, benefit: "Basic Endurance, Fat Burn" },
{ id: 3, name: "Zone 3 (Aerobic)", minPct: 0.70, maxPct: 0.80, benefit: "Aerobic Fitness, Stamina" },
{ id: 4, name: "Zone 4 (Anaerobic)", minPct: 0.80, maxPct: 0.90, benefit: "High Intensity, Speed" },
{ id: 5, name: "Zone 5 (Maximum)", minPct: 0.90, maxPct: 1.00, benefit: "Maximum Effort, Sprints" }
];
var tableBody = document.getElementById('zonesBody');
tableBody.innerHTML = ""; // Clear previous results
for (var i = 0; i < zones.length; i++) {
var z = zones[i];
var minBpm, maxBpm;
if (useKarvonen) {
// Karvonen: ((MHR – RHR) * %) + RHR
minBpm = Math.round(((mhr – rhr) * z.minPct) + rhr);
maxBpm = Math.round(((mhr – rhr) * z.maxPct) + rhr);
} else {
// Standard: MHR * %
minBpm = Math.round(mhr * z.minPct);
maxBpm = Math.round(mhr * z.maxPct);
}
var row = "