Heart Rate Zones for Cycling Calculator

.cycling-calculator-container { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; max-width: 800px; margin: 20px auto; padding: 25px; border: 1px solid #e0e0e0; border-radius: 12px; background-color: #ffffff; box-shadow: 0 4px 6px rgba(0,0,0,0.05); color: #333; } .cycling-calculator-container h2 { color: #1a73e8; text-align: center; margin-top: 0; } .calc-row { margin-bottom: 20px; } .calc-row label { display: block; font-weight: 600; margin-bottom: 8px; color: #444; } .calc-row input { width: 100%; padding: 12px; border: 2px solid #ddd; border-radius: 6px; box-sizing: border-box; font-size: 16px; } .calc-row input:focus { border-color: #1a73e8; outline: none; } .calc-btn { width: 100%; background-color: #1a73e8; color: white; padding: 15px; border: none; border-radius: 6px; font-size: 18px; font-weight: bold; cursor: pointer; transition: background-color 0.3s; } .calc-btn:hover { background-color: #1557b0; } #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; color: #555; } .zone-1 { border-left: 5px solid #cccccc; } .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; } .info-section { margin-top: 40px; line-height: 1.6; color: #444; } .info-section h3 { color: #222; border-bottom: 2px solid #1a73e8; padding-bottom: 5px; display: inline-block; } .metric-box { background: #f1f6ff; padding: 15px; border-radius: 8px; margin-bottom: 20px; text-align: center; } .metric-val { font-size: 24px; font-weight: bold; color: #1a73e8; }

Heart Rate Zones for Cycling Calculator

Optimize your training using the Karvonen Formula (Heart Rate Reserve)

Estimated Max Heart Rate
BPM (Beats Per Minute)
Zone Intensity Range (BPM)
Zone 1 Active Recovery (50-60%)
Zone 2 Endurance (60-70%)
Zone 3 Tempo (70-80%)
Zone 4 Lactate Threshold (80-90%)
Zone 5 VO2 Max (90-100%)

How to Use This Calculator

This calculator uses the Karvonen Formula, which is widely considered more accurate for cyclists than simple percentages because it accounts for your Heart Rate Reserve (HRR). By including your resting heart rate, the zones are tailored to your specific cardiovascular fitness level.

Understanding Your Cycling Zones

To become a faster, more efficient cyclist, you need to train at different intensities. Here is what each zone means for your performance:

  • Zone 1 (Active Recovery): Very easy effort. Used for recovery rides after hard races or intervals. It flushes out metabolic waste without adding fatigue.
  • Zone 2 (Endurance): This is your "all-day" pace. Training here builds mitochondrial density and teaches your body to burn fat efficiently. Most of your weekly mileage should be here.
  • Zone 3 (Tempo): A moderate effort where conversation becomes difficult. Great for building aerobic power but requires more recovery than Zone 2.
  • Zone 4 (Lactate Threshold): The "sweet spot" and threshold range. This is the pace you could sustain for about 40-60 minutes in a time trial. Essential for climbing and racing.
  • Zone 5 (VO2 Max): Maximal effort. Used for short intervals (3-8 minutes) to increase your ceiling for oxygen consumption and explosive power.

Example Calculation

If a 40-year-old cyclist has a resting heart rate of 60 BPM:

  1. Estimated Max HR: 220 – 40 = 180 BPM
  2. Heart Rate Reserve (HRR): 180 – 60 = 120 BPM
  3. Zone 2 Lower Limit: (120 * 0.60) + 60 = 132 BPM
  4. Zone 2 Upper Limit: (120 * 0.70) + 60 = 144 BPM

The resulting Zone 2 for this cyclist would be 132 to 144 beats per minute.

function calculateCyclingZones() { var age = document.getElementById("cyclistAge").value; var resting = document.getElementById("restingHR").value; if (!age || !resting || age <= 0 || resting <= 0) { alert("Please enter valid positive numbers for both age and resting heart rate."); return; } // Standard Max HR Formula (220 – age) var maxHR = 220 – age; var hrr = maxHR – resting; if (hrr <= 0) { alert("Resting heart rate cannot be higher than maximum heart rate. Please check your inputs."); return; } // Display Max HR document.getElementById("maxHRDisplay").innerHTML = maxHR; // Karvonen Formula: ((Max HR – Rest HR) * %Intensity) + Rest HR // Zone 1: 50% to 60% var z1Low = Math.round((hrr * 0.50) + parseInt(resting)); var z1High = Math.round((hrr * 0.60) + parseInt(resting)); document.getElementById("z1-range").innerHTML = z1Low + " – " + z1High + " BPM"; // Zone 2: 60% to 70% var z2Low = Math.round((hrr * 0.60) + parseInt(resting)); var z2High = Math.round((hrr * 0.70) + parseInt(resting)); document.getElementById("z2-range").innerHTML = z2Low + " – " + z2High + " BPM"; // Zone 3: 70% to 80% var z3Low = Math.round((hrr * 0.70) + parseInt(resting)); var z3High = Math.round((hrr * 0.80) + parseInt(resting)); document.getElementById("z3-range").innerHTML = z3Low + " – " + z3High + " BPM"; // Zone 4: 80% to 90% var z4Low = Math.round((hrr * 0.80) + parseInt(resting)); var z4High = Math.round((hrr * 0.90) + parseInt(resting)); document.getElementById("z4-range").innerHTML = z4Low + " – " + z4High + " BPM"; // Zone 5: 90% to 100% var z5Low = Math.round((hrr * 0.90) + parseInt(resting)); var z5High = maxHR; document.getElementById("z5-range").innerHTML = z5Low + " – " + z5High + " BPM"; // Show the results table document.getElementById("hr-results").style.display = "block"; // Smooth scroll to results document.getElementById("hr-results").scrollIntoView({ behavior: 'smooth' }); }

Leave a Comment