Subscribe to Our Newsletter and Save 10 %

Physics and Simulation Methods

The Ride Simulator's speed, energy, and pacing predictions rest on a set of physical and physiological models. Understanding these models helps you interpret simulation results and make informed decisions when planning for a race.

How the Simulator Computes Speed

At each point along the course, the simulator finds the speed at which the rider's input power exactly balances the sum of all resistance powers:

$$P_{\text{input}} = P_{\text{roll}} + P_{\text{gravity}} + P_{\text{aero}} + P_{\text{kinetic}} + P_{\text{drivetrain}}$$

The course is traversed segment by segment; the speed profile is the sequence of these local equilibria. Wind, gradient, curvature and road surface enter on a per-segment basis.

Resistance Forces

The total power required to maintain a given speed is composed of several components:

Rolling Resistance

$$P_{\text{roll}} = v \cdot m \cdot g \cdot \cos(\theta) \cdot C_{rr,\text{eff}}$$

where $v$ is the speed, $m$ is the total mass (rider + bike), $g$ is gravitational acceleration, $\theta$ is the gradient angle, and $C_{rr,\text{eff}}$ is the effective rolling-resistance coefficient. The base value depends on tire type, tire pressure and road surface; values typically sit between professional race tires at the low end and standard tires at the high end of a range of roughly 0.002 to 0.008.

Surface-Dependent Adjustment of Rolling Resistance

Rolling resistance is not constant across a course — the road surface and its condition change. The simulator expresses this as a multiplier on the base value:

$$C_{rr,\text{eff}}(s) = C_{rr,0} \cdot k_{\text{surf}}(s)$$

where $s$ indexes the course segment and $k_{\text{surf}}(s)$ is a per-segment surface multiplier (typically $\geq 1$; values below 1 are possible). Clean, dry tarmac corresponds to $k_{\text{surf}} = 1$; wet pavement, gravel, cobbles and poor surfaces raise it. The multiplier is fixed per segment and enters the force balance on each segment. How surface conditions are entered is described on the Course and Weather page.

Gravitational Resistance

$$P_{\text{gravity}} = v \cdot m \cdot g \cdot \sin(\theta)$$

This term is positive uphill and requires additional power; downhill it becomes negative and gravity aids propulsion. On steep descents the gravitational contribution can exceed the total resistance, so speed rises even without pedalling.

Aerodynamic Drag

$$P_{\text{aero}} = \tfrac{1}{2} \cdot CdA \cdot f_{\text{yaw}} \cdot \rho \cdot |\vec{v}_{\text{apparent}}| \cdot v_{\text{forward}} \cdot v$$

The forward component of the relative airspeed accounts for drafting reduction and headwind:

$$v_{\text{forward}} = f_{\text{draft}} \cdot v + v_{\text{hw}}$$

where $f_{\text{draft}}$ is the drafting factor ($0 < f_{\text{draft}} \leq 1$, see below) and $v_{\text{hw}}$ is the headwind component. The magnitude of the apparent wind speed includes the crosswind contribution:

$$|\vec{v}_{\text{apparent}}| = \sqrt{v_{\text{forward}}^2 + v_{\text{cross}}^2}$$

$CdA$ is the drag area, $f_{\text{yaw}}$ is the yaw correction factor, $\rho$ is the air density and $v_{\text{cross}}$ is the crosswind component. Following Isvan (2015), only the in-line projection of the apparent-wind force contributes to drag, which leads to the operative form above as a product of apparent-wind magnitude and forward-relative airspeed. In still air ($v_{\text{hw}} = 0$, $v_{\text{cross}} = 0$, $f_{\text{draft}} = 1$) this reduces to the classic cubic relationship $P_{\text{aero}} = \tfrac{1}{2} \cdot CdA \cdot \rho \cdot v^3$ (Martin et al., 1998).

Kinetic Energy

$$P_{\text{kinetic}} = (m + m_{\text{wheel}}) \cdot v \cdot \frac{dv}{dt}$$

where $m_{\text{wheel}} = I_{\text{wheel}} / r^2$ is the effective wheel mass accounting for the moment of inertia $I_{\text{wheel}}$ and the wheel radius $r$. When the rider accelerates, additional power is needed to raise the translational and rotational kinetic energy of rider, bike and wheels; when the rider brakes or coasts on a descent, this term goes negative.

Drivetrain Losses

Drivetrain efficiency $\eta$ describes mechanical losses in the drivetrain (chain, gears, bearings). It is applied as a small constant efficiency factor characteristic of modern, well-maintained road drivetrains, used uniformly across the simulation:

