Watt Matters is a blog about training and racing with power and other related musings.

Aside from writing items here on occasions, I also provide cycling performance improvement services via coaching, aerodynamics testing and host a cycling tour.

If you'd like to ask me a question or suggest a topic you'd like my take on, then just head to Ask Alex and let me know!

Optimising Time Trial Pacing

Optimising Time Trial Pacing

This is a reproduction of a discussion paper I wrote in June 2008. It never made it onto my blog for some reason, so thought I’d add it for posterity and ease of reference for anyone wanting to read it.

For those with a little memory of my history around then, it was written while I was at home rehabilitating from my amputation. I had some time on my hands (and remaining foot) and so started a bit of mental tinkering as a way to get my brain back into gear and constructively answer some questions about pacing during longer endurance cycling events. This was the result. It’s not a scientific paper, just a bit of fun on my part.

Of course since then others have picked up the ball to commercialise the use of pacing optimisations models, most notably Best Bike Split.

This model developed uses a similar basic approach a few others had previously used to achieve a balance between the impact of varying power output on physics of cycling as well as account for the physiological constraints of varying power, namely use of a global Normalized Power or Training Stress Score constraint, along with a mean maximal power limitation. e.g. as originally suggested by Andy Coggan, and others such as Rick Ashburn, DJ Connel come to mind as having build models.

To the best of my knowledge though, as yet no one has incorporated the post hoc analysis methodology described herein which makes use of the principles of Robert Chung’s Virtual Elevation modelling to account for real world variations in resistance variables as actually experienced by the rider and using those real world variances when assessing alternative pacing strategies.



It is well established that pacing strategy is an important element to consider when time trial performance is examined. 1 Having the highest sustainable aerobic power to CdA ratio 2 and/or power to weight ratio, while a significant determinant of performance potential in events of more than a few minutes in duration, is in itself insufficient to ensure success 3 in time trial events.

If a rider executes a less than optimal pacing strategy (whether by choice or otherwise), they risk adding substantial time to their ride. Conversely, a faster overall ride can be achieved through optimal pacing. Given such time trial events are often decided by mere handfuls of seconds 4 , execution of pacing strategy also potentially determines places on a podium.

However, knowing what pacing is optimal is not a simple task. Real world events are conducted on roads with variable terrain, road and weather conditions. Then there is also each rider’s unique physiological and biomechanical profile to consider.

In the end, some riders are looking for practical guidance as to how hard to ride (as defined by wattage output) on parts of a course with variable conditions, such as ascending at a certain gradient, or riding with a tailwind.

Accordingly, some cycling coaches, sports scientists and other enthusiasts have developed models to determine a recommended optimal pacing strategy for athletes.

These optimisation models typically break a ride down into various component segments (either by time or distance) and define an appropriate pacing guideline (wattage level) to be targeted during each segment. The segments are nominally designed to describe conditions that that typically change within a ride, such as gradient and wind speed, as well as account for those variables that remain constant 5 throughout the ride, such as air density or a rider’s mass.

The author has developed such an optimisation model which utilises a number of key components and is used herein to further the discussion. While the efficacy of the model is yet to be fully tested, it has been “vetted” by others with considerable knowledge with such applications as well as tested against actual power meter data from time trial events (the real test).

There has been debate within the power meter-using time-trialling community as to methods to quantify how well a rider actually paced his or her time trial.

This paper attempts to discuss the issue some more, and introduces both a methodology to quantify pacing optimisation and a new metric – the Pacing Optimisation Index (POI).


Current Methods of Defining Optimal Pacing

Clearly the best measure of performance is performance itself 6 . But could that performance have been improved further through better pacing? Or was the pacing already optimal? If not, then by how much?

Successful time trial riders are generally very good at self-pacing to gain the maximum performance from their available sustainable power 7 . Others are generally not so well attuned, and in particular those who are newer to time trialling, only do so occasionally or are uncertain of the best approach for an as yet unseen course. This is especially highlighted through investigation of the data available from on-bike power meters 8.

But as far as the author is aware, there is no quantifiable measure as to how well a ride was paced. For the winner, the answer was obviously “well enough to win”. Nevertheless, if there is some method to ascribe a pacing optimisation score or value, then it could provide a feedback mechanism for athletes and coaches alike. Indeed a quantifiable measure is always a step above a qualitative understanding.

