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

Charcoal sketch of a visually impaired runner and guide climbing frost-dusted steps, headlamp glow, volcano silhouette at mid-morning.

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.

SourceAccuracyAvailabilityEffort to obtain
Official race GPX / course mapHigh — reflects actual road-level gradeCommon for larger organised races, rarer for small local 10KsLow — usually on the race website
Strava segment from someone who's run the exact courseHigh — real GPS data on the real roadModerate — depends on the race having a public Strava presenceLow to moderate — a short search usually finds one
GPX upload to Strava or Garmin ConnectModerate to high — depends on GPS quality of the original fileGood if you can source the GPX from the organiserModerate — needs a file, then an upload
Manual plot in MapMyRunLower — relies on smoothed satellite elevation dataAlways available, works for any routeModerate — 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

Four barefoot adult runners in high-vis vests encouraging each other along a foggy pre-dawn beach shoreline.

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

Lone obstacle racer climbing a misty grass hill at dawn past ancient ruins, monochrome fine art.

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

Determined trail runner climbing rain-soaked grass beneath a suspension bridge at sunset, monochrome fine art photo.

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

Cubist silhouettes of elite runners with headlamps climbing smoky stadium steps in fragmented amber and grey geometric planes.

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 segmentElevation change (m)Avg grade (%)Decision point?GAP-adjusted targetTactical adjustmentFinal target pace
0-2+80.4%NGoal paceNoneGoal pace
2-3+80.8%N (under threshold)Goal paceNoneGoal pace
5-5.5+204%Y — sustained climb+10 sec/km+2-3 sec/km buffer+12-13 sec/km
5.5-600%NGoal paceNoneGoal pace
7.7-8-15-5%Y — sustained descent-8 sec/kmBank less than GAP suggests-4-5 sec/km
8-10-1-0.1%NGoal paceHold effort to the lineGoal 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


Grade Adjusted Pace for 10k Racing Is This 10k Course PR-Viable? Hill Training Workouts for a Hilly 10k Target Race The Workout Hierarchy in 10k Training Adding Distance to My Runs — From 5k to 10k Can I Achieve 10k in 60 Minutes? The 10k Shakeout Run Tempo Running


Home > Running Races > 10k > 10k Pacing with Hills > Pre-Race Course Profiling for a Hilly 10k

About the author

Dominique de Rooij

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.




What's New?

  1. 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.

    Read more

  2. 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.

    Read more

  3. 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.

    Read more


More New Posts →