$$P_{\text{available}} = P_{\text{input}} \cdot \eta$$

Air Density Modelling

Air density $\rho$ directly affects aerodynamic drag and is calculated from environmental conditions. The calculation is based on the equation of state for moist air as a mixture of dry air and water vapour (Picard et al., 2008):

$$\rho = \frac{p_d}{R_d \cdot T} + \frac{e}{R_v \cdot T}$$

where $p_d = p - e$ is the partial pressure of dry air, $e$ is the water-vapour pressure, $T$ is the temperature in Kelvin, $R_d = 287.05\;\text{J/(kg·K)}$ is the specific gas constant for dry air, and $R_v = 461.495\;\text{J/(kg·K)}$ is the specific gas constant for water vapour.

The saturation vapour pressure is computed using the August-Roche-Magnus formula (Alduchov & Eskridge, 1996):

$$e_s = 6.112 \cdot \exp\!\left(\frac{17.67 \cdot T_C}{T_C + 243.5}\right) \quad \text{[hPa]}$$

The actual water-vapour pressure is derived from the saturation pressure and relative humidity:

$$e = \frac{h}{100} \cdot e_s$$

where $h$ is the relative humidity in percent and $T_C$ is the temperature in Celsius. Warm, humid air at sea level has a lower density than cold, dry air at altitude — this can affect aerodynamic drag by several percent.

Wind and Yaw Angle

The simulator decomposes wind into headwind and crosswind components based on wind direction and direction of travel. The effective yaw angle affects the rider's CdA:

  • At pure headwind (0° yaw), the standard CdA applies.
  • As the yaw angle increases, the effective CdA rises due to the larger frontal area presented to the wind.
  • The relationship between yaw angle and CdA is informed by the model of Osman et al. (2015).

The yaw correction factor takes the form:

$$f_{\text{yaw}} = \cos^2(\psi) + \mu \cdot \sin^2(\psi)$$

where $\psi$ is the yaw angle and $\mu$ is an empirically calibrated coefficient slightly greater than unity, reflecting the increase of effective frontal area at oblique flow. At $\psi = 0$ (pure headwind), $f_{\text{yaw}} = 1$; as the wind angle increases, the factor rises.

Adaptive Aerodynamics

The simulator automatically adjusts riding position to course conditions. Under the simultaneous combination of a steep gradient and low speed, the rider sits up (higher effective CdA); on flat sections and descents, an aerodynamic position is assumed (lower effective CdA). The transition is shaped to be smooth, so the upright contribution is negligible on flats and at typical riding speeds and saturates only under sustained climbing. How strong the effect is depends on the bike type's baseline CdA — time-trial bikes show a larger sit-up effect than already-upright road positions.

Cornering Speed Limit

On curved course segments, the maximum speed is limited by the curve radius and the maximum allowable lean angle of the bicycle:

$$v_{\text{max}} = \sqrt{\frac{g \cdot \tan(\varphi_{\text{max}})}{\kappa}}$$

where $\varphi_{\text{max}}$ is the maximum lean angle of the bicycle and $\kappa$ is the course curvature ($1/r$, the inverse of the curve radius). If the computed speed exceeds this limit, it is capped at $v_{\text{max}}$.

Drafting Models

Single Rider: Blocken et al. (2013)

For riding behind a single rider, the simulator describes the velocity deficit in the wake by an exponential decay with distance:

$$d_{\text{max}}(x) = A \cdot e^{-k \cdot x}$$

where $x$ is the gap to the leading rider; the constants $A$ and $k$ are calibrated against the wind-tunnel and CFD data of Blocken et al. (2013). The benefit decays exponentially with distance and is essentially gone within a few tens of metres.

Peloton: Gaul and Thomson (2018)

For group riding, the simulator uses an exponential model that describes the effective drag coefficient as a function of position within the peloton:

$$C_{d,\text{eff}}(n) = C_{d,\text{min}} + (C_{d,\text{max}} - C_{d,\text{min}}) \cdot e^{-\lambda \cdot n}$$

where $n$ is the position in the peloton. $C_{d,\text{max}}$ approaches the solo value (position 1 — at the front), $C_{d,\text{min}}$ is the deeply-sheltered limit attained in the middle of the pack, and $\lambda$ controls how quickly shelter saturates with depth. Riders at the front experience essentially no drafting benefit; deep in the field the effective air resistance can fall to a few percent of the solo value (roughly a 90% reduction or more).

Metabolic Energy Model