In recent discussions on forums that specialise in the use and application of power meters and power meter data in racing and training, this issue has been debated vigorously (although in some instances some may not have realised the topic being debated).

Some have suggested using the ratio of Normalised Power to Average Power (NP:AP) as one method of quantifying how well a rider optimised their pacing. The NP:AP ratio is alternatively known as the Variability Index (VI). There is data, anecdotal or otherwise, based on power meter files for Triathlon and Ironman bike legs from those who were successful in their races, to suggest relatively low VIs (1.01-1.05) are considered “optimal” for many of the courses encountered in Triathlon and Ironman racing 9.

However, some people (including the author) don't consider VI to be a good a guide for pacing advice in all circumstances where such advice may also be utilised – e.g. in other events like time trials over difficult short loop circuits 10, cyclo-sportives, other time trial type courses or in the world of MTB where courses can be particularly variable.

VI is an outcome of applying a pacing strategy but is not necessarily a good guide as to whether a strategy was optimally executed.

Nevertheless, let’s put aside the differences in opinion over how to use and/or interpret VI with respect to pacing.

So instead of continuing the “argument”, let’s consider how one could provide an alternative measure that perhaps has more utility than VI as a guide to how pacing, as actually executed, stacks up against the theoretical optimal pacing strategy for a given course, environmental conditions and a rider’s physiological and biomechanical profile.


Case Study 1: A Typical Non-flat Time Trial (24km)

Below is a chart of a power meter file from a popular local out and back 24.1km TT course (Calga/Peats Ridge), showing variations in power (yellow) and speed (blue):

The file is from a club level rider coached by the author. The rider is seeking to improve his time trialling in the lead up to some championship events.

So how well did he pace?

Listed below are the key numbers from the power meter file for this ride:

Distance: 24.18 km
Duration (mm:ss): 39:51
Average Speed: 36.4 km/h
Average Power: 275 watts
Normalised Power: 279 watts
NP:AP ratio (VI): 1.02


The Optimisation Model

The author has developed a prototype optimisation model incorporating the following elements:

  • The use of a ride segmentation approach, with segments defined by three variables; distance, average gradient and wind velocity11

  • The use of a global constraint on the power the rider can sustain for the expected duration of the event, in this case the use of mean maximal Normalised Power12 for a given expected ride duration

  • The use of local constraints on power the rider can sustain for the duration of any given segment(s)

Other global physiological and biomechanical constraints, such as mass, CdA, Crr13, environmental conditions (e.g. temperature) and drive train efficiency that are considered constant for the modelled ride

The use of a mathematical model describing the equations of motion for a cyclist14

Other “practical” constraints based on experience and knowledge of the rider and/or course, such as pacing on steep descents being more likely to result in coasting (zero power) than a suggested optimal (albeit low) power, or consideration of special conditions just as the lead into Triathlon transition to the running leg of the event.

One other note – this discussion presumes that an “iso-strain” effort is still considered an optimal base point, which differs from an iso-power effort simply due to physics involved in riding a bike, as even in the most benign conditions, power output varies. There have been some studies on this by researchers such as Carl Foster.

Step 1 - A course elevation profile is required

In order to “run” the segmented optimisation model, an elevation profile is required. Thankfully, due to technology now available (e.g. on-bike GPS mapping units, course profile mapping software, Google Earth), on bike power meters that measure and record elevation (e.g. Polar / ergomo / SRM PCVI) or power meter file analysis methods (such as that developed by Dr Robert Chung), detailed course profile data is often available or can be obtained.

Below is the elevation profile for the Time Trial in question. The out and back nature of the course is clearly shown.

Step 2 – Course Segmentation

One of the issues in designing a model to determine optimal pacing strategy is deciding what constitutes a sensible length for course segments. There are two primary considerations:

  • They need to be long enough so that a rider can interpret and apply the pacing guidelines

  • They need to be short enough so that the optimisation model can work effectively on the changes in course profile

As we can see from the variable elevation profile of the Calga course shown above, that’s not always an easy set of decisions to make.

So let us consider the case of micro-segmenting a course and forget about using the output of the modelling as a practical pacing guide (although it is not as bad as one might think – we’ll get back to that later).

Distance based segmentation is considered a better solution for the model, since the optimal segment pacing recommendations are then based on an actual segment of the course (hills don’t move!), rather than an anticipated arrival time. However, distance based segments do not need to be even in length.

