% of Heart Rate Reserve (Karvonen Method)
% of Max Heart Rate (Garmin Default)
Your Training Zones
Zone
Intensity
Range (BPM)
Benefit
Understanding Garmin Heart Rate Zones
Training with heart rate zones is the most effective way to improve your cardiovascular fitness. Garmin devices use these zones to provide feedback on your "Training Effect" and "Training Status." If your zones are set incorrectly, your Garmin watch might tell you a recovery run was a "Threshold" workout, leading to bad data and potential overtraining.
Max HR vs. HRR: Which Method is Better?
Most Garmin watches default to the % of Max HR method. While simple, it doesn't account for your fitness level. The Heart Rate Reserve (HRR) method (also known as the Karvonen formula) is widely considered more accurate for athletes. It incorporates your Resting Heart Rate, meaning that as your fitness improves and your resting pulse drops, your zones automatically adjust to your higher "working" capacity.
What Do the Garmin Zones Mean?
Zone 1 (Warm Up): 50–60% of HRR. Relaxed, easy breathing. Good for recovery and warming up.
Zone 2 (Easy): 60–70% of HRR. This is the "base" pace. You should be able to hold a full conversation. This builds aerobic endurance.
Zone 3 (Aerobic): 70–80% of HRR. Moderate pace. Breathing is harder but steady. Great for improving aerobic capacity.
Zone 4 (Threshold): 80–90% of HRR. Fast pace and uncomfortable. Breathing is forceful. Improves anaerobic capacity and speed.
Zone 5 (Maximum): 90–100% of HRR. Sprinting effort. Unsustainable for long periods.
How to Update Zones on Your Garmin Device
Open the Garmin Connect app on your smartphone.
Tap the Device Image at the top or go to "More" > "Garmin Devices."
Select your device and tap User Settings or User Profile.
Select Heart Rate & Power Zones > Heart Rate.
Choose "Based On" and select "BPM" or "% of HRR."
Manually enter the BPM values calculated above into the Zone 1-5 boxes.
Sync your device.
Pro Tip: For the most accurate results, measure your Resting Heart Rate (RHR) immediately upon waking up while still in bed, or use the average 7-day RHR provided by your Garmin watch.
function calculateGarminZones() {
var age = parseFloat(document.getElementById('userAge').value);
var resting = parseFloat(document.getElementById('restingHR').value);
var manualMax = parseFloat(document.getElementById('maxHR').value);
var method = document.getElementById('calcMethod').value;
// Validate inputs
if (isNaN(age) || age 120) {
alert("Please enter a valid age.");
return;
}
if (isNaN(resting) || resting 120) {
alert("Please enter a valid resting heart rate (typical range 30-120).");
return;
}
var maxHRValue = isNaN(manualMax) || manualMax === 0 ? (220 – age) : manualMax;
var hrrValue = maxHRValue – resting;
var resultsTable = document.getElementById('zonesTableBody');
var resultsArea = document.getElementById('hrResultsArea');
var summary = document.getElementById('summaryStats');
resultsTable.innerHTML = "";
var zoneData = [
{ name: "Zone 1", intensity: "Warm Up", low: 0.50, high: 0.60, color: "#9e9e9e" },
{ name: "Zone 2", intensity: "Easy", low: 0.60, high: 0.70, color: "#4caf50" },
{ name: "Zone 3", intensity: "Aerobic", low: 0.70, high: 0.80, color: "#2196f3" },
{ name: "Zone 4", intensity: "Threshold", low: 0.80, high: 0.90, color: "#ff9800" },
{ name: "Zone 5", intensity: "Maximum", low: 0.90, high: 1.00, color: "#f44336" }
];
for (var i = 0; i < zoneData.length; i++) {
var z = zoneData[i];
var lowBPM, highBPM;
if (method === "hrr") {
lowBPM = Math.round((hrrValue * z.low) + resting);
highBPM = Math.round((hrrValue * z.high) + resting);
} else {
lowBPM = Math.round(maxHRValue * z.low);
highBPM = Math.round(maxHRValue * z.high);
}
var row = document.createElement('tr');
row.innerHTML =
'