How to Calculate Heart Rate Zones for Cycling

.hr-calc-container { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; max-width: 800px; margin: 20px auto; padding: 25px; border: 1px solid #ddd; border-radius: 12px; background-color: #ffffff; box-shadow: 0 4px 15px rgba(0,0,0,0.05); color: #333; } .hr-calc-container h2 { color: #d32f2f; text-align: center; margin-top: 0; } .hr-input-group { margin-bottom: 20px; } .hr-input-group label { display: block; font-weight: bold; margin-bottom: 8px; font-size: 14px; } .hr-input-group input, .hr-input-group select { width: 100%; padding: 12px; border: 1px solid #ccc; border-radius: 6px; box-sizing: border-box; font-size: 16px; } .hr-calc-btn { width: 100%; background-color: #d32f2f; color: white; padding: 15px; border: none; border-radius: 6px; font-size: 18px; font-weight: bold; cursor: pointer; transition: background-color 0.3s; } .hr-calc-btn:hover { background-color: #b71c1c; } .hr-results { margin-top: 30px; display: none; } .zone-table { width: 100%; border-collapse: collapse; margin-top: 15px; } .zone-table th, .zone-table td { padding: 12px; text-align: left; border-bottom: 1px solid #eee; } .zone-table th { background-color: #f8f9fa; } .zone-1 { border-left: 5px solid #9e9e9e; } .zone-2 { border-left: 5px solid #4caf50; } .zone-3 { border-left: 5px solid #ffeb3b; } .zone-4 { border-left: 5px solid #ff9800; } .zone-5 { border-left: 5px solid #f44336; } .article-section { margin-top: 40px; line-height: 1.6; } .article-section h3 { color: #d32f2f; border-bottom: 2px solid #f44336; padding-bottom: 5px; } .example-box { background-color: #f1f8e9; padding: 15px; border-radius: 8px; margin: 15px 0; border-left: 5px solid #4caf50; }

Cycling Heart Rate Zone Calculator

Karvonen Formula (HR Reserve) Percentage of Max HR

Your Personalized Cycling Zones

Zone Intensity Range (BPM)

How to Calculate Heart Rate Zones for Cycling

Training with a heart rate monitor is one of the most effective ways for cyclists to measure intensity, track progress, and ensure they are hitting the specific physiological targets of a workout. Unlike power meters, which measure output, heart rate measures the internal cost of that effort.

To calculate your zones, you first need to identify your Maximum Heart Rate (Max HR). While age-based formulas like "220 minus age" are common, they are often inaccurate for trained athletes. The most reliable method is a field test or a lab stress test.

The Karvonen Method vs. Max HR Percentage

This calculator offers two primary methods for determining your cycling zones:

  • Percentage of Max HR: A simple calculation based solely on your maximum heart rate. (Zone = Max HR * %).
  • Karvonen Formula (Heart Rate Reserve): This is generally considered more accurate for cyclists because it accounts for your fitness level by including your Resting Heart Rate (RHR). The Heart Rate Reserve (HRR) is the difference between Max HR and RHR.
Realistic Example:
If a cyclist has a Max HR of 190 and a Resting HR of 50, their Heart Rate Reserve is 140. To find 70% intensity using Karvonen: (140 * 0.70) + 50 = 148 BPM.

Understanding the 5 Cycling Zones

Zone 1: Active Recovery (50-60%) – Very light effort. Used for warming up, cooling down, or flushing out the legs after a hard race.

Zone 2: Endurance (60-70%) – The "all-day" pace. This builds aerobic capacity and trains the body to burn fat efficiently. This should make up the bulk of a cyclist's base training.

Zone 3: Tempo (70-80%) – A moderate effort where breathing becomes deeper. Used for building sustained speed and aerobic power.

Zone 4: Lactate Threshold (80-90%) – The "sweet spot" and threshold. This is the maximum effort you can sustain for about an hour. It is crucial for time trialists and climbers.

Zone 5: VO2 Max (90-100%) – Short, intense bursts. This zone improves your maximum oxygen uptake and top-end speed.

How to Find Your True Max HR

Instead of guessing, try this cycling-specific test: After a thorough warm-up, find a long, steady climb (at least 5-8 minutes). Ride the first 2 minutes at a hard tempo, the next 2 minutes at threshold, and the final minute at an all-out sprint until you cannot maintain the effort. The highest number seen on your monitor during this effort is a close approximation of your cycling Max HR.

function calculateCyclingZones() { var mhr = parseFloat(document.getElementById('maxHR').value); var rhr = parseFloat(document.getElementById('restHR').value); var method = document.getElementById('calcMethod').value; var resultDiv = document.getElementById('hrResults'); var tableBody = document.getElementById('zoneTableBody'); if (isNaN(mhr) || mhr <= 0) { alert("Please enter a valid Maximum Heart Rate."); return; } if (method === "karvonen" && (isNaN(rhr) || rhr = mhr) { alert("Resting Heart Rate must be lower than Maximum Heart Rate."); return; } var zones = [ { name: "Zone 1: Recovery", min: 0.50, max: 0.60, class: "zone-1" }, { name: "Zone 2: Endurance", min: 0.60, max: 0.70, class: "zone-2" }, { name: "Zone 3: Tempo", min: 0.70, max: 0.80, class: "zone-3" }, { name: "Zone 4: Threshold", min: 0.80, max: 0.90, class: "zone-4" }, { name: "Zone 5: VO2 Max", min: 0.90, max: 1.00, class: "zone-5" } ]; var html = ""; var hrr = mhr – rhr; for (var i = 0; i < zones.length; i++) { var zoneMin, zoneMax; if (method === "karvonen") { zoneMin = Math.round((hrr * zones[i].min) + rhr); zoneMax = Math.round((hrr * zones[i].max) + rhr); } else { zoneMin = Math.round(mhr * zones[i].min); zoneMax = Math.round(mhr * zones[i].max); } html += ""; html += "" + zones[i].name + ""; html += "" + (zones[i].min * 100) + "% – " + (zones[i].max * 100) + "%"; html += "" + zoneMin + " – " + zoneMax + " BPM"; html += ""; } tableBody.innerHTML = html; resultDiv.style.display = "block"; // Smooth scroll to results resultDiv.scrollIntoView({ behavior: 'smooth', block: 'nearest' }); }

Leave a Comment