There are three suggested methods for segmenting, and one or a combination can be used:

  • Manually choosing segments based on a visual inspection of the elevation profile

  • Segmenting into even length segments

  • Segmenting into even duration segments, which creates distance based segments of varying lengths

Indeed, it may be advantageous to increase segment resolution on part of a course with a more variable gradient profile than on parts which are an essentially steady gradient.

Step 3 – Choose Segment Resolution

This then leads us to consider segment resolution.

The lowest level of segment resolution comprises one segment bounded by the start and end points.

Maximal practical segment resolution is determined by:

  • the data recording rate of the power meter used, typically in the order of one second or approximately five to 20 metres in length depending on the rider’s speed,

  • the resolution of the course profile data, and

  • the computing power available to solve the optimisation problem.

Hence a model could easily comprise many thousands of individual segments.

Since the model created by the author operates within Microsoft Excel 2007 and uses its in-built Solver utility, then segment resolution is primarily dictated by the capacity of the software and hardware used. The author has successfully run models of up to 200 segments15.

In this Case Study, the Calga TT course has been divided into segments of equal duration with a resolution of 40 seconds (giving us 60 individual segments).

So we now have a course with 60 x 40-second long segments, each with distance (variable depending on average speed for the segment), average gradient and average power.

Just to re-emphasise, this exercise is not intended to provide a guide for pacing but rather as an investigation into what happens when we micro-segment courses and whether we can measure how close a rider came to riding a theoretically optimal pacing strategy.

Step 4 –Segment the rider’s Actual Power output and input these into the model

Firstly, we segment the actual power file of the ride based on the chosen segmentation approach. In this example, this is what we get:

When overlaid with the actual power meter file (with a rolling 30-second average applied), we can see how the segments match.

These segmented power values are then entered into the model along with the segment gradient and distance information.

Where wind velocities per segment are known, then these or best estimates, are entered as well. I will discuss later a methodology of dealing with wind and other variables such as changing road surfaces and varying environmental conditions.

Step 5 – Adjust Global Variables

The global variables in the model are then adjusted so that the calculated ride duration matches the rider’s actual ride duration. These same global variables will then be used for the optimisation model.

The global variables available to adjust include:

  • Air density

  • Drive train efficiency

  • Total mass of bike and rider

  • CdA

  • Crr

Of these, air density can be calculated from the known temperature, air pressure, humidity and elevation.

Drive train efficiency can be adjusted depending on the power meter used. For example Powertap data use 100%. For SRM and ergomo, typically use 97%-98%, since these report power “upstream” of the drive train.

Total mass should be relatively straightforward.

This leaves CdA and Crr as the remaining variables to adjust. It helps if a rider’s CdA is already well established, and then the only global variable to consider adjusting is Crr – which will be an average for the ride.

If CdA and Crr are not known, then there are methods for determining good estimates of these values from the power meter file data and known course profile/elevation data.

Indeed, as I shall allude to later, the use of these techniques allows for the modelling to account for minor variations encountered en route (weather changes, road surface and so on).

Step 6 – Run the Model using the same Global Variables

Now, taking this segmented course profile (with segmented distance, gradient and wind velocity if known) and using this rider’s mean maximal Normalised Power from his actual power file as a global pacing constraint, the pacing optimiser model generates a theoretical optimal wattage per segment as follows16 :

This results in optimised ride duration of 39:26, or a saving of 25 seconds over the actual ride duration of 39:51.

Taking the elevation profile and combining it with the optimal power per segment data but now charted on the basis of distance, we get the following plot:

If we look at the same data set using an alternative view of the course profile, it looks like this:

Now while this jumble of numbers could never be sensibly considered as helpful advice for anyone to pace by, there is actually a bit more gold to be mined in the above chart than first meets the eye. But that is for another discussion.

Step 7 – Compare the model outcome to what actually happened

OK, so now we have an optimal pacing strategy devised using a micro-segment approach. Of course micro-segmenting can be done at an even greater level of resolution but in this case a 40-second segment was considered to be a reasonable choice.17

So, let’s now look at the optimal modelled power pacing (square wave green line) vs the rider’s actual power file with 30-second smoothing applied (yellow line):

OK, not bad but eyeballing still doesn’t give us a quantifiable measure of how well this rider paced himself.