The simulator models energy metabolism through the interaction of VO2max and VLamax. The metabolic model determines, at each intensity, how much energy comes from fat versus carbohydrate oxidation.

  • At low intensity, fat oxidation dominates.
  • As intensity increases, the carbohydrate contribution rises disproportionately.
  • The crossover region is determined individually by VO2max and VLamax.

How carbohydrates ingested during the ride are accounted for along the course — split into an unprocessed, a processed, and an endogenous-store pool, and limited by a per-rider absorption ceiling — is described on the Nutrition and Hydration Planning page.

Anaerobic Capacity (W′ Balance)

W′ denotes the finite amount of work a rider can produce above their threshold power before that capacity is exhausted. The simulator tracks how W′ depletes when the rider rides above threshold and how it recovers when they drop below.

Above threshold, W′ decreases linearly with the suprathreshold power:

$$\frac{dW'}{dt} = -(P - P_{\text{th}}) \quad \text{for } P > P_{\text{th}}$$

Below threshold, W′ recovers exponentially toward the full capacity $W'_0$:

$$\frac{dW'}{dt} = \frac{W'_0 - W'}{\tau(P)}$$

The recovery time constant $\tau$ shortens the further below threshold the current power lies. This is consistent with the well-known observation that active recovery slightly above easy spinning is more effective than complete rest (cf. Skiba/Morton-style two-parameter critical-power models).

If W′ reaches zero, the report flags this as exhausted anaerobic capacity. The simulator does not artificially cap power — W′ remains an interpretive metric, not a constraint.

Caffeine Kinetics

Caffeine taken in during the ride is absorbed into the bloodstream and then gradually cleared. The simulator describes this process with a standard one-compartment first-order pharmacokinetic model — the same framework used throughout the sports-nutrition literature:

$$\frac{dL}{dt} = R(t) - k \cdot L$$

$L$ is the in-body caffeine load, $R(t)$ is the instantaneous intake rate derived from the nutrition plan, and $k$ is the first-order elimination rate constant, corresponding to a half-life on the order of several hours and varying between individuals. In parallel to the decaying in-body concentration, the simulator keeps a cumulative dose tally; from this it derives the per-bodyweight dose (mg/kg) reported in the analysis.

Caffeine is tracked as a metric — load, cumulative dose, and dose per kilogram of body weight. The simulator does not derive a performance multiplier from it: the metric is meant for planning, for instance to stay within the dose ranges commonly cited in the literature, not as a simulated performance bonus. Where caffeine intake is entered in the nutrition editor is described on the Nutrition and Hydration Planning page.

References

  • Alduchov, O. A. & Eskridge, R. E. (1996). Improved Magnus Form Approximation of Saturation Vapor Pressure. Journal of Applied Meteorology, 35(4), 601–609.
  • Blocken, B., Defraeye, T., Koninckx, E., Carmeliet, J., & Hespel, P. (2013). CFD simulations of the aerodynamic drag of two drafting cyclists. Computers & Fluids, 71, 435–445.
  • Gaul, L., & Thomson, S. (2018). Aerodynamic drag in cycling pelotons: New insights by CFD simulation and wind tunnel testing. Journal of Wind Engineering and Industrial Aerodynamics.
  • Graham, T. E. (2001). Caffeine and exercise: metabolism, endurance and performance. Sports Medicine, 31(11), 785–807.
  • Isvan, O. (2015). Wind speed, wind yaw and the aerodynamic drag acting on a bicycle and rider. Journal of Science and Cycling, 4(1), 42–50.
  • Jeukendrup, A. E. (2014). A step towards personalized sports nutrition: carbohydrate intake during exercise. Sports Medicine, 44(S1), 25–33.
  • Martin, J. C., Milliken, D. L., Cobb, J. E., McFadden, K. L., & Coggan, A. R. (1998). Validation of a Mathematical Model for Road Cycling Power. Journal of Applied Biomechanics, 14(3), 276–291.
  • Osman, S. A.-H., Iacovides, H., & Wen, Z. (2015). Drag of a cyclist at varying yaw angles. Procedia Engineering, 112, 522–527.
  • Picard, A., Davis, R. S., Gläser, M., & Fujii, K. (2008). Revised formula for the density of moist air (CIPM-2007). Metrologia, 45(2), 149–155.
  • Sawka, M. N., et al. (2007). Exercise and Fluid Replacement (ACSM Position Stand). Medicine & Science in Sports & Exercise, 39(2), 377–390.
  • Skiba, P. F., Chidnok, W., Vanhatalo, A., & Jones, A. M. (2012). Modeling the expenditure and recovery of anaerobic work capacity above critical power. Medicine & Science in Sports & Exercise, 44(8), 1526–1532.