Providing this enables the Karvonen Formula for higher accuracy.
Estimated Maximum Heart Rate
0 bpm
Your Personal Heart Rate Zones:
Zone
Intensity
Target Range (bpm)
Benefit
Understanding Your Target Heart Rate
Knowing your target heart rate allows you to maximize the efficiency of your workouts, whether you are aiming for fat loss, endurance building, or peak athletic performance. Training blindly without monitoring your heart rate can lead to undertraining (not seeing results) or overtraining (risking injury).
The 5 Heart Rate Zones Explained
This calculator breaks down your training intensity into five distinct zones:
Zone 1 (Very Light – 50-60%): Used for warm-ups and recovery. It helps with blood flow and muscle recovery.
Zone 2 (Light – 60-70%): The "Fat Burning" zone. Your body learns to use fat as a primary fuel source. Ideal for long, slow distance training.
Zone 3 (Moderate – 70-80%): Improves aerobic capacity and endurance. You will start to sweat more and breathing becomes heavier.
Zone 4 (Hard – 80-90%): Increases anaerobic threshold. This is a high-intensity zone used for interval training.
Zone 5 (Maximum – 90-100%): Peak effort for short bursts. Develops maximum speed and power. Highly taxing on the system.
Formulas Used: Standard vs. Karvonen
This calculator employs two different methods depending on the data you provide:
Standard Formula (Fox Method): Calculates your Maximum Heart Rate (MHR) as 220 – Age. Zones are simple percentages of MHR. This is a good general estimate.
Karvonen Method: Used if you enter your Resting Heart Rate (RHR). It calculates Heart Rate Reserve (HRR = MHR – RHR) and applies the formula: Target = (HRR × Intensity%) + RHR. This method is generally considered more accurate for individuals with varying fitness levels.
How to Find Your Resting Heart Rate
To get the most accurate results from the Karvonen method, measure your heart rate in the morning right after waking up, before getting out of bed. Count the beats for 60 seconds. Repeat this for 3 days and take the average.
function calculateHeartRateZones() {
var ageInput = document.getElementById('thr-age').value;
var rhrInput = document.getElementById('thr-rhr').value;
var resultDiv = document.getElementById('thr-result');
var maxHrDisplay = document.getElementById('display-max-hr');
var tableBody = document.getElementById('thr-table-body');
var methodNote = document.getElementById('method-note');
// Validation
if (!ageInput || ageInput 120) {
alert("Please enter a valid age between 1 and 120.");
return;
}
var age = parseFloat(ageInput);
var rhr = rhrInput ? parseFloat(rhrInput) : null;
var maxHR = 220 – age;
// Display Max HR
maxHrDisplay.innerHTML = maxHR + " bpm";
// Define Zones
var zones = [
{ name: "Zone 1", label: "Very Light", minPct: 0.50, maxPct: 0.60, color: "bg-grey", desc: "Warm Up / Recovery" },
{ name: "Zone 2", label: "Light", minPct: 0.60, maxPct: 0.70, color: "bg-blue", desc: "Fat Burning / Endurance" },
{ name: "Zone 3", label: "Moderate", minPct: 0.70, maxPct: 0.80, color: "bg-green", desc: "Aerobic Fitness" },
{ name: "Zone 4", label: "Hard", minPct: 0.80, maxPct: 0.90, color: "bg-orange", desc: "Anaerobic Capacity" },
{ name: "Zone 5", label: "Maximum", minPct: 0.90, maxPct: 1.00, color: "bg-red", desc: "Max Effort / Power" }
];
var tableContent = "";
var isKarvonen = (rhr !== null && rhr > 20 && rhr < maxHR);
for (var i = 0; i < zones.length; i++) {
var z = zones[i];
var minBpm, maxBpm;
if (isKarvonen) {
// Karvonen Formula: ((MaxHR – RHR) * %Intensity) + RHR
var hrr = maxHR – rhr;
minBpm = Math.round((hrr * z.minPct) + rhr);
maxBpm = Math.round((hrr * z.maxPct) + rhr);
} else {
// Standard Formula: MaxHR * %Intensity
minBpm = Math.round(maxHR * z.minPct);
maxBpm = Math.round(maxHR * z.maxPct);
}
tableContent += "
";
}
tableBody.innerHTML = tableContent;
if (isKarvonen) {
methodNote.innerHTML = "Calculation based on the Karvonen Formula (incorporating resting heart rate).";
} else {
methodNote.innerHTML = "Calculation based on the Standard Fox Formula (220 – Age).";
}
resultDiv.style.display = "block";
}