So what happens if we compare the rider’s segmented ride power data (as shown in Step 4) with the segment power suggested by the optimiser model?

Overlaying the optimal segment power pacing on that of the actual segment pacing, we get the following chart, showing what power the rider averaged per segment (in yellow) vs. an optimal paced power per segment (in green):

This can be shown as a difference or variance from optimal to actual. Which, when charted, looks like the following:

When the blue line is above the red line, it means the rider was riding above the optimal power level for that segment by the power level indicated on the vertical axis. Similarly, when the blue line is below the red line, the rider was below the optimal power level for that segment.

Looking at the average power variances on a segment by segment basis, we can see at times he was on the money, and at others times he diverged somewhat. For example, we can see that his pacing at the start was a little too hard and that he had some gas left in the tank for the latter stages.

What then if we then plot these variances from optimal power against the course elevation profile?

This now becomes a useful visual aid to pinpoint where on a course a rider can improve their pacing. In this case, the rider started too hard in the opening kilometres, fell below optimal power on the outward ascending leg, and then was over optimal power on the return leg. These represent net additions to ride duration, since gains made on the descending sections don’t make up for losses on the ascending sections. The chart also shows a pattern whereby the rider doesn’t attack the steeper portions of the ride quite hard enough. Finally, the ability to go significantly over optimal power in the finale, suggests opportunities to gain time were possibly left behind.


The Pacing Optimisation Index (POI)

So let’s consider two metrics that directly quantify the potential time savings, and which would translate well for any rider looking to understand the size of the opportunity for improvement through improved pacing.

Let's define the following:

i. Potential Time Saved: T

p = T a

  • T o

T p = potential time saved by riding a optimal pacing strategy

T a = the time actually taken to ride the course

T o = optimal time for the same rider/course/conditions

Note: It is to be expected that T o ≤ T a 18

ii. Pacing Optimisation Index: POI = To ÷ Ta

This is simply an expression of the optimised ride duration as a proportion of the actual ride duration.

For this case study:

T a = 39:51 (2,391 seconds)

T o = 39:26 (2,366 seconds)

T p = 25 seconds

POI = 0.9895

So, a rider can quantify the potential saving by improving their pacing, either in absolute terms (Tp expressed in seconds) or in relative terms (the POI).


Case Study 2: World Hour Record Attempt

In February 2008, a club mate of the author attempted to set a new World Master’s Hour Record 19 . Unfortunately, the pacing of the attempt was sub-optimal (the rider went out too hard and faded badly) and consequently the hour record was not broken. Since the optimal pacing for an attempt on the hour record is iso-power at a rider’s mean maximal power for the duration 20, then examining variance from this simple optimal pacing strategy is not difficult.

Shown below is the rider’s actual power plot overlaid on the optimal pacing line, showing the distance gap between distance ridden and the potential distance with optimal pacing.

The resulting analysis shows:

Tp = 122 seconds

POI = 0.9661

Of course, since a rider wouldn’t stop riding 122 seconds early in an attempt on the hour record, then that can be translated to the additional distance a rider could potentially ride by multiplying the time gap by average speed.

Additional Distance = 122 seconds x 12.86 metres / second = 1.57km

The unfortunate outcome of the analysis is that had pacing been closer to optimal, the record would have been well and truly beaten.


Other Case Studies

In order to explore additional case studies, the author sought the assistance of members of Google group’s wattage forum 21 by asking them to send power meter from timed cycling events. Below is a summary of the analysis of many of those files, ranging from an 8km prologue TT to a 180km Ironman bike leg.


Case studies 6 & 9 were eventually discarded as power meter data did not match provided elevation profile. Further analysis was not considered necessary at this stage given other sample data available

Case study 18 was discarded as it did not meet key criteria (i.e. a ride attempting to minimise ride duration)

Below is a chart of POI vs Tp values (expressed as a percentage of optimal ride time). The quasi linear relationship is to be expected since POI is all but the inverse of the ratio of potential time saving. It is shown this way simply to highlight where various rides ranked in terms of optimised pacing.

