*Based on the Karvonen Formula (Heart Rate Reserve Method).
How to Calculate Your Heart Rate Range
Knowing your target heart rate range is essential for optimizing your cardiovascular workouts. Whether you are aiming for fat loss, endurance building, or peak athletic performance, exercising within the right "zone" ensures you are working hard enough to see results without overexerting your heart.
The Karvonen Formula Explained
While the simple formula (220 minus age) is a common starting point, the Karvonen Formula is considered more accurate because it accounts for your individual Resting Heart Rate (RHR). This measures your "Heart Rate Reserve," which is the actual range of beats available for exertion.
Improves cardiovascular fitness and lung capacity.
Maximum Effort
85% – 100%
Sprinting and high-intensity interval training (HIIT).
Example Calculation
If you are 40 years old with a resting heart rate of 70 BPM and you want to exercise at 70% intensity:
Max HR: 220 – 40 = 180 BPM
HR Reserve: 180 – 70 = 110 BPM
Target (70%): (110 × 0.70) + 70 = 147 BPM
Using the calculator above, you can find your specific upper and lower bounds to maintain the perfect pace during your next run, cycle, or gym session.
function calculateHeartRateRange() {
var age = parseFloat(document.getElementById('hr_age').value);
var restingHR = parseFloat(document.getElementById('hr_resting').value);
var lowInt = parseFloat(document.getElementById('hr_low_intensity').value);
var highInt = parseFloat(document.getElementById('hr_high_intensity').value);
var resultDiv = document.getElementById('hr_result');
var summaryDiv = document.getElementById('hr_summary');
if (isNaN(age) || isNaN(restingHR) || age <= 0 || restingHR = highInt) {
alert("Lower intensity must be less than upper intensity.");
return;
}
// Calculations
var maxHR = 220 – age;
var hrReserve = maxHR – restingHR;
if (hrReserve <= 0) {
alert("Calculated Max Heart Rate must be higher than Resting Heart Rate. Please check your inputs.");
return;
}
var lowerBound = Math.round((hrReserve * (lowInt / 100)) + restingHR);
var upperBound = Math.round((hrReserve * (highInt / 100)) + restingHR);
// Build Output
var html = 'Maximum Heart Rate:' + maxHR + ' BPM';
html += 'Heart Rate Reserve: ' + hrReserve + ' BPM';
html += 'Your Target Range (' + lowInt + '% to ' + highInt + '%):';
html += '
' + lowerBound + ' – ' + upperBound + ' BPM
';
html += 'To see the best results, try to keep your pulse between these two numbers during your workout.';
summaryDiv.innerHTML = html;
resultDiv.style.display = 'block';
// Smooth scroll to result
resultDiv.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
}