A recovery run is a relatively short, slow-paced run performed within 24 hours of a hard workout (like a long run or speed session). The primary goal is to add aerobic volume without stressing the body, facilitating blood flow to muscles to aid repair.
How to Calculate Recovery Heart Rate
This calculator uses the Karvonen Formula (Heart Rate Reserve), which is more accurate than simple percentages because it accounts for your individual fitness level (Resting HR).
The Math:
Heart Rate Reserve (HRR) = Max HR – Resting HR
Low End (60%): (HRR × 0.60) + Resting HR
High End (70%): (HRR × 0.70) + Resting HR
Typical Heart Rate Zones for Runners
Zone
Intensity
Purpose
Zone 1
60% – 70% HRR
Recovery / Easy
Zone 2
70% – 80% HRR
Aerobic / Endurance
Zone 3
80% – 90% HRR
Threshold / Tempo
Example Calculation
If a runner has a Max HR of 190 and a Resting HR of 50:
HRR = 190 – 50 = 140
60% Zone: (140 * 0.60) + 50 = 134 bpm
70% Zone: (140 * 0.70) + 50 = 148 bpm
Recovery Range: 134 – 148 BPM
Note: If you are doing a "True Recovery" run, staying closer to the 60% mark (or even lower) is often more beneficial than pushing toward the 70% limit.
function calculateRecoveryZone() {
var maxHr = document.getElementById('max_hr').value;
var restHr = document.getElementById('rest_hr').value;
var resultDiv = document.getElementById('recovery-calc-result');
var outputSpan = document.getElementById('hr_range_output');
var notePara = document.getElementById('hr_method_note');
// Reset display
resultDiv.style.display = 'none';
var m = parseFloat(maxHr);
var r = parseFloat(restHr);
if (isNaN(m) || m <= 0) {
alert('Please enter a valid Maximum Heart Rate.');
return;
}
var lowEnd, highEnd;
if (isNaN(r) || r <= 0) {
// Fallback to simple Max HR percentage if Resting HR isn't provided
lowEnd = Math.round(m * 0.60);
highEnd = Math.round(m * 0.70);
notePara.innerText = "Calculation based on simple % of Max HR. (Add Resting HR for more accuracy).";
} else {
// Karvonen Formula
var hrr = m – r;
if (hrr <= 0) {
alert('Max Heart Rate must be higher than Resting Heart Rate.');
return;
}
lowEnd = Math.round((hrr * 0.60) + r);
highEnd = Math.round((hrr * 0.70) + r);
notePara.innerText = "Calculation based on Karvonen Formula (Heart Rate Reserve).";
}
outputSpan.innerText = lowEnd + " – " + highEnd + " BPM";
resultDiv.style.display = 'block';
// Smooth scroll to result
resultDiv.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
}