TRIGAINS

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 Tbase via \( 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

  1. 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\%} \).
  2. Multiply by the empirical curve bump κ(profile) (aero/reynolds/swim/run only).
  3. 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:

\[ T_{\text{base}} = 6.33 \times \left(\frac{150}{P_{\text{athlete}}}\right)^{\frac{1}{3}} \times \left(\frac{D_{\text{target}}}{180}\right) \]
  • $P_{\text{athlete}}$ — sustained target bike power output (Watts).
  • $D_{\text{target}}$ — target race distance (km).
Your status: at 225W over 180km, baseline split ≈ 5.53 h.

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

\[ F_d = \tfrac{1}{2} \, \rho \, v^2 \, CdA \]

Power required to overcome air resistance

\[ P_d = \tfrac{1}{2} \, \rho \, v^3 \, CdA \]
  • $\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:

\[ CdA \approx \frac{2 \, P}{\rho \, v^3} \]
Your status: at 225W averaging ≈ 32.6 km/h over 180km, your implied CdA ≈ 0.506 m² (drag-dominated approximation).

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.

\[ \text{CWPS} = \frac{\text{Cost}\ (\$)}{\tfrac{1}{2}\,\rho\, v^3\, \Delta CdA} \]

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.

Your status: at 225W your drag-only speed is ≈ 37.9 km/h, so every 0.01 m² of CdA you remove is worth ≈ 7.0 W. A $400 frame saving that much would cost ≈ $57/W.

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.

\[ \text{CWPP} = \frac{\text{Cost}\ (\$)}{\Delta\text{time\%} \times 100} \qquad [\$/\%] \]

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

\[ \Delta M_{\text{hr}} = 20\,\frac{\Delta P}{P}\ \text{(bike)} \quad\text{or}\quad 60 \times \Delta\text{time\%}\ \text{(swim/run)} \]

Step 2 — total time saved over the leg

\[ M_{\text{saved}} = \Delta M_{\text{hr}} \times \kappa(\text{profile}) \times T_{\text{base}} \]
  • 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

\[ \text{CWPM} = \frac{\text{Cost}\ (\$)}{M_{\text{saved}}\ (\text{min})} \]

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

\[ P_{\text{total}} = P_{\text{aero}} + P_{\text{rolling}} + P_{\text{gravity}} + P_{\text{drivetrain}} \]
\[ P_{\text{total}} = \left(\tfrac{1}{2} \rho v^3 \, CdA\right) + \left(C_{\text{rr}} \, m \, g \, v\right) + \left(m \, g \, v \, \sin\theta\right) + \mathcal{L}_{\text{dt}} \]
  • $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.

MetricAero (Reynolds)RollingDrivetrain (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 upgradeScales 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 itnone — physics supplies it
Example upgradesHelmets, wheels, positionTires, tubesChain 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:

\[ \text{Rolling:}\quad \Delta P_{\text{roll}} = \Delta C_{\text{rr}}\, m g v \propto P^{1/3} \;\Rightarrow\; \Delta M_{\text{hr}} = 20\,\frac{\Delta P}{P} \propto P^{-2/3} \]
\[ \text{Drivetrain:}\quad \Delta P_{\text{dt}} = \text{const} \;\Rightarrow\; \Delta M_{\text{hr}} = 20\,\frac{\Delta P}{P} \propto P^{-1} \]

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.