Leave blank for standard calculation. Enter value for Karvonen formula (more accurate).
Warm Up / Recovery (50-60%)
Fat Burning (60-70%)
Aerobic / Cardio (70-80%)
Anaerobic / Hardcore (80-90%)
Maximum Effort (90-100%)
Estimated Maximum Heart Rate (MHR):— bpm
Heart Rate Reserve (HRR):—
Target Heart Rate Zone:— bpm
Calculation Method:—
Understanding Maximum and Target Heart Rates
Monitoring your heart rate is one of the most effective ways to gauge the intensity of your workouts and ensure you are meeting your specific fitness goals. Whether you are aiming to burn fat, build endurance, or improve cardiovascular health, training in the correct "zone" is critical.
This calculator helps you determine your Maximum Heart Rate (MHR) and your specific Target Heart Rate (THR) zones based on your age and resting heart rate.
The Formulas: Standard vs. Karvonen
There are two primary ways to calculate your target heart rate zones:
1. The Standard Method (Fox Formula)
This is the most common estimation. It calculates MHR simply as 220 - Age. The target zones are then calculated as a straight percentage of this maximum. It provides a good baseline for most beginners.
2. The Karvonen Method
This method is considered more accurate for individuals with varying fitness levels because it incorporates your Resting Heart Rate (RHR). It calculates the "Heart Rate Reserve" (HRR), which is the difference between your maximum and resting heart rates. The formula is: Target Heart Rate = ((MHR - RHR) × %Intensity) + RHR
Heart Rate Training Zones
Different levels of intensity trigger different metabolic reactions in your body. Here is a breakdown of the 5 standard training zones:
Zone
Intensity (%)
Benefit
Feeling
1. Warm Up
50-60%
Recovery, metabolic health
Very easy, can talk effortlessly
2. Fat Burn
60-70%
Fat mobilization, basic endurance
Comfortable, light sweating
3. Aerobic
70-80%
Cardiovascular fitness, aerobic power
Moderate, breathing heavier
4. Anaerobic
80-90%
Lactic acid tolerance, high speed
Hard, muscles feel tired
5. Maximum
90-100%
Maximum speed/power (short bursts)
Exhausting, gasping for breath
How to Measure Resting Heart Rate
To use the Karvonen method effectively, you need an accurate Resting Heart Rate measurement. The best time to measure this is in the morning, right after you wake up naturally, before getting out of bed or drinking caffeine. Count your pulse for 60 seconds (or 15 seconds multiplied by 4). A typical RHR for adults is between 60 and 100 bpm, though athletes may have rates as low as 40 bpm.
Safety Considerations
Consult a Doctor: Before starting any vigorous exercise program, especially if you have existing health conditions, are over 40, or have been sedentary. The formulas provided are estimates and individual maximum heart rates can vary significantly due to genetics, medication, and fitness history.
function calculateTargetHeartRate() {
// 1. Get Input Values
var ageInput = document.getElementById("hrAge");
var rhrInput = document.getElementById("hrResting");
var intensityInput = document.getElementById("hrIntensity");
var age = parseFloat(ageInput.value);
var rhr = parseFloat(rhrInput.value);
var intensityString = intensityInput.value;
// 2. Validate Age
if (isNaN(age) || age 120) {
alert("Please enter a valid age between 1 and 120.");
return;
}
// 3. Parse Intensity Range (e.g., "0.60-0.70")
var intensityParts = intensityString.split("-");
var minIntensity = parseFloat(intensityParts[0]);
var maxIntensity = parseFloat(intensityParts[1]);
// 4. Calculate Maximum Heart Rate (MHR) using Fox Formula
// MHR = 220 – Age
var mhr = 220 – age;
var minZone = 0;
var maxZone = 0;
var methodUsed = "";
var hrrDisplay = "N/A (Standard Method)";
// 5. Determine Method (Karvonen vs Standard) based on RHR input
if (!isNaN(rhr) && rhr > 30 && rhr MHR), note it, otherwise standard
if (!isNaN(rhr) && (rhr = mhr)) {
console.log("Invalid RHR ignored");
}
}
// 6. Display Results
document.getElementById("valMHR").innerHTML = mhr + " bpm";
document.getElementById("valHRR").innerHTML = hrrDisplay;
document.getElementById("valZone").innerHTML = minZone + " – " + maxZone + " bpm";
document.getElementById("valMethod").innerHTML = methodUsed;
// Show results container
document.getElementById("hrResults").style.display = "block";
}