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
- Connect Strava — swap the textbook curve for your personal pace-vs-grade fit. Plans then reflect your real climb cost, not the average runner's. Also unlocks a predicted finish for any course you drop here.
- Save plans — sign-in lets you name a plan, store it, and re-open it any time. Splits re-derive against your latest curve, so plans sharpen as your data does.
- Pick a Strava run as your course — pace any past activity with the same course-aware splits, no GPX export needed.