Pre-Race Course Profiling for a Hilly 10K
Your target race has real hills, and you're staring at its elevation profile trying to turn it into an actual pacing plan. Turning a hilly 10K's elevation profile into a pacing plan takes four steps: pull elevation data from the most reliable source you can find, mark segments where the grade exceeds 3% for over 200m as decision points, apply Grade Adjusted Pace to each of those segments, then adjust the GAP output using tactical judgment — where to bank effort, where to hold. I run this exact process with athletes in the two weeks before a hilly target race, and it turns a squiggly elevation line into a plan they can actually execute on the day.
Most runners look at a course's elevation profile once, form a vague impression — "bit hilly around halfway" — and leave it there. That's not a plan. It's a glance. This page walks you through the full workflow, from finding data you can trust through to a worked, reusable template.
Finding and Comparing Elevation Data Sources
Not all elevation data is equal, and the source you use matters more than most runners assume. I've reviewed enough athletes' pre-race prep to see the same mistake repeatedly: someone builds a pacing plan off a rough manual plot, and it misclassifies a short punchy rise as flat ground because the satellite-derived elevation was smoothed over.
| Source | Accuracy | Availability | Effort to obtain |
|---|---|---|---|
| Official race GPX / course map | High — reflects actual road-level grade | Common for larger organised races, rarer for small local 10Ks | Low — usually on the race website |
| Strava segment from someone who's run the exact course | High — real GPS data on the real road | Moderate — depends on the race having a public Strava presence | Low to moderate — a short search usually finds one |
| GPX upload to Strava or Garmin Connect | Moderate to high — depends on GPS quality of the original file | Good if you can source the GPX from the organiser | Moderate — needs a file, then an upload |
| Manual plot in MapMyRun | Lower — relies on smoothed satellite elevation data | Always available, works for any route | Moderate — plotting takes time and care |
My order of preference is simple: official GPX first, a Strava activity from someone who has actually run the exact course second, and a manual MapMyRun plot only as a last resort. Satellite-derived elevation on a manual plot can be off by several metres at any given point — enough to hide a short, punchy rise that deserves a place in your plan. If a manual plot is genuinely your only option, treat every number on it as approximate and lean more heavily on the course description and any race-day reports from previous runners.
Identifying the Course's Key Decision Points
A full elevation profile is too much information to race off. The trick is filtering it down to the handful of points that actually change your plan — everything else gets absorbed into normal effort-based running.
Here's the rule I use with athletes: a segment counts as a key decision point if it sustains a grade of 3% or more for at least 200 metres — roughly 45 to 60 seconds of race time at 10K effort. Shorter, punchier rises under that threshold don't need a discrete plan change. You hold your form, keep your effort steady, and let them pass.
Once you've marked your decision points, classify each into one of three types:
- Sustained climbs — plan a deliberate, controlled ease-off in pace so effort stays constant.
- Short punchy rises — hold your form and don't chase the pace; let effort do the talking.
- Sustained descents — decide in advance where you'll actually push and where you'll simply relax and let gravity do the work.
Say your course has a profile with a gentle 400m rise at 2% around km 2 — that's below threshold, so it's absorbed into normal running. Then a 500m climb at 4% from km 5 to km 5.5 — that's a sustained climb and a genuine decision point. Then a 300m drop at 5% into km 8 — a sustained descent worth planning around. Everything else on the profile can be left alone.
From Elevation Profile to Per-Kilometre Targets
Once your decision points are marked, the mechanical step is applying Grade Adjusted Pace — GAP — to each one. I won't re-derive the full GAP formula here; my page on Grade Adjusted Pace for 10K racing covers the calculation and a full worked table in detail.
What matters for this workflow is one rule: apply GAP only to your identified decision-point segments, not uniformly across the whole course. The flat or near-flat majority of most hilly 10Ks needs no adjustment at all. Treating every kilometre as if it needs a GAP correction adds noise and complexity you don't need — save it for the segments that actually earn it.
Adjusting GAP Output With Tactical Judgment
GAP gives you a neutral, physiologically-derived number. Racing is not neutral — it's tactical. This is the step most runners skip entirely, and it's where a good plan becomes a genuinely race-ready one.
I had an athlete "cash in" a downhill too early in the middle of a hilly 10K once — she hit the descent, let the pace run away from her because it felt free, and paid for it hard in the final 2km when her legs had nothing left. That example shapes the three adjustments below.
- A short, steep descent right before the finish — deliberately bank slightly less recovery than GAP implies. Hold effort into the finish rather than cashing in the full downhill gain early; you want legs left for the line, not spent 400m before it.
- A long, sustained climb in the middle third — run it 2-3 seconds per kilometre slower than pure GAP output as a controlled, conservative buffer. Mid-race climbs are where most pacing blow-ups start, and a small buffer here protects the rest of the race.
- A rolling section with no single dominant grade — abandon per-kilometre GAP targeting altogether and run by effort or heart rate instead. Chained GAP corrections compound their error quickly on short, irregular terrain, and you'll do better trusting feel.
A Worked Template for Your Next Hilly 10K
This is the literal tool I build with athletes in the two weeks before a hilly target race. Copy it, blank out the example numbers, and fill it in with your own course data.
| KM segment | Elevation change (m) | Avg grade (%) | Decision point? | GAP-adjusted target | Tactical adjustment | Final target pace |
|---|---|---|---|---|---|---|
| 0-2 | +8 | 0.4% | N | Goal pace | None | Goal pace |
| 2-3 | +8 | 0.8% | N (under threshold) | Goal pace | None | Goal pace |
| 5-5.5 | +20 | 4% | Y — sustained climb | +10 sec/km | +2-3 sec/km buffer | +12-13 sec/km |
| 5.5-6 | 0 | 0% | N | Goal pace | None | Goal pace |
| 7.7-8 | -15 | -5% | Y — sustained descent | -8 sec/km | Bank less than GAP suggests | -4-5 sec/km |
| 8-10 | -1 | -0.1% | N | Goal pace | Hold effort to the line | Goal pace |
Notice what the template does: it leaves the majority of the course alone at goal pace, and only intervenes where a genuine decision point exists. That's the entire point of the workflow — a plan that's precise where it matters and simple everywhere else.
Frequently Asked Questions
Can I build this plan without a GPS watch or GAP calculator?
Yes. The decision-point classification alone still works without a GAP calculator. Mark your sustained climbs, punchy rises, and descents by feel and by the course map, then assign each one an effort zone rather than a precise pace — ease off on sustained climbs, hold form through short rises, and push where the descent genuinely allows it. You lose some precision without GAP, but you keep the tactical structure, which is the part that actually prevents blow-ups.
What's a reasonable amount of prep time to invest in course profiling?
Budget 30-45 minutes in total. That's roughly 10 minutes sourcing the best elevation data you can find, 15 minutes marking decision points on the profile, and 15-20 minutes building your target-pace table. Any longer than that and you're likely overthinking sections that don't need a discrete plan change.
Some Other Pages You May Like
About the author
Dominique de Rooij (Dom)
Advanced Running Coach certified by Athletics Australia with 20 years of writing about running and over a decade coaching runners — from first-timers to marathoners. Dom's beginner programs have guided thousands of runners and been praised above plans from Jeff Galloway, Hal Higdon, and Runner's World. Now over 50, Dom still loves trail running, parkrun, and the coffee after.
Free weekly coaching • Join 3,500+ runners
Train Smarter, Not Just Harder
Get your free guide when you join the BRT Coaching Letter
No spam, ever. Unsubscribe in one click, any time.
What's New?
-
Why the 10K Is a Lactate Threshold Race | BRT
The 10K is raced 5-10% faster than lactate threshold — here's what that does to your pacing, and how to use it to race smarter. -
The PCr Fast-Start System for 5K Racing: Science & Execution | Best Running Tips
The physiological case for going out slightly fast in a 5K — and the exact execution rule (how fast, how far, what cues) that turns science into a race plan. -
5K Post-Race Debrief: Turn Race Data Into Training Decisions | Best Running Tips
A structured 5-question framework for analysing your 5K: explain the time gap, read your pacing signature, audit in-race decisions, and identify the training adjustment.