Heart Rate Reserve (HRR) Zone Calculator
The Heart Rate Reserve (HRR) is the difference between your maximum heart rate and your resting heart rate. It represents the range of heartbeats available for exercise. Calculating your HRR allows you to determine target heart rate zones for training, which can be more personalized and effective than using general age-based formulas. To calculate your HRR, you first need to know your maximum heart rate (MHR) and your resting heart rate (RHR).
Your Target Heart Rate Zones:
function calculateHRRZones() {
var rhr = parseFloat(document.getElementById("restingHeartRate").value);
var mhr = parseFloat(document.getElementById("maximumHeartRate").value);
var hrrResultElement = document.getElementById("hrrResult");
var moderateZoneElement = document.getElementById("moderateZone");
var vigorousZoneElement = document.getElementById("vigorousZone");
hrrResultElement.innerHTML = "";
moderateZoneElement.innerHTML = "";
vigorousZoneElement.innerHTML = "";
if (isNaN(rhr) || isNaN(mhr) || rhr <= 0 || mhr = mhr) {
hrrResultElement.innerHTML = "Please enter valid numbers for resting and maximum heart rate, ensuring resting heart rate is lower than maximum heart rate.";
return;
}
var hrr = mhr – rhr;
hrrResultElement.innerHTML = "Heart Rate Reserve (HRR): " + hrr.toFixed(0) + " BPM";
// Moderate Intensity Zone (50-70% of HRR)
var moderateLowerBound = rhr + (0.50 * hrr);
var moderateUpperBound = rhr + (0.70 * hrr);
moderateZoneElement.innerHTML = "Moderate Intensity Zone (50%-70%): " + moderateLowerBound.toFixed(0) + " – " + moderateUpperBound.toFixed(0) + " BPM";
// Vigorous Intensity Zone (70-85% of HRR)
var vigorousLowerBound = rhr + (0.70 * hrr);
var vigorousUpperBound = rhr + (0.85 * hrr);
vigorousZoneElement.innerHTML = "Vigorous Intensity Zone (70%-85%): " + vigorousLowerBound.toFixed(0) + " – " + vigorousUpperBound.toFixed(0) + " BPM";
}
#heartRateReserveCalculator {
font-family: sans-serif;
max-width: 600px;
margin: 20px auto;
padding: 20px;
border: 1px solid #ccc;
border-radius: 8px;
}
.form-group {
margin-bottom: 15px;
}
label {
display: block;
margin-bottom: 5px;
font-weight: bold;
}
input[type="number"] {
width: calc(100% – 22px);
padding: 10px;
border: 1px solid #ccc;
border-radius: 4px;
}
button {
background-color: #4CAF50;
color: white;
padding: 10px 15px;
border: none;
border-radius: 4px;
cursor: pointer;
font-size: 16px;
}
button:hover {
background-color: #45a049;
}