{"id":66388,"date":"2026-10-05T15:55:00","date_gmt":"2026-10-05T12:55:00","guid":{"rendered":"https:\/\/wpcalc.com\/en\/?p=66388"},"modified":"2026-10-05T15:55:00","modified_gmt":"2026-10-05T12:55:00","slug":"cycling-vam-calculator","status":"publish","type":"post","link":"https:\/\/wpcalc.com\/en\/beauty\/cycling-vam-calculator\/","title":{"rendered":"Cycling VAM 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\">Calculate Your Average Climbing Rate<\/h2><\/div><div class=\"calcdash-favorite group\">\n  <button type=\"button\" class=\"favorite\" id=\"favorite\" data-favorite-id=\"66388\" data-favorite-title=\"Cycling VAM\" data-favorite-url=\"https:\/\/wpcalc.com\/en\/beauty\/cycling-vam-calculator\/\" data-favorite-excerpt=\"Calculate your cycling VAM (vertical ascent rate) \u2014 the elevation you gain per hour of climbing. Enter the height gained and your climbing time to see how your climbing performance compares.\" 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-vam-calculator\/\" method=\"POST\" class=\"calculator\" id=\"calculator-66388\" data-post=\"66388\"><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\">Elevation gained<\/label><div class=\"term\">h<\/div>  <div class=\"absolute bottom-0 left-16 top-8 w-2 h-0.5 bg-blue-500\"><\/div><div class=\"field-group\"><input type=\"text\" name=\"elevation_gained\" id=\"field-1\" aria-describedby=\"calc-info-1\" data-number inputmode=\"decimal\" autocomplete=\"off\" spellcheck=\"false\" min=\"1\" value=\"800\"\/><div class=\"grid grid-cols-1\"><select id=\"field-2\" name=\"unit\" aria-label=\"Unit\"><option value=\"m\" selected>m<\/option><option value=\"ft\">ft<\/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><small id=\"calc-info-1\">Total vertical ascent of the climb, from a GPS file or the sign at the summit<\/small><\/div><div class=\"is-single field\" id=\"input-2\"><span class=\"font-semibold\">Climbing time<\/span><\/div><div class=\"field has-term\" id=\"input-3\"><label for=\"field-4\">Hours<\/label><div class=\"term\">hh<\/div>  <div class=\"absolute bottom-0 left-16 top-8 w-2 h-0.5 bg-blue-500\"><\/div><input type=\"text\" name=\"hours\" id=\"field-4\" aria-describedby=\"calc-unit-4\" data-number inputmode=\"decimal\" autocomplete=\"off\" spellcheck=\"false\" min=\"0\" max=\"23\" value=\"0\"\/><div class=\"unit\" id=\"calc-unit-4\">h<\/div><\/div><div class=\"field has-term\" id=\"input-4\"><label for=\"field-5\">Minutes<\/label><div class=\"term\">mm<\/div>  <div class=\"absolute bottom-0 left-16 top-8 w-2 h-0.5 bg-blue-500\"><\/div><input type=\"text\" name=\"minutes\" id=\"field-5\" aria-describedby=\"calc-unit-5\" data-number inputmode=\"decimal\" autocomplete=\"off\" spellcheck=\"false\" min=\"0\" max=\"59\" value=\"30\"\/><div class=\"unit\" id=\"calc-unit-5\">min<\/div><\/div><div class=\"field has-term\" id=\"input-5\"><label for=\"field-6\">Seconds<\/label><div class=\"term\">ss<\/div>  <div class=\"absolute bottom-0 left-16 top-8 w-2 h-0.5 bg-blue-500\"><\/div><input type=\"text\" name=\"seconds\" id=\"field-6\" aria-describedby=\"calc-unit-6\" data-number inputmode=\"decimal\" autocomplete=\"off\" spellcheck=\"false\" min=\"0\" max=\"59\" value=\"0\"\/><div class=\"unit\" id=\"calc-unit-6\">s<\/div><\/div><\/fieldset><div class=\"buttons\"><button type=\"submit\" data-text=\"Re-Calculate\" id=\"calculate-button\" data-post=\"66388\">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 VAM Result<\/h3><div class=\"result-box\"><div class=\"field-result\" id=\"output-1\"><span class=\"field-title\"><span>Vertical ascent rate (VAM)<\/span><span class=\"result-term\">VAM<\/span><\/span><span class=\"field-value\" id=\"result-1\" data-unit=\"m\/h\"><\/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\" id=\"output-2\"><span class=\"field-title\"><span>In feet per hour<\/span><\/span><span class=\"field-value\" id=\"result-2\" data-unit=\"ft\/h\"><\/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-3\"><span class=\"field-title\"><span>How this was calculated<\/span><\/span><span class=\"field-value\" id=\"result-3\"><\/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=\"66388\" 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 VAM Formula<\/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\\[ \\text{VAM} = \\frac{h}{t} \\]\n<\/div>\r\n\t<\/figure>\r\n\t<\/p>\n<p><strong>Where:<\/strong><\/p>\n<ul>\n<li>\\(h\\) \u2014 elevation gained during the climb, in meters (feet are converted at \\(1 \\text{ ft} = 0.3048 \\text{ m}\\))<\/li>\n<li>\\(t\\) \u2014 climbing time, in hours \\((t = \\text{hours} + \\text{minutes}\/60 + \\text{seconds}\/3600)\\)<\/li>\n<li>\\(\\text{VAM}\\) \u2014 vertical ascent rate, in vertical meters per hour (m\/h)<\/li>\n<\/ul>\n<p>The formula divides the total vertical ascent by the time taken to climb it, giving the average number of meters you gain every hour \u2014 the standard metric for climbing performance in cycling.<\/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 VAM \u2013 Calculation Example<\/h2><\/div>\r\n\r\n<\/p>\n<p><strong>Example:<\/strong> you climb a mountain pass and gain 800 m of elevation, and the summit sign or your GPS shows it took you 0 hours, 30 minutes and 0 seconds.<\/p>\n<p>\\[ t = 0 + \\frac{30}{60} + \\frac{0}{3600} = 0.5 \\text{ h} \\]<\/p>\n<p>\\[ \\text{VAM} = \\frac{800}{0.5} = 1600 \\text{ m\/h} \\]<\/p>\n<p>\\[ 1600 \\text{ m\/h} \\div 0.3048 \\approx 5249 \\text{ ft\/h} \\]<\/p>\n<p><strong>Result:<\/strong> your VAM is 1600 m\/h (about 5249 ft\/h) \u2014 an elite amateur \/ professional climbing pace.<\/p>\n<p>\n\r\n<\/section>\n<h2>How to Use the Cycling VAM Calculator<\/h2>\n<ol>\n<li>Enter the <strong>Elevation gained<\/strong> \u2014 the total vertical ascent of your climb, taken from a GPS file, a ride app, or the sign at the summit.<\/li>\n<li>Choose the unit (m or ft) from the <strong>Unit<\/strong> dropdown next to the elevation field.<\/li>\n<li>Enter your <strong>Climbing time<\/strong> in the <strong>Hours<\/strong>, <strong>Minutes<\/strong> and <strong>Seconds<\/strong> fields. Include only the time spent actually climbing, not descents or flat sections.<\/li>\n<li>Read your <strong>Vertical ascent rate (VAM)<\/strong> in m\/h, the equivalent in ft\/h, and an interpretation of what that pace says about your climbing level.<\/li>\n<\/ol>\n<h2>What Is VAM in Cycling?<\/h2>\n<p>VAM stands for <em>velocit\u00e0 ascensionale media<\/em> \u2014 Italian for \"average ascent speed\". It is the vertical distance you climb per hour of riding, and it was popularised by Italian sports doctor Michele Ferrari as a way to compare climbing performances and, controversially, to estimate power-to-weight ratios of professional riders. Today it is one of the most common climbing metrics in training apps and race analysis.<\/p>\n<p>VAM is useful because it condenses a climb into a single number that is easy to compare across rides, regardless of the length of the ascent. A rider who gains 900 m in 45 minutes has a VAM of 1200 m\/h; another rider who gains 300 m in 15 minutes has the same VAM. This makes it a quick way to track climbing fitness over a season \u2014 as your climbing improves, your VAM on the same hill should rise.<\/p>\n<p>As a rough guide: 600\u2013900 m\/h is a moderate touring pace, 900\u20131200 m\/h is a fit recreational rider, 1200\u20131500 m\/h is a very good club cyclist, 1500\u20131800 m\/h is elite amateur to professional level, and above 1800 m\/h is world-class climbing specialist territory \u2014 the numbers Grand Tour winners produce on short, steep finales.<\/p>\n<h2>How to Interpret Your Result<\/h2>\n<p>The most important caveat about VAM is that it ignores horizontal distance, so it depends on gradient. The same rider producing the same power will record a higher VAM on a steeper climb, because more of that power goes into lifting the bike uphill rather than overcoming air resistance. Peak VAM values typically occur on gradients of roughly 6\u201310%.<\/p>\n<p>This means you should only compare VAM between climbs of similar steepness. A VAM of 1400 m\/h on a 9% wall is a stronger effort than 1400 m\/h on a 3% drag, where wind resistance eats a large share of your power. For a fuller picture, pair VAM with your heart rate or power data \u2014 for example, check your <a href=\"https:\/\/wpcalc.com\/en\/beauty\/heart-rate-recovery-calculator\/\">heart rate recovery<\/a> after hard climbs, or use the <a href=\"https:\/\/wpcalc.com\/en\/beauty\/cycling-ftp-power-zones-calculator\/\">Cycling Power Zones calculator<\/a> to see where your climbing effort sits relative to your FTP.<\/p>\n<h2>Tips, Assumptions and Limitations<\/h2>\n<ul>\n<li><strong>Count only the climbing.<\/strong> VAM assumes the whole effort is uphill. If your ride file mixes climbing with flat or descending sections, the average will be dragged down and lose meaning.<\/li>\n<li><strong>Use net, not gross, elevation.<\/strong> On rolling climbs, use the difference between the start and summit altitudes rather than the total of every little rise \u2014 GPS devices that sum all ascents will overstate VAM on undulating terrain.<\/li>\n<li><strong>Gradient matters.<\/strong> Compare VAM figures only between climbs of similar steepness; steeper slopes naturally produce higher VAM at the same power.<\/li>\n<li><strong>Body weight is hidden.<\/strong> VAM rewards a high power-to-weight ratio. Two riders with the same VAM may be producing very different absolute watts.<\/li>\n<li><strong>Hydration affects climbing performance.<\/strong> On long climbs in hot weather, fluid losses can cost you valuable vertical meters \u2014 the <a href=\"https:\/\/wpcalc.com\/en\/beauty\/sweat-rate-calculator\/\">Sweat Rate calculator<\/a> can help you plan your fluid intake, and the <a href=\"https:\/\/wpcalc.com\/en\/beauty\/caffeine-intake-calculator\/\">Caffeine Intake calculator<\/a> can guide pre-climb caffeine dosing.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Calculate your cycling VAM (vertical ascent rate) \u2014 the elevation you gain per hour of climbing. Enter the height gained and your climbing time to see how your climbing performance compares.<\/p>\n","protected":false},"author":3168,"featured_media":0,"comment_status":"open","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[2],"tags":[38],"class_list":["post-66388","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\/66388","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=66388"}],"version-history":[{"count":2,"href":"https:\/\/wpcalc.com\/en\/wp-json\/wp\/v2\/posts\/66388\/revisions"}],"predecessor-version":[{"id":67028,"href":"https:\/\/wpcalc.com\/en\/wp-json\/wp\/v2\/posts\/66388\/revisions\/67028"}],"wp:attachment":[{"href":"https:\/\/wpcalc.com\/en\/wp-json\/wp\/v2\/media?parent=66388"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wpcalc.com\/en\/wp-json\/wp\/v2\/categories?post=66388"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wpcalc.com\/en\/wp-json\/wp\/v2\/tags?post=66388"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}