Calculate Cycling Heart Rate Zones

Cycling Heart Rate Zone Calculator body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; line-height: 1.6; color: #333; max-width: 800px; margin: 0 auto; padding: 20px; } .calculator-container { background: #f8f9fa; border: 1px solid #e9ecef; border-radius: 8px; padding: 30px; margin-bottom: 40px; box-shadow: 0 4px 6px rgba(0,0,0,0.05); } .calculator-title { text-align: center; color: #2c3e50; margin-bottom: 25px; font-size: 24px; font-weight: 700; } .form-group { margin-bottom: 20px; } .form-group label { display: block; margin-bottom: 8px; font-weight: 600; color: #495057; } .form-group input { width: 100%; padding: 12px; border: 1px solid #ced4da; border-radius: 4px; font-size: 16px; box-sizing: border-box; /* Ensures padding doesn't affect width */ } .form-group small { display: block; margin-top: 5px; color: #6c757d; font-size: 12px; } .calc-btn { display: block; width: 100%; padding: 14px; background-color: #007bff; color: white; border: none; border-radius: 4px; font-size: 18px; font-weight: 600; cursor: pointer; transition: background-color 0.2s; } .calc-btn:hover { background-color: #0056b3; } .results-box { margin-top: 30px; display: none; background: #fff; border: 1px solid #dee2e6; border-radius: 6px; padding: 20px; } .result-header { font-size: 18px; font-weight: 700; color: #2c3e50; margin-bottom: 15px; text-align: center; border-bottom: 2px solid #007bff; padding-bottom: 10px; } .zone-table { width: 100%; border-collapse: collapse; margin-top: 10px; } .zone-table th, .zone-table td { padding: 12px; text-align: left; border-bottom: 1px solid #e9ecef; } .zone-table th { background-color: #f1f3f5; color: #495057; } .zone-color { width: 15px; height: 15px; display: inline-block; border-radius: 50%; margin-right: 8px; } /* Zone Colors */ .z1-color { background-color: #6c757d; } /* Grey */ .z2-color { background-color: #28a745; } /* Green */ .z3-color { background-color: #ffc107; } /* Yellow */ .z4-color { background-color: #fd7e14; } /* Orange */ .z5-color { background-color: #dc3545; } /* Red */ .content-section { margin-top: 50px; } .content-section h2 { color: #2c3e50; font-size: 28px; margin-bottom: 20px; } .content-section h3 { color: #343a40; font-size: 22px; margin-top: 30px; margin-bottom: 15px; } .content-section p { margin-bottom: 15px; font-size: 16px; line-height: 1.7; } .content-section ul { margin-bottom: 20px; padding-left: 20px; } .content-section li { margin-bottom: 10px; }
Cycling Heart Rate Zones Calculator
Used to estimate Max HR if unknown (220 – Age).
Measure in the morning before getting out of bed. Required for Karvonen formula.
Leave blank to calculate automatically based on age.
Your Training Zones (Karvonen Method)
Zone Intensity (%) Heart Rate (BPM) Training Effect
function calculateCyclingZones() { // 1. Get Inputs var ageInput = document.getElementById('cyclistAge').value; var rhrInput = document.getElementById('restingHR').value; var maxHRInput = document.getElementById('knownMaxHR').value; // 2. Validate Inputs if (ageInput === "" && maxHRInput === "") { alert("Please enter your Age or a Known Max Heart Rate."); return; } var age = parseFloat(ageInput); var rhr = parseFloat(rhrInput); var customMaxHR = parseFloat(maxHRInput); // Handle Resting Heart Rate Default (if empty, default to 0 implies simple percentage, // but for Karvonen we need RHR. If missing, we alert or assume 0 for simple % calculation). // For this specific calculator, we enforce RHR for accuracy or default to 0 which falls back to simple %. if (isNaN(rhr)) { rhr = 0; } // 3. Determine Max Heart Rate (MHR) var mhr; if (!isNaN(customMaxHR) && customMaxHR > 0) { mhr = customMaxHR; } else { // Standard Formula: 220 – Age mhr = 220 – age; } // 4. Calculate Heart Rate Reserve (HRR) var hrr = mhr – rhr; // 5. Define Zone Percentages (Karvonen / Cycling Standard) // Zone 1: 50-60% // Zone 2: 60-70% // Zone 3: 70-80% // Zone 4: 80-90% // Zone 5: 90-100% var zones = [ { id: 1, name: "Active Recovery", minPct: 0.50, maxPct: 0.60, color: "z1-color", effect: "Warm up, cool down, recovery" }, { id: 2, name: "Endurance", minPct: 0.60, maxPct: 0.70, color: "z2-color", effect: "Fat burning, base building" }, { id: 3, name: "Tempo", minPct: 0.70, maxPct: 0.80, color: "z3-color", effect: "Aerobic fitness, stamina" }, { id: 4, name: "Threshold", minPct: 0.80, maxPct: 0.90, color: "z4-color", effect: "Lactate tolerance, high speed" }, { id: 5, name: "VO2 Max", minPct: 0.90, maxPct: 1.00, color: "z5-color", effect: "Maximum performance, sprinting" } ]; var tableHtml = ""; // 6. Loop and Calculate Ranges // Formula: Target HR = ((HRR * %) + RHR) for (var i = 0; i < zones.length; i++) { var z = zones[i]; // Calculate Min BPM for zone var minBpm = Math.round((hrr * z.minPct) + rhr); // Calculate Max BPM for zone var maxBpm = Math.round((hrr * z.maxPct) + rhr); tableHtml += ""; tableHtml += " Zone " + z.id + ": " + z.name + ""; tableHtml += "" + (z.minPct * 100) + "% – " + (z.maxPct * 100) + "%"; tableHtml += "" + minBpm + " – " + maxBpm + " bpm"; tableHtml += "" + z.effect + ""; tableHtml += ""; } // 7. Update DOM document.getElementById('zoneTableBody').innerHTML = tableHtml; var detailsText = "Calculated using Max HR: " + mhr + " bpm"; if (rhr > 0) { detailsText += " and Resting HR: " + rhr + " bpm (Karvonen Method)."; } else { detailsText += ". Resting HR not provided (Simple Max HR % used)."; } document.getElementById('calcDetails').innerHTML = detailsText; document.getElementById('resultsDisplay').style.display = "block"; }

Mastering Your Cycling Heart Rate Zones

Training with a heart rate monitor is one of the most effective ways for cyclists to improve endurance, speed, and overall fitness. Unlike training by "feel" (Rate of Perceived Exertion), heart rate data provides an objective metric of how hard your body is working. This calculator helps you define specific intensity zones based on your physiology.

The Importance of the Karvonen Formula

While many simple calculators only look at your age to determine heart rate zones, this tool utilizes the Karvonen Formula (when a Resting Heart Rate is provided). This method is superior for cyclists because it accounts for your Heart Rate Reserve (HRR).

Your HRR is the difference between your Maximum Heart Rate and your Resting Heart Rate. By factoring in your resting rate, the zones are tailored to your current fitness level. A fitter cyclist typically has a lower resting heart rate, meaning their training zones will be calculated differently than a beginner's, even if they are the same age.

Breaking Down the 5 Zones

Successful cycling training plans require a mix of time spent in different zones. Here is what each zone represents:

  • Zone 1 (Active Recovery): Very light intensity. Used for warming up, cooling down, or recovery rides the day after a hard race. It promotes blood flow to flush out metabolic waste without stressing the muscles.
  • Zone 2 (Endurance): Often called the "all-day" pace. This is where you build your aerobic base. You should be able to hold a conversation comfortably. Pro cyclists spend a vast majority of their training time here to build mitochondrial efficiency.
  • Zone 3 (Tempo): This is the "grey zone"—harder than endurance but not quite race pace. It requires concentration to maintain. It improves aerobic efficiency and muscular endurance but can be fatiguing if overused.
  • Zone 4 (Lactate Threshold): This is roughly your time trial pace. You are riding right on the edge of where your body can clear lactate. Training here raises your functional threshold power (FTP). Breathing is labored; conversation is limited to single words.
  • Zone 5 (VO2 Max): Maximum effort. These are short bursts, sprints, or steep climbs lasting a few minutes. This zone trains your heart's ability to pump blood and your muscles' ability to use oxygen at the highest rates.

How to Determine Max Heart Rate

The standard formula (220 minus Age) is a good estimation for the general population, but it can vary significantly for individuals. For the most accurate results, perform a field test (such as a 20-minute time trial effort) or use the highest heart rate observed during a maximal sprint effort at the end of a hard ride. You can enter this custom value in the "Known Max Heart Rate" field above for better precision.

Leave a Comment