Standard (220 – Age)
Karvonen (Includes Resting HR)
Your Training Profile
Estimated Max Heart Rate: BPM
Heart Rate Reserve: BPM
Zone
Intensity
Target Range (BPM)
Understanding Heart Rate Zones
Using a heart rate monitor is one of the most effective ways to gauge your exercise intensity. By calculating your specific zones, you can tailor your workouts to meet specific goals, whether it's building endurance, burning fat, or increasing your VO2 max.
The Calculation Methods
Standard (Fox) Formula: This is the most common method. It calculates your Maximum Heart Rate (MHR) by subtracting your age from 220. While simple, it does not account for individual fitness levels.
Karvonen Formula: This is considered more accurate for athletes because it incorporates your Resting Heart Rate (RHR). It calculates your Heart Rate Reserve (MHR – RHR) to determine zones relative to your actual baseline fitness.
Training Zone Breakdown
Zone 1 (50-60%): Very Light. Great for recovery and warming up. Improves overall health but doesn't significantly build fitness.
Zone 2 (60-70%): Light (Fat Burn). The "all-day" pace. Ideal for building basic endurance and metabolizing fat.
Zone 3 (70-80%): Moderate (Aerobic). Improves cardiovascular capacity and aerobic power. You should be breathing harder but still able to speak in short sentences.
Zone 4 (80-90%): Hard (Anaerobic). Increases lactate threshold and high-speed endurance. This is "comfortably uncomfortable."
Zone 5 (90-100%): Maximum. Sprinting and high-intensity intervals. Only sustainable for very short durations.
Example Calculation
Imagine a 40-year-old individual with a resting heart rate of 70 BPM using the Karvonen method:
Max HR: 220 – 40 = 180 BPM
HR Reserve: 180 – 70 = 110 BPM
Zone 2 Target (60%): (110 * 0.60) + 70 = 136 BPM
Zone 2 Target (70%): (110 * 0.70) + 70 = 147 BPM
Therefore, their "Fat Burn" range is approximately 136 to 147 beats per minute.
function calculateHRZones() {
var age = document.getElementById('hr_age').value;
var restingHR = document.getElementById('hr_resting').value;
var method = document.getElementById('hr_method').value;
var errorDiv = document.getElementById('hr-error-msg');
var resultsDiv = document.getElementById('hr-results');
if (!age || age 110) {
errorDiv.style.display = 'block';
resultsDiv.style.display = 'none';
return;
}
errorDiv.style.display = 'none';
var ageNum = parseFloat(age);
var rhrNum = parseFloat(restingHR) || 0;
var mhr = 220 – ageNum;
var hrr = mhr – rhrNum;
document.getElementById('res_max_hr').innerText = mhr;
document.getElementById('res_hrr').innerText = (method === 'karvonen' && rhrNum > 0) ? hrr : 'N/A (Standard Method)';
var zones = [
{ name: 'Zone 1: Recovery', min: 0.50, max: 0.60 },
{ name: 'Zone 2: Fat Burn', min: 0.60, max: 0.70 },
{ name: 'Zone 3: Aerobic', min: 0.70, max: 0.80 },
{ name: 'Zone 4: Anaerobic', min: 0.80, max: 0.90 },
{ name: 'Zone 5: Max Effort', min: 0.90, max: 1.00 }
];
var html = ";
for (var i = 0; i 0) {
zoneMin = Math.round((hrr * zones[i].min) + rhrNum);
zoneMax = Math.round((hrr * zones[i].max) + rhrNum);
} else {
zoneMin = Math.round(mhr * zones[i].min);
zoneMax = Math.round(mhr * zones[i].max);
}
html += '