Power Zone Calculator

Cycling Power Zone Calculator

Your Personalized Training Zones

Zone Description Range (Watts) Intensity

Understanding Your Power Training Zones

Training with power is the most objective way to measure and improve your cycling performance. By identifying your Functional Threshold Power (FTP)—defined as the maximum average power you can sustain for approximately one hour—you can tailor your workouts to specific physiological adaptations.

The 7 Dr. Andy Coggan Power Zones

This calculator utilizes the industry-standard Coggan Power Zones to define your training intensities:

  • Zone 1: Active Recovery ( < 55% FTP): Used for easy spins and recovery days to promote blood flow without adding fatigue.
  • Zone 2: Endurance (55% – 75% FTP): The foundation of cycling training. Enhances fat metabolism and aerobic capacity.
  • Zone 3: Tempo (76% – 90% FTP): Moderate intensity. Improves aerobic power and requires concentration to maintain.
  • Zone 4: Lactate Threshold (91% – 105% FTP): The "sweet spot" and threshold range. Increases your ability to sustain high-power outputs.
  • Zone 5: VO2 Max (106% – 120% FTP): Very hard, short intervals (3-8 minutes). Increases maximal oxygen uptake.
  • Zone 6: Anaerobic Capacity (121% – 150% FTP): Short, explosive bursts. Increases your capacity for repeated high-intensity efforts.
  • Zone 7: Neuromuscular Power (150%+ FTP): Maximum effort sprints lasting only a few seconds.

Practical Training Example

If your FTP is 250 Watts, your training zones would be:

  • Recovery: Below 138W
  • Endurance: 138W to 188W
  • Tempo: 189W to 225W
  • Threshold: 226W to 263W
  • VO2 Max: 264W to 300W

By using these specific ranges, you ensure that every minute on the bike serves a specific purpose, preventing the common mistake of riding too hard on easy days and too easy on hard days.

function calculatePowerZones() { var ftp = parseFloat(document.getElementById('ftpInput').value); var resultsArea = document.getElementById('resultsArea'); var tableBody = document.getElementById('zoneTableBody'); if (isNaN(ftp) || ftp <= 0) { alert("Please enter a valid FTP value in Watts."); return; } var zones = [ { name: "Zone 1", desc: "Active Recovery", min: 0, max: 0.55, color: "#cccccc" }, { name: "Zone 2", desc: "Endurance", min: 0.55, max: 0.75, color: "#99ccff" }, { name: "Zone 3", desc: "Tempo", min: 0.76, max: 0.90, color: "#99ff99" }, { name: "Zone 4", desc: "Lactate Threshold", min: 0.91, max: 1.05, color: "#ffff99" }, { name: "Zone 5", desc: "VO2 Max", min: 1.06, max: 1.20, color: "#ffcc99" }, { name: "Zone 6", desc: "Anaerobic Capacity", min: 1.21, max: 1.50, color: "#ff9999" }, { name: "Zone 7", desc: "Neuromuscular Power", min: 1.51, max: 0, color: "#ff6666" } ]; var html = ""; for (var i = 0; i < zones.length; i++) { var z = zones[i]; var rangeText = ""; var minWatts = Math.round(ftp * z.min); var maxWatts = Math.round(ftp * z.max); if (z.name === "Zone 1") { rangeText = " " + Math.round(ftp * 1.50) + " W"; } else { rangeText = minWatts + " – " + maxWatts + " W"; } var intensityText = (z.max === 0) ? "> 150%" : (Math.round(z.min * 100) + "% – " + Math.round(z.max * 100) + "%"); if(z.name === "Zone 1") intensityText = "< 55%"; html += ""; html += "" + z.name + ""; html += "" + z.desc + ""; html += "" + rangeText + ""; html += "" + intensityText + ""; html += ""; } tableBody.innerHTML = html; resultsArea.style.display = "block"; resultsArea.scrollIntoView({ behavior: 'smooth' }); }

Leave a Reply

Your email address will not be published. Required fields are marked *