The Physics of Marginal Gains
Definitions and derivations behind the CdA / CWPS / CWPP / CWPM / Caps model.
0. The BASE rider — what every "savings" number is measured against
Every savings figure in this app is a delta from a baseline athlete using
stock, non-aero equipment. Each item stores a physics primitive — bike items carry a
drag-area reduction ΔCdA (m²), a rolling-resistance reduction ΔCrr, or a
constant drivetrain saving ΔWatts; swim and run items carry a fractional speed gain Δtime%. CWPS, CWPP and CWPM are all derived downstream from those primitives.
The reference equipment configuration
- Bike: stock road bike, round-tube frame, no aero handlebar extensions. CdA ≈ 0.32 m² in a relaxed hoods position.
- Tires & tubes: stock training clinchers + butyl inner tubes. Crr ≈ 0.005 each.
- Drivetrain: factory-greased chain, stock derailleur pulleys, sealed steel bottom-bracket bearings (~6 W loss at 250 W).
- Helmet & kit: standard road helmet, club-issue jersey + bib (no skinsuit).
- Swim: jammers / standard race brief, no wetsuit or swimskin.
- Run: a mid-stack neutral trainer (~250 g, no carbon plate).
The reference athlete
The model uses two reference power points, calibrated independently:
- Race-duration reference (150 W): sets
Tbasevia \( T_{\text{base}} = 6.33 \times (150/P)^{1/3} \times (D/180) \). A 150 W rider covers 180 km in 6.33 h (≈ 28.4 km/h average), the de-facto endurance-amateur benchmark. - Upgrade-scaling reference (225 W): the point where the empirical aero bump
κequals 1.0. A 300 W rider on a direct-aero item gets \( (300/225)^{0.15} \approx 1.045\times \) that bump — about 4.5% more. - Swim reference (1.05 m/s ≈ 1:35/100m): κ = 1.0; faster swimmers scale as \( (v/1.05)^{0.4} \).
- Run reference (3.33 m/s ≈ 5:00/km): κ = 1.0; faster runners scale as \( (v/3.33)^{0.25} \).
Reference parameters
All constants live in one place (REF in math.js) and several are derived from each other:
- \( \rho = 1.204\ \text{kg/m}^3 \) (air), \( g = 9.81\ \text{m/s}^2 \), system mass \( m = 80\ \text{kg} \).
- \( p_{\text{ref}} = 225\ \text{W} \) (empirical κ anchor), \( p_{\text{base}} = 150\ \text{W} \) (Tbase anchor), \( CdA_{\text{base}} = 0.32 \), \( C_{\text{rr,base}} = 0.005 \).
- Derived: \( v_{\text{ref}} = \sqrt[3]{2 p_{\text{ref}} / (\rho\, CdA_{\text{base}})} \approx 10.53\ \text{m/s} \approx 37.9\ \text{km/h} \).
- Swim/run velocity refs: \( v_{\text{swim,ref}} = 1.05\ \text{m/s} \), \( v_{\text{run,ref}} = 3.33\ \text{m/s} \).
225 W is an empirical convention, not a physical constant — it's a typical serious-AG-triathlete power that sits well above the 150 W Tbase anchor. And \( v_{\text{ref}} \) is only a default: the live CWPS/CWPM numbers evaluate watts saved at your actual drag-only speed, not at a fixed reference.
How a "time saved" number is built
- Bike: compute watts saved at your actual drag-only speed — \( \Delta P = \tfrac12\rho v^3\,\Delta CdA \) (aero), \( \Delta Crr\, m g v \) (rolling), or a constant \( \Delta W \) (drivetrain) — then \( \Delta M_{\text{hr}} = 20\,\Delta P / P \). Swim/run: \( \Delta M_{\text{hr}} = 60 \times \Delta\text{time\%} \).
- Multiply by the empirical curve bump
κ(profile)(aero/reynolds/swim/run only). - Multiply by the baseline leg duration: \( \Delta t = \Delta M_{\text{hr}} \times \kappa \times T_{\text{base}} \).
Owned-gear rebaselining
Equipment that comes in mutually-exclusive tiers — the triathlon-bike frames, or the inner-tube types — forms a group. Mark one item in a group as owned and the others rebaseline against it: they show the marginal minutes-per-hour gained over what you own, not the full gap from stock. Marking a new group-mate as owned replaces the old one. Items outside any group — helmets, wheels, drivetrain parts — stay independent deltas vs the BASE rider.
What this means in practice: if you already run latex tubes, a carbon TT bike and an aero helmet, the displayed gains overstate what you'd actually realize from a new wheel — you're no longer the BASE rider the savings figure was calibrated against. Use the "Mark as owned" toggle to prune gear you already have and read remaining gains as marginal over your current configuration.
1. Baseline Velocity Profile (The Cubic Curve)
Race duration follows a normalized non-linear endurance decay curve:
- $P_{\text{athlete}}$ — sustained target bike power output (Watts).
- $D_{\text{target}}$ — target race distance (km).
2. CdA — Coefficient of Aerodynamic Drag
CdA combines the drag coefficient $C_d$ (shape / surface separation) and frontal area $A$ (m$^2$). A lower CdA means fewer watts are needed to hold a given speed.
Drag force
Power required to overcome air resistance
- $\rho$ — air density (≈ $1.204\ \text{kg/m}^3$ at sea level, 20°C).
- $v$ — velocity relative to wind ($\text{m/s}$).
Takeaway: doubling speed requires ~8× the power unless you reduce CdA.
Solving for your CdA
Rearranging the cubic for the all-drag scenario:
3. CWPS — Cost per Watt Saved
CWPS is the bike ranking metric: dollars per watt of drag removed. Because watts saved depends on speed, it is evaluated at your drag-only equilibrium speed $v$ (the speed your power buys on BASE-CdA gear), not a fixed reference.
For rolling items \( \Delta P = \Delta C_{\text{rr}}\, m g v \); for drivetrain items the watts are a constant. CWPS only exists for bike gear — swim/run carry no measurable propulsive watts.
4. CWPP — Cost per Percentage-Point of Speed Gain
CWPP is the swim/run sibling to CWPS. Manufacturers quote swim and run gear as fractional speed or efficiency gains, not in watts — there's no measurable propulsive power for a wetsuit or a running shoe — so the race-independent ranking metric is dollars per percentage-point of speed gain.
How to read it — lower is better
- Wetsuit: $500 at 4% → CWPP = $125/%
- Swimskin: $250 at 1.5% → CWPP = $166.67/%
- Carbon-plate racing shoe: $280 at 2.5% → CWPP = $112/%
CWPS ($/W) and CWPP ($/%) live in different units and are not directly comparable across disciplines. Both feed into CWPM (minutes saved at a given race), which is comparable across swim, bike and run.
5. CWPM — Cost per Minute Saved
CWPM is the most actionable metric and the dashboard's default sort: dollars per minute shaved off your race split. It is profile- and distance-dependent.
Step 1 — minutes saved per hour at your operating point
Step 2 — total time saved over the leg
- Direct aero: empirical bump $\kappa = (P/225)^{0.15}$.
- Reynolds (deep wheels, helmets, skinsuits): $\kappa = (P/225)^{0.35}$.
- Rolling / drivetrain: no $\kappa$ — the power-scaling already lives in $\Delta P$ (see §7).
Step 3 — the CWPM formula
6. Caps — Power Balance & Diminishing Marginal Gains
A "Cap" is the ceiling of practical aero optimization: human anatomy needs a minimum structural footprint to make power, so CdA cannot fall indefinitely without collapsing the hip angle.
Power balance equilibrium
- $C_{\text{rr}}$ — coefficient of rolling resistance.
- $m$ — total system mass (rider + bike, kg).
- $g$ — gravitational acceleration ($9.81\ \text{m/s}^2$).
- $\sin\theta$ — road gradient / slope.
- $\mathcal{L}_{\text{dt}}$ — drivetrain power loss.
As you invest in more expensive gear, returns follow an asymptotic decay curve. A bike fit takes CdA from ~0.320 → ~0.240 for $300; an ultra-premium cockpit may only reach 0.222 → 0.220 for $2,500. The cap inflates all three cost metrics — CWPS, CWPP and CWPM — near the ceiling: it's a property of the whole cost-efficiency stack, not any single metric.
7. Three regimes of resistance
Bike resistance splits into three physically distinct regimes. The old "linear vs Reynolds" framing lumped rolling and drivetrain together — but they scale with speed differently, so a stronger rider gets a different share of the benefit from each.
| Metric | Aero (Reynolds) | Rolling | Drivetrain (Static) |
|---|---|---|---|
| Force scaling | $F \propto v^2$ | $F \approx$ constant | $F \propto v^{-1}$ |
| Power scaling | $P \propto v^3$ | $P \propto v^1$ | $P \approx$ constant |
| Watts saved by upgrade | Scales with $v^3$ | Scales with $v$ | Constant |
| Time benefit vs power | ≈ flat ($P^{0}$) | $P^{-2/3}$ | $P^{-1}$ |
| κ exponent | +0.15 / +0.35 (empirical) | none — physics supplies it | none — physics supplies it |
| Example upgrades | Helmets, wheels, position | Tires, tubes | Chain wax, bearings |
Why rolling is $P^{-2/3}$ and drivetrain is $P^{-1}$
Because watts saved are computed at the rider's actual drag-only speed, the power-scaling of each regime falls out of the physics — no hand-tuned exponent needed. In the drag-dominated approximation $v \propto P^{1/3}$, so:
This matches well-known intuition: chain wax matters most to weaker riders, because a 4 W saving is a larger fraction of their total power. Aero is the opposite case — its watts saved rise with $v^3$, roughly cancelling the $1/P$ in the identity to leave a flat-in-power benefit, on top of which the empirical +0.15 / +0.35 bumps reward the small second-order gains (position changes, Reynolds sensitivity) that faster riders unlock.