Skip to content
Slow Run Fast

Course Pace Planner

Drop in a GPX course, set your race date, start time, and a target, and get a per-km or per-mile pace plan that accounts for the hills, heat, and wind along the way.

Course (GPX file)

Drop a GPX file here

or press Enter to browse. Stays in your browser.

Mode

Only affects the wind calculation. Defaults to 70 kg.

Conditions

Load a course above to fetch a forecast for it.

This estimate uses a generic formula. Connect your Strava/Whoop/Garmin data for a version personalised to your actual training.

Get early access

Why a flat pace is not the whole story

A single goal pace treats a course as flat, calm, and cool, which almost no real race is. Hills cost more going up than they give back coming down, heat slows every runner once temperature and dew point climb high enough, and wind can turn a comfortable pace into a fight for the parts of a course running into it. This planner walks a GPX file 200 m at a time and combines all three into one pace plan, instead of leaving you to guess how much slack to build in.

Predict, or plan to a target

Predict mode takes a flat-equivalent pace you know you can hold and tells you the finish time that pace produces on this specific course. Plan to a target mode works backward from a goal finish time to the flat-equivalent pace that gets you there, solved by trying a pace, seeing how far off the predicted finish is, and adjusting until it converges. Either way, the result is the same per-checkpoint table: pace, grade, conditions, and cumulative time.

Forecast or manual conditions, and what leaves your browser

A GPX file is parsed entirely in your browser and never uploaded anywhere. The only network request this page makes is optional: clicking "Get forecast" sends the course's start coordinates, rounded to about a kilometre, to Open-Meteo for an hourly forecast. Racing further out than Open-Meteo's 16-day forecast horizon, or just want to test a what-if condition, enter temperature, dew point, and wind manually instead.

How it is calculated

Each 200 m segment gets a combined pace factor: grade factor × heat factor × wind factor. Grade and wind (converted to an equivalent slope) share the same grade-adjusted pace model used elsewhere on this site; heat uses the same temperature plus dew point guideline. Full working, including the wind physics and plan-to-target solver: methodology.

Worked example

Take a gentle 5 km out-and-back with a 12 m climb then the same descent back down, run at a 5:00/km flat-equivalent pace in 20°C/14°C dew point conditions with a light crosswind:

Flat-pace time (no hills, heat, or wind)25:00
Predicted finish, this course and conditions25:23
Added by hills, heat, and wind combined0:23

The climb costs more than the descent gives back, matching how real grade-pace curves work: even an out-and-back that returns to its starting elevation nets slower than running the same distance flat. Upload your own course to see how much that climb-descent asymmetry, plus the day's actual forecast, changes your own pace plan.

FAQ

Does my GPX file get uploaded anywhere?

No. The file is read and parsed entirely in your browser; it is never sent to a server. The only network request this page makes is the optional forecast fetch, which sends only the course's rounded start coordinates to Open-Meteo, not the file itself.

Why does the map only show the start point's weather for the whole course?

Fetching a separate forecast for every 200 m segment would multiply the number of requests for little real accuracy gain over a typical race's span and duration. The plan looks up the single start-location forecast by each segment's estimated arrival time instead, so conditions still change over the course of a long race, just not over its distance.

What if my race is more than 16 days away?

Open-Meteo only forecasts 16 days ahead, so the "Get forecast" button will say the race is too far out. Switch to manual conditions and enter your best estimate, or come back to fetch the real forecast once the race is within that window.

Why is predicted time with hills, heat, and wind slower than flat pace even on an out-and-back?

Grade-adjusted pace curves are asymmetric: a climb costs more time than the equivalent descent saves, because a runner cannot bank the climb's metabolic cost as free speed on the way back down (braking, footing, and fatigue limit that). An out-and-back that returns to its starting elevation still nets slower than flat ground for the same reason.

Which grade and heat models does this use?

The same empirical grade-pace model as the Grade-Adjusted Pace and Elevation Gain Time Cost calculators, and the same temperature-plus-dew-point guideline as the Heat Pace Adjustment calculator, so a course plan here stays consistent with what those calculators would say about the same hill or the same weather on their own.