Some comments on the case studies in the above chart:

  • There was a natural tendency for volunteers to supply files from their better time trials.

  • Additional samples from less well paced time trials would be welcome.

  • Included in the crowded group at the top left of the chart are three TT wins:

  • Case Study 3: State Championship ITT (rider notes validated the detailed graphical analysis from the model),

  • Case Study 4: Sommer Valley ITT (completed in course record time), and

  • Case Study 7: Pinotto’s 2008 Giro ITT win.

  • At the bottom right is case Study 11 (Cheltenham TT) where conditions made for difficult handling and this is partially reflected in the result. Rider also commented this was an example of poorer pacing on his behalf.

  • Case Studies 13 & 14 are from the same ride. Case Study 13 is the whole ride, including the last third of the race run with a flat front tyre. Case Study 14 examines the first two thirds of the race only.

  • Case Studies 8 and 19 required a segment resolution greater than the 40 seconds used for all other analyses.

Examination of the case studies and resulting POI values suggests that:

POI = 1.00 is considered optimal pacing.

POI > 0.99 is considered excellent pacing. Some fine tuning may be considered.

POI > 0.97 is considered OK to good pacing. Pacing improvement is definitely possible.

POI < 0.97 would indicate substantial improvement in pacing is attainable and pacing skills should become a focus within a rider’s development plan.


Pacing Optimisation vs Variability Index

Examining the Variability Index (Ratio of Normalised Power to Average Power) shows that of the 17 rides examined above, there were:

  • 11 instances where the optimal pacing produced a VI lower than actually ridden

  • 4 instances where the optimal pacing produced a VI higher than actually ridden

  • 2 instances where the optimal pacing produced a VI the same as actually ridden

Which suggests that while well paced rides often have low VI ratios, a low VI does not necessarily mean it was optimally paced.


Limitations of the Model and Approach

There are of course limitations to the approach and of the model used. These include, inter alia, the following:

The variable nature of conditions encountered during such events

Whenever possible, these variations are taken into account in the modelling. For example, some variables are considered to be “global”, i.e. they don’t vary during an event, when in fact this may not be the case. Examples might be temperature variations or altitude impacting on air density, or road surface conditions that vary from rough to smooth. Indeed a rider changing position on the bike or cross winds of varying directions may alter his or her CdA.

It is possible to move these from being considered global variables into individual segment variables. But there is another method that can be used when these variations are subtle or not consistent.

Through the use of “virtual elevation” modelling22 it is possible to take into account the impacts of these variations within each segment. In essence, this method creates a virtual elevation profile (from the power meter data) which is matched to a known elevation profile. Providing that the virtual profile and actual profile match closely, then variations in the virtual profile from actual represent localised variations in the effort (power) required to be applied to overcome the various resistance forces acting on a rider. While these variations are expressed in terms of a revised segment gradient, they may in fact be due to changes in the road surface, slight wind variances, changes in temperature and so on.

This technique is quite a sound method of managing localised variations in global variables and to some extent even minor wind variations per segment. However, when the virtual and actual profiles do not match well, then it is possible the optimisation model will not provide sound results.

Segment resolution

Segment resolution also creates some issues, especially when comparing what a rider actually did versus what a model recommends. Careful consideration of segment resolution versus practical model consideration is required. Resolution of course profile data is also an issue to consider, although in many circumstances, it can be mitigated through the use of virtual elevation profiling described above.

Where rides are of a long duration and cover laps of a circuit, it is possible to break the ride into separate laps and analyse each independently, with the resulting sum of lap Tp values adding to a total Tp and hence an overall POI value.

The Normalised Power algorithm

The Normalised Power algorithm used in the model was a slightly modified one, since producing a second by second “virtual power file” to correctly calculate it was not considered necessary, or practical given the computing resources used. However the challenge of accurately calculating Normalised Power when dealing with relatively short duration segments requires a novel approach (especially when considering the transitions from one variable duration segment power level to another). In this model, Normalised Power is calculated using the standard 30-second rolling average process but segments step in five second increments. These are considered to be minor rounding error issues only.

Alignment of the distance measured by power meter to the course profile chosen

Any variations between the two sets of numbers could show up as modelled data being out of phase with actual data. Examples of this were evident in some of the sample data provided to the author, for example GPS data that provides latitude and longitude for two points along the course that cuts the corner and does not truly represent the course actually ridden. Of course, an incorrectly calibrated power meter would also show up as inconsistencies. In most instances, these variations can be detected though the comparison with virtual elevation profile.

The technical nature of some courses

