50% – Very Light (Recovery)
60% – Light (Fat Burn)
70% – Moderate (Aerobic)
80% – Hard (Anaerobic)
90% – Maximum (VO2 Max)
Understanding Your Training Heart Rate
Calculating your Training Heart Rate (THR) is the most effective way to ensure you are exercising at the right intensity for your specific fitness goals. Whether you are looking to burn fat, improve cardiovascular endurance, or increase your speed, your heart rate serves as your personal dashboard.
The Karvonen Formula Explained
This calculator uses the Karvonen Formula, which is considered more accurate than the standard "220 minus age" method because it takes your Resting Heart Rate (RHR) into account. By including your RHR, the formula calculates your "Heart Rate Reserve" (HRR), which reflects your actual cardiorespiratory fitness level.
The Formula:
1. Max HR = 220 – Age
2. HRR = Max HR – Resting HR
3. Target HR = (HRR × Intensity%) + Resting HR
Heart Rate Training Zones
Zone
Intensity
Benefit
Zone 1
50-60%
Active recovery and warm-up. Improves basic health.
Zone 2
60-70%
Weight control and fat burning. Increases endurance.
Zone 3
70-80%
Aerobic fitness. Improves blood circulation and lung capacity.
Zone 4
80-90%
Anaerobic threshold. Increases speed and high-intensity stamina.
Zone 5
90-100%
Maximum effort. Improves peak performance and VO2 max.
Real-World Example
Imagine a 40-year-old individual with a resting heart rate of 70 BPM who wants to perform a moderate aerobic workout (70% intensity):
Max HR: 220 – 40 = 180 BPM
Heart Rate Reserve: 180 – 70 = 110 BPM
Target Heart Rate: (110 × 0.70) + 70 = 147 BPM
To stay in the aerobic zone, this individual should aim for approximately 147 beats per minute during their workout.
function calculateTHR() {
var age = document.getElementById('thr_age').value;
var rhr = document.getElementById('thr_rhr').value;
var intensity = document.getElementById('thr_intensity').value;
var resultDiv = document.getElementById('thr-result-container');
var outputContent = document.getElementById('thr-output-content');
// Validation
if (!age || age 120) {
alert("Please enter a valid age between 1 and 120.");
return;
}
if (!rhr || rhr 200) {
alert("Please enter a valid resting heart rate.");
return;
}
// Calculations
var maxHR = 220 – parseInt(age);
var heartRateReserve = maxHR – parseInt(rhr);
if (heartRateReserve <= 0) {
alert("Your resting heart rate cannot be higher than your calculated maximum heart rate. Please check your inputs.");
return;
}
var intensityDecimal = parseInt(intensity) / 100;
var targetHR = Math.round((heartRateReserve * intensityDecimal) + parseInt(rhr));
// Range Calculation (Lower and Upper bounds for the zone)
var lowerBound = Math.round((heartRateReserve * (intensityDecimal – 0.05)) + parseInt(rhr));
var upperBound = Math.round((heartRateReserve * (intensityDecimal + 0.05)) + parseInt(rhr));
// Display Results
resultDiv.style.display = 'block';
outputContent.innerHTML =
'Your Target Training Heart Rate:' +
'
' + targetHR + ' BPM
' +
" +
'Based on your inputs, your Estimated Maximum HR is ' + maxHR + ' BPM. ' +
'To train at ' + intensity + '% intensity, aim for a range between ' + lowerBound + ' and ' + upperBound + ' BPM.';
// Smooth scroll to result
resultDiv.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
}