Methodology
The tools on this site are not black boxes. Every number comes from a published model, applied step by step in your browser. Here is every link in the chain, its source, and — because that is where honesty lives — its limits.
01 The bike physics model
Every watt fights three forces: gravity (m·g·sin θ), rolling resistance (m·g·Crr·cos θ) and air (½·ρ·CdA·v²), all divided by drivetrain efficiency (~97%). That is Martin et al. (1998), validated on a velodrome to ±3 W. The tool solves speed by bisection for every step of the track — no tricks, just repeated arithmetic.
◆ Martin et al., J Appl Biomech, 1998 △ Corners, surges and wet tarmac are not modelled.
02 Air density
ρ is not 1.225 kg/m³: it depends on temperature, pressure, humidity and above all ALTITUDE — ignoring 1,500 m of average altitude costs ~15% too much drag. The tool recomputes ρ at the altitude of every point, with real weather when loaded.
◆ Ideal gas law on humid air · Tetens · barometric formula △ The hot air of a closed valley on a summer afternoon is finer than the weather model grid.
03 Wind, projected and apparent
A weather wind is given by its origin direction: the tool projects it onto the real bearing of each section (a loop in strong wind only costs ~1%, not the ~12% of a permanent headwind), and composes the apparent wind — pure crosswind slows you too, via the CdA increase with yaw angle — coefficient taken at the prudent upper bound of wind-tunnel data, capped at 20° beyond which the data diverge. Over 20 km, the track is split into zones sampled at estimated time of passage. The tool now prices what the wind COSTS: it replays the same ride in still air and shows the difference — over 136 km, 48 minutes between still air and 23 km/h, where ten kilos are worth only sixteen.
◆ Published yaw drag measurements (+5 to +15% between 10 and 15°) △ The yaw coefficient depends on equipment; a forecast remains a forecast.
04 Strategy and the W′ tank
Above critical power, every joule comes out of a finite tank (W′); below it, the tank refills with a time constant that depends on how deep you recover (Skiba's model). Strategies REDISTRIBUTE without shifting the level: their multipliers are recentred on the actual route. Without that, the raw values — calibrated on a sustained col — averaged 0.964 on rolling terrain, and “push where it climbs” slowed the climbs by 3.6%. The tool simulates the W′ tank over the WHOLE ride: the second climb inherits from the first, and when the reserve drops under 20%, the target is capped just below CP — what a directeur sportif would shout from the car.
◆ Skiba et al., Med Sci Sports Exerc, 2012 △ Validated on hour-scale efforts: over six hours it is a guardrail, not an oracle.
05 NP, IF and TSS
Normalized power is the fourth-power mean of power (30 s-smoothed in the debrief; per section in the plan, where the target is already steady): it weighs surges the way your body pays for them. IF = NP/FTP locates the intensity; TSS = hours × IF² × 100 the load. In “target IF” mode the calculation inverts: you set the day’s intensity, the engine scales the targets.
◆ Coggan & Allen, Training and Racing with a Power Meter △ NP overestimates very stop-start rides (lights, aid stations).
06 Carbs and fat, section by section
The carb share of expenditure rises with intensity: ~45% in low endurance, ~90% at threshold. The tool partitions every step at ITS intensity — a col burns glycogen while the descent costs almost nothing — then sets the total against your store (~6 g/kg): the wall is dated when the deficit reaches 80% of the store.
◆ Romijn et al. 1993, van Loon et al. 2001 (crossover concept) △ Training moves the crossover; the real store varies with taper.
07 Hydration from losses
The plan starts from sweat losses (modelled from temperature and intensity, or MEASURED by your weigh-in if you did the protocol), caps at what the gut absorbs while riding (~0.7 to 0.9 L/h depending on build) and prices the sodium. No “drink X per degree” line: a deficit is managed, not abolished.
◆ Standard weigh-in protocol (ACSM) △ Sweat rate varies threefold between individuals: the weigh-in beats the model, do it.
08 The cost of gradient on foot
Running costs 3.6 J/kg/m on the flat, 5.97 at +10%, with a minimum around −18% — below that, braking costs more than gravity gives back. That is the polynomial of Minetti et al. (2002), measured from −45 to +45%: the published formula behind “GAP”. A distance is enough when there is no relief to describe — marathon, 10K, track: the gradient is zero and the fuelling engine runs identically. And if you give your vVO2max, the tool compares the target pace to what that DURATION allows (~88% on the hour, ~78% over three, ~72% over five): the same pace is fine over a half and unsustainable over 100K. The trail tool adds two owned dials — technicality (taxes time) and fatigue drift (degrades the engine) — plus a descent speed cap: impact limits you, not metabolism.
◆ Minetti et al., J Appl Physiol, 2002 △ Measured on a treadmill, fresh subjects, no pack, no rocks: that is what the dials are for.
09 Post-bike degradation
Your fresh pace does not come out of T2. The composer degrades the reference pace according to the actually planned bike IF (~+5% at IF 0.65, ~+15% at IF 0.85) AND its duration: the anchors come from studies on 2 h-2 h 30 bikes, a 30-minute sprint takes about a third of it, a full-distance bike a little more. Between 0.65 and 0.85, each IF point costs about half a point of pace — and the rate climbs beyond. It is the central seam of the plan, and the reason for the format cap.
◆ Triathlon literature (run-after-bike degradation ranges) △ A literature average: your own race history will pin it down better than we can.
10 Predicted versus actual, at equal conditions
The debrief replays the prediction ON THE TRACK of your ride, with your athlete settings (targets, strategy, CdA, weight) and THE WEATHER OF THE DAY YOU RODE — not today’s. It is the only comparison that means anything: pitting a ride done in 23 km/h of wind against a still-air model manufactured fifty minutes of gap that did not exist. What remains is the real gap: traffic, corners, undetected stops, the legs you had that day.
◆ Open-Meteo archive (ERA5), averaged over the hours actually ridden △ Actual time is MOVING time: stops are not in it, so the gap never explains them away.
11 The debrief: measured CdA and Crr
The power equation, solved for gradient at every step of a real ride, produces a “virtual elevation”; the right CdA is the one that glues it back onto barometric altitude (Chung’s method). The problem is linear: exact least-squares solution, aggregated in 30 s windows to tame barometer noise. ONE UNKNOWN ONLY: Crr is not estimated, it is declared. On an ordinary ride, speed does not vary enough to separate rolling (constant) from drag (in v²) — the two-unknown solver trades one for the other freely and publishes absurd pairs. Measured: Crr 0.0018, half the fastest tyre on the market, with a CdA of 0.442 to compensate. Crr is a property of the kit: seven tyres, four surfaces, you declare it. The real weather of the ride day is fetched from the archive and enters the calculation — without it, the density gap would land entirely in the CdA.
◆ R. Chung, “Estimating CdA with a power meter” (virtual elevation) △ The day’s wind is still absorbed into the CdA: we know its mean speed, not its projection onto your bearing second by second. A debrief in the mistral yields the mistral’s CdA.