How the course planner works

Most pace calculators give you the same per-km split for every kilometre of a hilly race. That's terrible advice: you'd blow up on every climb and waste descents. Course-aware pacing distributes your goal time so effort stays even — slower up, faster down — using the energy cost of running on different grades.

The math is Minetti, Moia & Roi's 2002 paper on the energy cost of running at different grades (Journal of Applied Physiology). For each 1 km segment of your course, we compute the average grade, look up the energy cost relative to flat, and scale the segment's pace so the total finish time still matches your target. Then you can layer a negative split bias on top — drift effort lower in the first half, push it harder in the second.

On the prediction side (when you've connected Strava) we run an ensemble of Daniels' VDOT and the Vickers-Vertosick (2016) distance-dependent Riegel exponent — that's how the coach gives a finish-time estimate for any race distance from one race or recent training effort. For runners with two or more hard recent efforts, we also fit a Critical Speed 2-parameter hyperbolic, which captures the speed-duration tradeoff more rigorously than scaling a single anchor.

Everything runs in your browser. The GPX never leaves your device. No account, no upload to a server.

Going further

Course planner FAQ
What's a negative split and why does it matter?
A negative split means running the second half of a race faster than the first half. Research consistently shows it produces faster overall times than positive or even splits, because you stay aerobic longer and have energy when others fade. Most world records — including the marathon — were set with negative splits. Pick "NEG" in the Splits section to plan one.
How accurate is the race time predictor?
It uses the Riegel formula T₂ = T₁ × (D₂ / D₁)^k with the Vickers-Vertosick (2016) distance-dependent exponent — k=1.06 short, climbing through 1.08 (half), 1.10 (marathon), 1.12 (ultras). That fixes Pete Riegel's original fixed-k=1.06 which underestimates marathon fade. Accurate to within ~2% for trained runners on flat courses; less accurate for first-time marathoners or hilly courses (in which case nudge k toward 1.10–1.15 manually). The connected coach goes further — see /coach.
How do I convert pace to speed?
Pace and speed are reciprocals. Speed (km/h) = 60 ÷ pace (min/km). So 5:00 min/km = 12 km/h. Going the other way, pace (min/km) = 60 ÷ speed (km/h). The PACE ↔ SPEED converter on this page does the math for both units (km/h and mph) live as you type.
Can I share my calculation with someone?
Yes. Every change updates the URL with your full state — distance, time, pace, units, split mode, predictor seed, everything. Copy the URL or hit SHARE to grab a clipboard-ready link. Sending it to a friend opens the calculator with exactly the same numbers you saw.