.hr-calc-container {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
max-width: 800px;
margin: 20px auto;
padding: 25px;
border: 1px solid #e1e8ed;
border-radius: 12px;
background-color: #ffffff;
box-shadow: 0 4px 6px rgba(0,0,0,0.05);
}
.hr-calc-container h2 {
color: #1a202c;
margin-top: 0;
text-align: center;
font-size: 24px;
}
.hr-input-group {
margin-bottom: 20px;
}
.hr-input-group label {
display: block;
margin-bottom: 8px;
font-weight: 600;
color: #4a5568;
}
.hr-input-group input {
width: 100%;
padding: 12px;
border: 2px solid #edf2f7;
border-radius: 8px;
box-sizing: border-box;
font-size: 16px;
transition: border-color 0.2s;
}
.hr-input-group input:focus {
border-color: #4299e1;
outline: none;
}
.hr-calc-btn {
width: 100%;
background-color: #e53e3e;
color: white;
padding: 15px;
border: none;
border-radius: 8px;
font-size: 18px;
font-weight: bold;
cursor: pointer;
transition: background-color 0.2s;
}
.hr-calc-btn:hover {
background-color: #c53030;
}
#hr-result-area {
margin-top: 25px;
padding: 20px;
background-color: #f7fafc;
border-radius: 8px;
display: none;
}
.hr-result-val {
font-size: 32px;
font-weight: 800;
color: #e53e3e;
text-align: center;
margin: 10px 0;
}
.hr-zone-info {
font-size: 14px;
color: #718096;
text-align: center;
line-height: 1.5;
}
.hr-article {
margin-top: 40px;
line-height: 1.6;
color: #2d3748;
}
.hr-article h3 {
color: #1a202c;
margin-top: 25px;
}
.hr-table {
width: 100%;
border-collapse: collapse;
margin: 20px 0;
}
.hr-table th, .hr-table td {
padding: 12px;
border: 1px solid #e2e8f0;
text-align: left;
}
.hr-table th {
background-color: #edf2f7;
}
Heart Rate Intensity Calculator
Your Age (Years)
Resting Heart Rate (BPM)
Target Intensity (%)
Calculate Target Heart Rate
Please enter valid numbers for all fields.
Your Target Heart Rate:
— BPM
How the Heart Rate Intensity Calculator Works
This tool utilizes the Karvonen Formula , which is widely considered one of the most accurate ways to determine training zones. Unlike the simple "220 minus age" formula, the Karvonen method incorporates your Resting Heart Rate (RHR) to calculate your Heart Rate Reserve (HRR). This provides a more personalized target tailored to your current cardiovascular fitness level.
The Karvonen Formula
The calculation follows these specific steps:
Max Heart Rate (MHR): 220 – Age
Heart Rate Reserve (HRR): MHR – Resting Heart Rate
Target Heart Rate: (HRR × %Intensity) + Resting Heart Rate
Understanding Training Intensity Zones
Intensity %
Zone
Benefit
50% – 60%
Very Light (Warm-up)
Improved overall health and recovery.
60% – 70%
Light (Fat Burn)
Improves endurance and fat metabolism.
70% – 80%
Moderate (Aerobic)
Enhances aerobic capacity and muscle strength.
80% – 90%
Hard (Anaerobic)
Increases speed endurance and lactate tolerance.
90% – 100%
Maximum (VO2 Max)
Improves maximal performance and sprinting speed.
Example Calculation
If you are 40 years old with a resting heart rate of 60 BPM and want to train at 75% intensity:
Max HR = 220 – 40 = 180 BPM
HR Reserve = 180 – 60 = 120 BPM
Target HR = (120 × 0.75) + 60 = 150 BPM
Monitoring your intensity ensures you are not overtraining or undertraining, helping you reach your fitness goals more efficiently.
function calculateHRZone() {
var ageInput = document.getElementById('hr_age');
var rhrInput = document.getElementById('hr_resting');
var intensityInput = document.getElementById('hr_intensity');
var resultArea = document.getElementById('hr-result-area');
var errorDiv = document.getElementById('hr-error');
var successDiv = document.getElementById('hr-success');
var outputDiv = document.getElementById('hr-bpm-output');
var descDiv = document.getElementById('hr-zone-desc');
var age = parseFloat(ageInput.value);
var rhr = parseFloat(rhrInput.value);
var intensity = parseFloat(intensityInput.value);
resultArea.style.display = 'block';
if (isNaN(age) || isNaN(rhr) || isNaN(intensity) || age <= 0 || rhr <= 0 || intensity <= 0) {
errorDiv.style.display = 'block';
successDiv.style.display = 'none';
return;
}
errorDiv.style.display = 'none';
successDiv.style.display = 'block';
// Karvonen Formula Logic
var maxHR = 220 – age;
var hrReserve = maxHR – rhr;
if (hrReserve <= 0) {
outputDiv.innerHTML = "Invalid Inputs";
descDiv.innerHTML = "Resting heart rate cannot be higher than maximum heart rate.";
return;
}
var targetHR = Math.round((hrReserve * (intensity / 100)) + rhr);
outputDiv.innerHTML = targetHR + " BPM";
// Zone description logic
var zoneText = "";
if (intensity < 60) {
zoneText = "Zone 1 (Very Light): Ideal for active recovery and warming up.";
} else if (intensity < 70) {
zoneText = "Zone 2 (Light): Best for basic endurance and weight management.";
} else if (intensity < 80) {
zoneText = "Zone 3 (Moderate): Improving aerobic fitness and cardiovascular strength.";
} else if (intensity < 90) {
zoneText = "Zone 4 (Hard): Increasing anaerobic threshold and high-speed endurance.";
} else {
zoneText = "Zone 5 (Maximum): Maximum effort for short bursts to improve VO2 Max.";
}
descDiv.innerHTML = "At " + intensity + "% intensity, you are in
" + zoneText + " ";
}