Purpose
Estimate the steady-state rider power at the pedals
required to hold a given speed at a given slope and wind. The model
accounts for gravity, rolling resistance, aerodynamic drag, and
drivetrain loss.
It assumes no acceleration, no drafting, no cornering or braking losses,
and that any wind is purely a headwind or tailwind.
Inputs
| Input |
Meaning |
Units |
| Rider weight |
Body weight |
lb |
| Bike + gear weight |
Bike plus bottles, tools, clothing, etc. |
lb |
| Speed |
Ground speed |
mph |
| Slope |
Road grade (rise / run) |
% |
| Wind |
Positive = headwind, negative = tailwind |
mph |
| Elevation |
Above sea level; thinner air higher up |
ft |
| Temperature |
Local air temperature; cold air is denser |
°F |
| Cycling fitness |
Rough proxy for the rider's metabolic efficiency |
— |
Dropdown assumptions
Riding position → CdA (m²)
| Upright / casual |
0.55 |
| Hoods (relaxed) |
0.45 |
| Hoods (moderate) |
0.40 |
| Drops |
0.34 |
| Aero bars / TT |
0.26 |
Surface / tire → Crr
| Smooth pavement / road bike |
0.0045 |
| Average pavement / road bike |
0.0055 |
| Rough pavement |
0.0070 |
| Gravel |
0.0120 |
These values bundle a typical road tire at a sensible pressure for the
surface. Real-world rolling resistance also depends on tire width and
pressure, and the relationship is surface-coupled: an over-pumped tire on
rough chipseal can roll worse than a softer one because energy
is wasted bouncing rather than rolling. A future version may model tire
pressure, width, and surface together.
Air density ρ (kg/m³)
Computed from the entered elevation and temperature using the
International Standard Atmosphere pressure profile and the ideal-gas law:
P = 101325 · (1 − 0.0065 · h / 288.15)5.2561
ρ = P / (287.058 · T)
h is elevation in metres and T is the local air
temperature in kelvins. Roughly: every 1000 ft of elevation thins the air
by ~3%, and every 20 °F drop in temperature thickens it by ~4%. Humidity
also shifts density — humid air is slightly less dense than dry air,
since water molecules are lighter than the nitrogen and oxygen they
displace — but the effect is ~1% in typical conditions and not modeled
here.
Drivetrain efficiency η
| Very efficient |
0.98 |
| Typical clean drivetrain |
0.975 |
| Slightly less efficient |
0.97 |
| Dirty / less efficient |
0.96 |
Cycling fitness → metabolic efficiency e
| Untrained |
0.20 |
| Recreational |
0.22 |
| Trained |
0.24 |
| Elite |
0.26 |
Gross cycling efficiency varies with intensity, cadence, riding position,
and how it's measured, so these four buckets are a rough proxy rather
than a rider taxonomy. Pick the one that best matches your
cycling-specific aerobic conditioning.
Constants
g |
Gravitational acceleration |
9.80665 m/s² |
| lb → kg |
Pounds to kilograms |
0.45359237 |
| mph → m/s |
Miles/hour to meters/second |
0.44704 |
Unit conversions
m = (rider_lb + gear_lb) × 0.45359237
vground = speed_mph × 0.44704
vwind = wind_mph × 0.44704
vair = max(0, vground + vwind)
The slope angle is recovered exactly from the entered grade:
θ = atan(grade_percent / 100)
An n% grade means n units of rise per 100 of run, so
grade = tan(θ). Computing the angle once via atan keeps the
formulas exact at any slope.
Power components
Total power required at the wheel is the sum of three terms; rider pedal
power is wheel power plus drivetrain loss.
1. Gravity
Pgravity = m · g · sin(θ) · vground
Positive on a climb, negative on a descent.
2. Rolling resistance
Prolling = m · g · cos(θ) · vground · Crr
The cos(θ) factor is the share of the rider's weight pressing the tire
onto the road. On a steep slope, more of the weight points along the
slope rather than into it, so the tire deforms a little less and rolling
resistance drops slightly.
3. Aerodynamic drag
Paero = ½ · ρ · CdA · vair2 · vground
Drag force grows with the square of apparent wind speed, but the
rider only does mechanical work at ground speed, so the power
expression is vair2 · vground, not vair3. With no wind those are identical; with wind, using vair3 would over-charge a headwind and under-credit a tailwind.
This term grows quickly with speed and is usually the dominant one on
flat ground.
4. Wheel power and pedal power
Pwheel = Pgravity + Prolling + Paero
Ppedal = Pwheel / η, when Pwheel > 0;
otherwise 0
Drivetrain efficiency η is the fraction of the rider's pedal power that
survives the chain, gears, and bearings to reach the wheel. It only
applies while the rider is putting power in. On a descent steep enough to
overcome rolling and aero drag, no pedaling is happening and there is no
drivetrain loss to account for — required rider power is zero.
Calories burned
Pedal power is mechanical work, but the body has to spend more metabolic
energy than that to produce it. The conversion goes through
gross cycling efficiency e — the share of the rider's total
metabolic energy expenditure during the ride that comes out of the pedals
as mechanical work.
kcal/hour = Ppedal · 3600 / 4184 / e
3600 / 4184 ≈ 0.8604 converts watt·hours to kcal: one watt
sustained for one hour is 3.6 kJ of mechanical work, and one dietary kcal
is 4184 J. Dividing by e marks up that mechanical number to the metabolic
energy the body actually spent. With e = 0.24 (Trained) the multiplier is
roughly 3.6, which is why you'll see the rule of thumb "kcal/hour ≈ watts
× 3.6" on cycling apps.
This is a gross figure. Gross efficiency's denominator
already includes the body's baseline burn during the exercise hour, so
the displayed number is the metabolic cost of riding for an hour at this
power — not "extra above sitting still." It's the same convention Strava,
TrainerRoad, and Garmin use.
On a steep enough descent the calculator clamps pedal power to zero, so
kcal/hour also shows zero. The rider is coasting — no muscular work is
being done at the pedals, and there's nothing for this formula to mark
up.
Treat the kcal/hour figure as long-run book-keeping: the energy the ride
cost and that the rider eventually has to replace. Stored glycogen and
fat mean a rider does not need to ingest this much during the hour
itself.
What different conditions look like
Uphill
Gravity dominates as soon as the slope is more than a percent or two.
Flat road
Aerodynamic drag dominates. Because power scales with the square of
apparent wind times ground speed, going a bit faster on the flat costs
much more than the speed change suggests.
Headwind
Adds to apparent wind speed, so aero power grows fast.
Tailwind
Subtracts from apparent wind speed. If the tailwind is faster than the
rider's ground speed, this calculator clamps apparent wind to zero.
Physically the wind would push the rider forward, but this is a "power
required" model and the honest answer in that regime is "you don't need
to pedal." Modelling propulsion from a strong tailwind is out of scope.
Downhill
If gravity alone overcomes rolling and aero drag, Pwheel
would be negative. Required rider power is reported as zero — you would
coast. Holding the entered speed in that situation requires braking,
which dissipates the surplus gravitational energy as heat. Brakes are not
modeled.
Limits of the model
- No acceleration, stop/start, or cornering effects.
- Wind is purely head- or tailwind; crosswinds are not modeled.
- No drafting behind other riders.
-
Tire pressure and width are baked into the surface category, not
adjustable separately.
- Air density does not account for humidity (~1% effect).
-
Rider-specific frontal area beyond the position dropdown is not
modeled.
-
Bearing losses beyond the drivetrain efficiency factor are not modeled.
- Braking power on descents is not quantified.
-
Metabolic efficiency is treated as a single number per cycling fitness
bucket. Real efficiency varies with intensity, cadence, and position
within a single ride.