Free tool

See your real running effort on hills.

Compute grade-adjusted pace from a single hill effort or any GPX or FIT file. Compare a 5:30/km mountain run against a flat tempo session, calibrate workout pacing for elevation, and stop pretending your trail PR is the same metric as your road one. Free, in-browser, your file never leaves your device.

7:40 /km at 6%becomes6:12 /km flat

Actual pace

5:30 /km

Grade-adjusted pace

4:37 /km

How it works

  1. 1

    Pick a mode

    Manual for a single pace + grade. File mode for a GPX or FIT with elevation data.

  2. 2

    Enter your pace and grade

    Manual mode wants min/km or min/mi and a grade percentage. File mode reads it all from the file.

  3. 3

    Read the adjusted pace

    GAP per segment, with a summary line for the whole effort.

What you get

  • Strava-equivalent quadratic GAP formula with downhill correction
  • Per-trackpoint GAP for uploaded GPX, FIT, and TCX files
  • Handles uphill and downhill separately so descents do not flatter your numbers
  • Manual single-grade mode for back-of-napkin checks
  • min/km and min/mi units with a one-click toggle
  • Works offline - your activity file stays on your device

When to use this

Use GAP whenever your training is on hilly terrain and you want a single comparable number across days. The classic use case: you do a 10km easy run on a flat day at 5:30/km, then the next week you do a 10km easy run with 300m of climbing and your watch says 6:00/km - did you go too hard or did you slack off? GAP will tell you. It also works for evaluating hill repeats (was the climb pace actually equivalent to the recovery pace?), for pacing trail races (target a GAP, not an absolute pace), and for cross-referencing road and trail PRs that look very different on paper but might be the same effort.

How it works under the hood

The formula is a quadratic fit to Minetti et al. (2002), the canonical paper on the metabolic cost of running on graded surfaces. The cost is normalized to flat-ground running and inverted to give a pace multiplier. Uphill, the multiplier grows roughly quadratically - 5% grade costs about 25% more, 10% grade about 55% more. Downhill, the curve dips below 1.0 (you go faster for the same cost) until about -10% grade, then climbs back up as the cost of braking dominates. The tool reads grade from the elevation field in your GPX/FIT/TCX and applies the multiplier per trackpoint, then reports both per-segment GAP and a single weighted average across the whole run.

Common mistakes

The most common mistake is interpreting GAP as a measure of perceived effort. It is a measure of metabolic cost. Perception lags - hot weather, headwind, undertraining, and dehydration all push perceived effort up without changing GAP. Second-most-common: trusting GAP on a noisy phone GPS track where the elevation jitters by 5m every few seconds, which makes the calculator think you are running up and down a staircase. Either smooth the elevation first or run the file through our [FIT Elevation Setter](/tools/fit-elevation-setter) to refetch real terrain elevation. Third: applying GAP to walking segments - the formula assumes running gait and falls apart below about 11 min/km.

Frequently asked questions

What is grade-adjusted pace?
Grade-adjusted pace (GAP) is your running pace converted to the equivalent flat-ground pace at the same metabolic cost. Running 5:30/km up a 6% grade costs about the same as running 4:30/km on the flat - your GAP for that segment would be roughly 4:30. The point is to give you a single comparable number across hilly and flat runs so you can judge effort honestly.
Is this the same as Strava's GAP?
Functionally yes, numerically very close. Strava's GAP uses a quadratic curve fit to Minetti's metabolic-cost-of-running data. We use the same family of curve with effectively identical coefficients. Expect your numbers to land within 1-2 seconds per kilometer of Strava's GAP on the same activity.
How is GAP different from NGP (Normalized Graded Pace)?
TrainingPeaks Normalized Graded Pace uses a similar quadratic with slightly different coefficients, and then applies a normalization rolling average (similar to NP for cycling). Per-segment, GAP and NGP agree within 1-3 sec/km. For an entire run, NGP tends to read a few seconds faster because of how the rolling average handles short surges.
Does GAP work for cycling?
Not in the same way. For running, GAP works because the metabolic cost of running per meter is dominated by your body mass moving against gravity, which is a clean function of grade. For cycling, the cost is dominated by aerodynamic drag and gravity together, and the math falls apart at higher speeds. Use [normalized power](/tools/tss) for cycling - it handles the same "effort versus output" problem more honestly.
Why does my hill run feel so much harder than the GAP suggests?
Three reasons. First, eccentric downhill loading damages muscle fibers in a way that GAP does not model - a 5km descent leaves you wrecked the next day even if the pace was easy. Second, hot weather and altitude both add cost that GAP cannot see. Third, GAP is a metabolic-cost estimate, not a perceived-exertion estimate; uphill running biases perception higher than the metabolics alone would predict.
What grade is "neutral" - where GAP equals pace?
0% grade is neutral by definition. The curve also has a sweet spot around -2 to -3% where downhill gravity-assist exactly cancels the slight extra cost of controlling your stride - run a gentle downhill 3:1 and your GAP equals your actual pace. Below -3% and steeper, gravity wins and your GAP is faster than your pace. Above 0% and steeper, gravity costs and your GAP is slower than your pace.
How accurate is GAP on a long mountain run?
Within about 5 sec/km on average for runs under 20% grade and under three hours. It loses fidelity on extreme slopes (above 25%) because hiking biomechanics take over from running biomechanics and the cost curve breaks. For ultras with serious vert, treat GAP as a guideline, not a verdict.
Should I train by GAP or by raw pace?
Train by GAP for effort-targeted workouts (tempo, threshold, easy runs) on hilly terrain - it stops you from blowing up climbs or sandbagging descents. Train by raw pace for race-specific workouts on terrain that mirrors the race, because the goal there is to learn what the actual pace feels like.

Track hill effort across the season

GAP per run is great. GAP trends across months are what tell you you're getting fitter.

Create free account