A predicted heart rate calculator is an essential tool for athletes, fitness enthusiasts, and anyone looking to optimize their cardiovascular health. By understanding your Maximum Heart Rate (MHR) and Target Heart Rate (THR), you can tailor your workouts to burn fat, improve endurance, or increase peak performance.
Common Formulas for Calculation
Our calculator utilizes two primary scientific methods to estimate your maximum heart rate:
The Fox Formula: The traditional "220 minus age" equation. While widely known, it often overestimates MHR in younger individuals and underestimates it in older adults.
The Tanaka Formula: 208 – (0.7 × Age). This is considered more modern and accurate across various age groups.
The Karvonen Method: Why It Matters
This calculator also incorporates your Resting Heart Rate (RHR) using the Karvonen Method. This formula is superior because it accounts for your current fitness level. It calculates your Heart Rate Reserve (HRR)—the difference between your maximum and resting rates—to provide a more personalized target zone.
Knowing your predicted heart rate helps you stay within specific zones during exercise:
Zone
Intensity
Benefit
Recovery
50-60%
Active recovery & health improvement.
Aerobic/Fat Burn
60-70%
Improves basic endurance and fat metabolism.
Threshold
80-90%
Increases anaerobic capacity and speed.
Example Calculation
If a 40-year-old individual has a resting heart rate of 60 BPM and wants to exercise at 70% intensity:
Max HR (Tanaka): 208 – (0.7 × 40) = 180 BPM.
Heart Rate Reserve: 180 – 60 = 120 BPM.
Target HR: (120 × 0.70) + 60 = 144 BPM.
This individual should aim for a pulse of approximately 144 beats per minute during their workout.
function calculateHR() {
var age = parseFloat(document.getElementById('ageInput').value);
var rhr = parseFloat(document.getElementById('rhrInput').value);
var intensity = parseFloat(document.getElementById('intensityInput').value);
var formula = document.getElementById('formulaType').value;
var resultDiv = document.getElementById('hrResult');
if (isNaN(age) || age 120) {
alert("Please enter a valid age.");
return;
}
if (isNaN(rhr) || rhr 150) {
alert("Please enter a realistic resting heart rate (30-150 BPM).");
return;
}
if (isNaN(intensity) || intensity 100) {
alert("Please enter an intensity between 10% and 100%.");
return;
}
var maxHR;
if (formula === 'tanaka') {
maxHR = 208 – (0.7 * age);
} else {
maxHR = 220 – age;
}
var hrr = maxHR – rhr;
var targetHR = ((hrr * (intensity / 100)) + rhr);
document.getElementById('maxHRVal').innerText = Math.round(maxHR);
document.getElementById('targetHRVal').innerText = Math.round(targetHR);
var zonesHTML = '