Some courses are more technical than others to ride, with tricky descents and/or tight corners. Skill level has not been considered as a factor in the modelling and as such, courses where bike handling skills represents a substantial element may not necessarily be appropriate for this approach.



In this discussion paper, an attempt has been made to explain a method to quantify answers to the questions:

  • How well did a rider pace a time trial?
  • What additional time could have been saved through better pacing?

Current methods known to the author were highlighted (actual performance and the NP:AP ratio, aka Variability Index). Limitations with each of these measures were discussed along with methodologies used to mitigate their impact.

Two new metrics were introduced to provide quantifiable values for how well a rider executed against an optimal pacing strategy:

  • Potential Time Saved (T p ), and
  • Pacing Optimisation Index (POI)

Two case studies were considered, the first being a road time trial by a club rider, another an attempt at the World Masters Hour Record. The first case study was used as a means to explain the methodology used to arrive at T p and POI values as well as display a variety of visual feedback aids resulting from the model.

The use of a pacing optimisation model does assume that such pacing recommendations are indeed optimal. The strength of basic principles used in the model, along with the validation of the model when compared with actual ride data would suggest this is a valid assumption.

Coaches and athletes may well be able to use the T p and POI metrics, along with the accompanying charts, as a feedback mechanism to assess opportunities where the rider could improve his or her pacing.

The initial analysis of actual ride data from the cases studies cited (time trial rides ranging from 8km to 180km) suggests that a:

o POI = 1.00 is considered optimal pacing.

o POI > 0.99 is considered excellent pacing. Some fine tuning may be considered.

o POI > 0.97 is considered OK to good pacing. Pacing improvement is definitely possible.

o POI < 0.97 would indicate substantial improvement in pacing is attainable and pacing and should become a focus within a rider’s development plan.



Thank you to:

  • members of the Google wattage group (and some of my clients)that provided sample data files for analysis

  • Dr Andrew Coggan for reviewing my initial thoughts and drafts

  • All the people responsible for the materials referenced herein

  • Sir Isaac Newton, whose solution techniques were used in the development of the model. He did have a brain the size of a planet!





[2] Coefficient of Drag x Frontal Area of Bike + Rider – used to determine the impact of wind resistance on a rider.


[3] Success as defined by attaining the fastest time possible for the event on that day


[4] or in the case of track events such as pursuits, less than a second


[5] Some of these “global” variables may indeed gradually change over time, although far less so than for elements such as gradient and wind.


[6] A derivation of a quote by Dr Andrew Coggan “The best predictor of performance is performance itself”



[8] The all too often tale of “s/he went out too hard and faded” is often cited by many as a common pacing mistake


[9] The “field of play” as thought of by those seeking to provide practical guidance on pacing to the masses in the world of Triathlon racing


[10] yes, they exist, maybe not in the world of Tri/IM but they exist


[11] Wind direction is indicated by a positive or negative value relative to the direction the rider is travelling. For simplicity, yaw values are not considered in the model, rather a wind vector component in the direction of the rider is all that is considered. If wind yaw angles impact CdA, then that should be accounted for in the CdA value chosen for the model.


[12] It is assumed the reader already understands the concept and application of Normalised Power, however for more information, refer this web address: http://www.cyclingpeakssoftware.com/power411/defined.asp


[13] Coefficient of Rolling Resistance – used to determine the resistance forces from overcoming friction between road and tyre



[15] Although at 200 segments, processing time required on a standard home PC is several hours. At 100 segments, processing time is ~20-30 minutes.


[16] Which assumes that the Normalised Power actually obtained is the maximal value a rider was actually capable of on the day.


[17] Micro-segmenting does present some issues with the application of the normalised power (NP) algorithm and a slightly modified version of the algorithm is required. In the case of the model developed for this discussion, NP is managed to a resolution of 5-second increments and 40-seconds is considered the finest level of segment resolution for calculations to maintain the integrity of NP.


[18] If this is not the case, then it is likely the assumptions used in the model are not representative of the ride


[19] Further details on the story can be found here: http://alex-cycle.blogspot.com/2008/02/hour-of-power.html


[20] Otherwise known as Functional Threshold Power. Record attempted in an indoor 250m velodrome.



HIIT me with your rhythm stick

HIIT me with your rhythm stick

Alpe d'Huez: TDF Fastest Ascent Times 1982-2018

Alpe d'Huez: TDF Fastest Ascent Times 1982-2018