{"id":65752,"date":"2026-09-29T18:37:08","date_gmt":"2026-09-29T15:37:08","guid":{"rendered":"https:\/\/wpcalc.com\/en\/?p=65752"},"modified":"2026-10-13T11:52:57","modified_gmt":"2026-10-13T08:52:57","slug":"cycling-ftp-power-zones-calculator","status":"publish","type":"post","link":"https:\/\/wpcalc.com\/en\/beauty\/cycling-ftp-power-zones-calculator\/","title":{"rendered":"Cycling FTP Power Zones Calculator"},"content":{"rendered":"<section class=\"not-prose calculator-box\" aria-labelledby=\"calculator-title\"><div class=\"flex items-baseline sm:items-center justify-between gap-2 sm:gap-3\"><div class=\"flex flex-col sm:flex-row sm:items-center gap-2\"><span class=\"icon icon-calculator text-primary-700! text-base! dark:text-primary-300!\" aria-hidden=\"true\"><\/span><h2 id=\"calculator-title\" class=\"text-lg font-display font-bold\">Find Your Training Zones from FTP<\/h2><\/div><div class=\"calcdash-favorite group\">\n  <button type=\"button\" class=\"favorite\" id=\"favorite\" data-favorite-id=\"65752\" data-favorite-title=\"Cycling Power Zones\" data-favorite-url=\"https:\/\/wpcalc.com\/en\/beauty\/cycling-ftp-power-zones-calculator\/\" data-favorite-excerpt=\"Enter your Functional Threshold Power (FTP) and instantly get your complete set of cycling training zones in watts, using either the classic 7-zone Coggan model or a simplified 5-zone scheme.\" aria-label=\"Add to Favorites\" data-favorite-icon=\"icon icon-fitness\">\n    <span class=\"icon icon-shape-star-empty\" aria-hidden=\"true\"><\/span>\n  <\/button>\n  <div class=\"calcdash-favorite__tip\" aria-hidden=\"true\">\n   <span class=\"favorite-tooltip\" id=\"favorite-tooltip\"><\/span>\n  <\/div>\n  <span class=\"sr-only\" role=\"status\" id=\"favorite-status\"><\/span>\n<\/div><\/div><form action=\"https:\/\/wpcalc.com\/en\/beauty\/cycling-ftp-power-zones-calculator\/\" method=\"POST\" class=\"calculator\" id=\"calculator-65752\" data-post=\"65752\"><fieldset class=\"fieldset-input is-2\"><legend class=\"sr-only\">Input Fields<\/legend><div class=\"field has-term\" id=\"input-1\"><label for=\"field-1\">Functional threshold power (FTP)<\/label><div class=\"term\">FTP<\/div>  <div class=\"absolute bottom-0 left-16 top-8 w-2 h-0.5 bg-blue-500\"><\/div><input type=\"text\" name=\"functional_threshold_power_ftp\" id=\"field-1\" aria-describedby=\"calc-unit-1 calc-info-1\" data-number inputmode=\"decimal\" autocomplete=\"off\" spellcheck=\"false\" min=\"50\" max=\"1000\" value=\"250\"\/><div class=\"unit\" id=\"calc-unit-1\">W<\/div><small id=\"calc-info-1\">Highest power you can sustain for about one hour<\/small><\/div><div class=\"field\" id=\"input-2\"><label for=\"field-2\">Zone scheme<\/label><div class=\"grid grid-cols-1\"><select id=\"field-2\" name=\"zone_scheme\"><option value=\"coggan\" selected>7 zones (Coggan, classic)<\/option><option value=\"five\">5 zones (simplified)<\/option><\/select><svg class=\"pointer-events-none col-start-1 row-start-1 mr-2 size-5 self-center justify-self-end text-gray-500 sm:size-4\" viewBox=\"0 0 16 16\" fill=\"currentColor\" aria-hidden=\"true\" data-slot=\"icon\">\n              <path fill-rule=\"evenodd\" d=\"M4.22 6.22a.75.75 0 0 1 1.06 0L8 8.94l2.72-2.72a.75.75 0 1 1 1.06 1.06l-3.25 3.25a.75.75 0 0 1-1.06 0L4.22 7.28a.75.75 0 0 1 0-1.06Z\" clip-rule=\"evenodd\" \/>\n            <\/svg><\/div><\/div><\/fieldset><div class=\"buttons\"><button type=\"submit\" data-text=\"Re-Calculate\" id=\"calculate-button\" data-post=\"65752\">Calculate<\/button><button type=\"reset\">Reset<\/button><\/div><div class=\"field is-checkbox hidden!\" id=\"field-auto-calc\"><input type=\"checkbox\" id=\"auto-calc\"><label for=\"auto-calc\">Calculate automatically<\/label><small>If enabled, the result will update automatically when you change any value.<\/small><\/div><div class=\"fieldset-result is-hidden\" aria-labelledby=\"result-title\" aria-live=\"polite\" role=\"region\"> <h3 class=\"result-title bg-gradient-to-r from-primary-50 to-gray-50 dark:from-primary-900 dark:to-gray-800\" id=\"result-title\"><span class=\"icon icon-s-pulse\" aria-hidden=\"true\"><\/span> Your Cycling Power Zones<\/h3><div class=\"result-box\"><div class=\"field-result\" id=\"output-1\"><span class=\"field-title\"><span>Threshold zone range<\/span><span class=\"result-term\">Z4<\/span><\/span><span class=\"field-value\" id=\"result-1\" data-unit=\"W\"><\/span><button type=\"button\" class=\"copy-result\" data-tooltip=\"Copy Result\" aria-label=\"Copy Result\"><span class=\"copy-icon icon icon-document-copy\" aria-hidden=\"true\"><\/span><\/button><\/div><div class=\"field-result is-column\" id=\"output-2\"><span class=\"field-title\"><span>All power zones<\/span><\/span><span class=\"field-value\" id=\"result-2\"><\/span><button type=\"button\" class=\"copy-result\" data-tooltip=\"Copy Result\" aria-label=\"Copy Result\"><span class=\"copy-icon icon icon-document-copy\" aria-hidden=\"true\"><\/span><\/button><\/div><\/div><div class=\"result-actions\"><button type=\"button\" class=\"copy-link\"><svg viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M12.232 4.232a2.5 2.5 0 0 1 3.536 3.536l-1.225 1.224a.75.75 0 0 0 1.061 1.06l1.224-1.224a4 4 0 0 0-5.656-5.656l-3 3a4 4 0 0 0 .225 5.865.75.75 0 0 0 .977-1.138 2.5 2.5 0 0 1-.142-3.667l3-3Z\"\/><path d=\"M11.603 7.963a.75.75 0 0 0-.977 1.138 2.5 2.5 0 0 1 .142 3.667l-3 3a2.5 2.5 0 0 1-3.536-3.536l1.225-1.224a.75.75 0 0 0-1.061-1.06l-1.224 1.224a4 4 0 1 0 5.656 5.656l3-3a4 4 0 0 0-.225-5.865Z\"\/><\/svg><span class=\"copy-link__text\">Copy link to this calculation<\/span><\/button><span class=\"sr-only\" role=\"status\" id=\"copy-link-status\"><\/span><\/div><\/div><a href=\"#respond\" class=\"hidden transition-opacity duration-300 opacity-0 w-50 text-sm justify-center items-center gap-2 px-4 py-2 rounded bg-gray-200 text-gray-700 hover:bg-gray-300\" id=\"leave-comment\"><span class=\"icon icon-comments\" aria-hidden=\"true\"><\/span>Leave a Comment<\/a><\/form><\/section><section id=\"calc-reactions\" class=\"not-prose hidden my-12 bg-gradient-to-r from-primary-50 to-gray-50 border border-indigo-100 rounded-xl px-6 py-4 shadow-sm\" data-post=\"65752\" aria-live=\"polite\" aria-labelledby=\"calc-reactions-title\"><p id=\"calc-reactions-title\" class=\"text-sm text-gray-500 text-center mb-2\">How did this result make you feel?<\/p><div role=\"group\" aria-labelledby=\"calc-reactions-title\" class=\"grid grid-cols-3 sm:flex sm:flex-row sm:justify-around gap-4 sm:items-center sm:flex-wrap\"><button type=\"button\" aria-pressed=\"false\" class=\"reaction-btn flex flex-col items-center gap-1 text-sm text-gray-700 hover:text-primary-600 cursor-pointer transition-transform hover:scale-105\" data-reaction=\"like\"><span class=\"reaction-count\" data-reaction-count=\"like\">0<\/span><span class=\"reaction text-3xl\" aria-hidden=\"true\">\ud83d\ude00 <\/span><span class=\"reaction-description font-medium\">Like <\/span><\/button><button type=\"button\" aria-pressed=\"false\" class=\"reaction-btn flex flex-col items-center gap-1 text-sm text-gray-700 hover:text-primary-600 cursor-pointer transition-transform hover:scale-105\" data-reaction=\"helpful\"><span class=\"reaction-count\" data-reaction-count=\"helpful\">0<\/span><span class=\"reaction text-3xl\" aria-hidden=\"true\">\ud83d\udca1 <\/span><span class=\"reaction-description font-medium\">Helpful <\/span><\/button><button type=\"button\" aria-pressed=\"false\" class=\"reaction-btn flex flex-col items-center gap-1 text-sm text-gray-700 hover:text-primary-600 cursor-pointer transition-transform hover:scale-105\" data-reaction=\"confused\"><span class=\"reaction-count\" data-reaction-count=\"confused\">0<\/span><span class=\"reaction text-3xl\" aria-hidden=\"true\">\ud83d\ude15 <\/span><span class=\"reaction-description font-medium\">Confused <\/span><\/button><button type=\"button\" aria-pressed=\"false\" class=\"reaction-btn flex flex-col items-center gap-1 text-sm text-gray-700 hover:text-primary-600 cursor-pointer transition-transform hover:scale-105\" data-reaction=\"disappointed\"><span class=\"reaction-count\" data-reaction-count=\"disappointed\">0<\/span><span class=\"reaction text-3xl\" aria-hidden=\"true\">\ud83d\ude1e <\/span><span class=\"reaction-description font-medium\">Disappointed <\/span><\/button><button type=\"button\" aria-pressed=\"false\" class=\"reaction-btn flex flex-col items-center gap-1 text-sm text-gray-700 hover:text-primary-600 cursor-pointer transition-transform hover:scale-105\" data-reaction=\"inaccurate\"><span class=\"reaction-count\" data-reaction-count=\"inaccurate\">0<\/span><span class=\"reaction text-3xl\" aria-hidden=\"true\">\u274c <\/span><span class=\"reaction-description font-medium\">Inaccurate <\/span><\/button><\/div><div id=\"reaction-message\" class=\"hidden mt-8 rounded-md border border-primary-100 bg-white\/50 backdrop-blur-sm px-4 py-2 text-sm text-center shadow-sm\"><\/div><\/section><div class=\"calcdash-ad not-prose calcdash-ad--calc_result calcdash-ad--in-article\"><ins class=\"adsbygoogle\" style=\"display:block\" data-ad-client=\"ca-pub-1721569815777345\" data-ad-slot=\"6317458308\" data-ad-layout=\"in-article\" data-ad-format=\"fluid\"><\/ins><script>(adsbygoogle = window.adsbygoogle || []).push({});<\/script><\/div>\n<style id=\"wpcoderpro-inline-1\">.formula-box {\r\n\tborder-bottom: none !important;\r\n}<\/style><section class=\"formula-box\" aria-labelledby=\"formula-title\">\r\n\t<div id=\"formula-title\" class=\"not-prose font-display mb-4\"><span class=\"icon icon-formula\" aria-hidden=\"true\"><\/span><h2>Cycling Power Zone<\/h2><\/div>\r\n\t<figure class=\"not-prose formula\">\r\n\t\t<figcaption class=\"formula-title\">Formula<\/figcaption>\r\n\t\t<div class=\"text-base text-gray-800\" id=\"formula\">\n\\[ P_{\\text{zone}} = \\text{FTP} \\times f \\quad \\text{where } f \\text{ is the zone's fraction of FTP} \\\\\n\\begin{aligned}\n\\text{Z1 (Active Recovery)} &amp;: 0\text{\u2013}55\\% \\;\\text{FTP} \\\\\n\\text{Z2 (Endurance)} &amp;: 56\text{\u2013}75\\% \\\\\n\\text{Z3 (Tempo)} &amp;: 76\text{\u2013}90\\% \\\\\n\\text{Z4 (Threshold)} &amp;: 91\text{\u2013}105\\% \\\\\n\\text{Z5 (VO}_2\\text{max)} &amp;: 106\text{\u2013}120\\% \\\\\n\\text{Z6 (Anaerobic Capacity)} &amp;: 121\text{\u2013}150\\% \\\\\n\\text{Z7 (Neuromuscular Power)} &amp;: &gt;151\\%\n\\end{aligned}\n\\]\n<\/div>\r\n\t<\/figure>\r\n\t<\/p>\n<p><strong>Where:<\/strong><\/p>\n<ul>\n<li>\\(P_{\\text{zone}}\\) \u2014 power output for a given zone (W)<\/li>\n<li>\\(\\text{FTP}\\) \u2014 functional threshold power, the highest power you can sustain for about one hour (W)<\/li>\n<li>\\(f\\) \u2014 the fraction of FTP that defines the zone boundary<\/li>\n<\/ul>\n<p>Each zone is defined as a percentage range of your FTP. Multiplying your FTP by the lower and upper percentages gives the zone's power range in watts.<\/p>\n<p>\r\n<\/section>\n<style id=\"wpcoderpro-inline-459\">.calculation-box {\r\n\tborder-bottom: none !important;\r\n}<\/style><section id=\"calculation\" class=\"calculation-box\" aria-labelledby=\"calculation-title\">\r\n\t<div id=\"calculation-title\" class=\"not-prose font-display\"><span class=\"icon icon-unordered-list\" aria-hidden=\"true\"><\/span><h2>Cycling Power Zones \u2013 Calculation Example<\/h2><\/div>\r\n\r\n<\/p>\n<p><strong>Example:<\/strong> a cyclist with an FTP of 250 W wants to know their threshold zone (Zone 4) and full power zone table using the Coggan 7-zone model.<\/p>\n<p>\\[ P_{\\text{Z4, low}} = 250 \\times 0.91 = 228 \\text{ W} \\\\ P_{\\text{Z4, high}} = 250 \\times 1.05 = 263 \\text{ W} \\]<\/p>\n<p>Applying the same calculation to every zone boundary gives the complete table:<\/p>\n<table>\n<thead>\n<tr>\n<th>Zone<\/th>\n<th>Name<\/th>\n<th>% of FTP<\/th>\n<th>Watts<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Z1<\/td>\n<td>Active Recovery<\/td>\n<td>0\u201355%<\/td>\n<td>0\u2013138 W<\/td>\n<\/tr>\n<tr>\n<td>Z2<\/td>\n<td>Endurance<\/td>\n<td>56\u201375%<\/td>\n<td>140\u2013188 W<\/td>\n<\/tr>\n<tr>\n<td>Z3<\/td>\n<td>Tempo<\/td>\n<td>76\u201390%<\/td>\n<td>190\u2013225 W<\/td>\n<\/tr>\n<tr>\n<td>Z4<\/td>\n<td>Threshold<\/td>\n<td>91\u2013105%<\/td>\n<td>228\u2013263 W<\/td>\n<\/tr>\n<tr>\n<td>Z5<\/td>\n<td>VO\u2082max<\/td>\n<td>106\u2013120%<\/td>\n<td>265\u2013300 W<\/td>\n<\/tr>\n<tr>\n<td>Z6<\/td>\n<td>Anaerobic Capacity<\/td>\n<td>121\u2013150%<\/td>\n<td>303\u2013375 W<\/td>\n<\/tr>\n<tr>\n<td>Z7<\/td>\n<td>Neuromuscular Power<\/td>\n<td>&gt;151%<\/td>\n<td>&gt;378 W<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>Result:<\/strong> with an FTP of 250 W, the threshold zone is 228\u2013263 W, and endurance riding should be done at 140\u2013188 W.<\/p>\n<p>\n\r\n<\/section>\n<h2>How to Use the Cycling Power Zones Calculator<\/h2>\n<ol>\n<li>Enter your <strong>Functional threshold power (FTP)<\/strong> in watts. This is the highest power you can hold for roughly one hour, typically measured with a 20-minute field test or lab testing.<\/li>\n<li>Choose your <strong>Zone scheme<\/strong>: \"7 zones (Coggan, classic)\" for the detailed model used in most training plans, or \"5 zones (simplified)\" if you prefer fewer, broader zones.<\/li>\n<li>Read the <strong>Threshold zone range<\/strong> first \u2014 this is the power band around your FTP that defines sustained hard efforts.<\/li>\n<li>Check the <strong>All power zones<\/strong> table for the complete breakdown, including each zone's name, percentage of FTP, and power range in watts.<\/li>\n<\/ol>\n<h2>What Are Cycling Power Zones?<\/h2>\n<p>Power zones divide your entire power output range into bands, each targeting a different physiological system. Training in specific zones produces specific adaptations: long rides in Zone 2 build aerobic endurance and fat metabolism, Zone 4 work raises your threshold, and Zone 5 intervals develop your VO\u2082max. Without zones, terms like \"ride easy\" or \"go hard\" are vague; with zones, every workout has a precise, measurable target.<\/p>\n<p>All zones are anchored to your <strong>functional threshold power (FTP)<\/strong> \u2014 the power you could theoretically hold for one hour in a fresh, race-like effort. Because FTP is the reference point, your zones are personal: two riders with FTPs of 200 W and 300 W will have completely different Zone 2 ranges, even if they train identically. When your FTP changes, every zone shifts with it, which is why retesting every 4\u20138 weeks during a training block is recommended.<\/p>\n<p>The classic 7-zone model popularized by Dr. Andrew Coggan separates the extremes that simpler schemes lump together. Zone 1 is true active recovery \u2014 deliberately spinning easy \u2014 while Zones 6 and 7 cover anaerobic and sprint-style efforts that exceed 120% of FTP. The simplified 5-zone model merges everything above 105% of FTP into one zone, which is easier to follow but less precise for high-intensity interval training.<\/p>\n<p>To interpret your results: most of your weekly volume (typically 70\u201380%) should fall in Zones 1\u20132, with targeted intensity sessions in Zones 4\u20136. A common mistake is drifting into Zone 3 on easy days \u2014 too hard to recover properly, too easy to build threshold effectively.<\/p>\n<h2>Assumptions, Limitations and Practical Tips<\/h2>\n<ul>\n<li><strong>Your zones are only as good as your FTP test.<\/strong> A 20-minute test result should be multiplied by 0.95 to estimate FTP; a full 60-minute effort can be used directly. Ramp tests tend to overestimate FTP for some riders, which shifts all zones too high.<\/li>\n<li><strong>Power meters measure differently.<\/strong> Trainer power, crank-based meters and pedal-based meters can differ by several percent. Use the same meter for testing and training so your zones stay consistent.<\/li>\n<li><strong>Zones don't account for fatigue or duration.<\/strong> On long rides, power you can sustain drops even within the same zone. Experienced riders also use \"normalized power\" or variable targets for intervals rather than holding a fixed wattage.<\/li>\n<li><strong>Round sensibly.<\/strong> Rounding zone boundaries to the nearest 5 W makes targets easier to hit on the road without meaningfully changing the training stimulus.<\/li>\n<li><strong>Power and heart rate don't always match.<\/strong> Heart rate lags power changes by 30\u201390 seconds. For steady efforts you can cross-check your zones against your <a href=\"https:\/\/wpcalc.com\/en\/beauty\/heart-rate-zones-calculator\/\">heart rate training zones<\/a>, but always let power lead during intervals.<\/li>\n<li><strong>Context matters.<\/strong> On climbs, your <a href=\"https:\/\/wpcalc.com\/en\/beauty\/power-to-weight-ratio-calculator\/\">power-to-weight ratio<\/a> determines your speed, so the same zone output feels very different on flat roads versus gradients. If you're also benchmarking overall fitness, a <a href=\"https:\/\/wpcalc.com\/en\/beauty\/vo2max-direct-formula-calculator\/\">VO\u2082max estimate<\/a> complements your threshold data nicely.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Enter your Functional Threshold Power (FTP) and instantly get your complete set of cycling training zones in watts, using either the classic 7-zone Coggan model or a simplified 5-zone scheme.<\/p>\n","protected":false},"author":3168,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[2],"tags":[38],"class_list":["post-65752","post","type-post","status-publish","format-standard","hentry","category-beauty","tag-fitness"],"acf":[],"_links":{"self":[{"href":"https:\/\/wpcalc.com\/en\/wp-json\/wp\/v2\/posts\/65752","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wpcalc.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wpcalc.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wpcalc.com\/en\/wp-json\/wp\/v2\/users\/3168"}],"replies":[{"embeddable":true,"href":"https:\/\/wpcalc.com\/en\/wp-json\/wp\/v2\/comments?post=65752"}],"version-history":[{"count":2,"href":"https:\/\/wpcalc.com\/en\/wp-json\/wp\/v2\/posts\/65752\/revisions"}],"predecessor-version":[{"id":67085,"href":"https:\/\/wpcalc.com\/en\/wp-json\/wp\/v2\/posts\/65752\/revisions\/67085"}],"wp:attachment":[{"href":"https:\/\/wpcalc.com\/en\/wp-json\/wp\/v2\/media?parent=65752"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wpcalc.com\/en\/wp-json\/wp\/v2\/categories?post=65752"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wpcalc.com\/en\/wp-json\/wp\/v2\/tags?post=65752"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}