Home » Blog » Individualization matters: the gradient adjusted pace model of Kilian Jornet

Individualization matters: the gradient adjusted pace model of Kilian Jornet

Gradient Adjusted Pace (GAP) models are integrated as a common feature in many running sports devices and companion apps. Recently, Kilian Jornet announced his movement from Suunto to Coros, and one of the anecdotal quotes to motivate the change was Coros interest on Kilian’s adjusted pace model. While a GAP model may be seen as irrelevant for some, it is one more informative feature for others. But how useful is it to look at a GAP model not derived from your own individual data?

Kilian-Coros’ example highlights the importance of individualized performance modeling for athletes. In this post, we derive the individual GAP model for Kilian. Thanks to his collaboration, we have computed the model using only his own recorded data from last year’s activities. We compare his individualized GAP version with the public version by Strava. We discuss the main differences, focusing on what makes Kilian the ultimate mountain athlete.

“Great data modeling!! Very useful to plan my training and race paces, and to understand the importance of individualization.”

Kilian Jornet

GAP modeling

For any trail runner or road runner that faces large elevation gain activities, a gradient adjusted pace (GAP) model is an informative feature to gauge the effort level of an activity. It can be used to better understand a training session, and even to better plan the strategy for races. The idea behind GAP models is to find the equivalent pace that a runner would achieve with the same effort, but when running on flat ground instead of with an actual gradient. 

GAP models are traditionally based on assessing either the metabolic cost of running at different gradients; or focusing on equivalent heart rates, like it is the case for the current version of the Strava GAP model. This post follows this second modeling direction in order to enable a fair comparison with Strava’s model. This way, the GAP accounts for the pace that a runner would achieve at different gradients but at the same heart rate.

In practical terms, you can take your running pace in a flat section and multiply it by the pace adjustment for a given uphill gradient value, and you will get the (slower) pace you would sustain at an equivalent effort for such an uphill section. The pace is slower for uphill gradients, where thus the adjustment is larger than 1, but for moderate downhill sections (gradients flatter than ~ -10%), the pace is faster, and thus the adjustment is slightly smaller than 1.

Example, if your flat pace is 4 min/km, at 10% uphill, looking at Strava’s GAP (see figure below), the pace adjustment is ~1.5, which means your equivalent pace at 10% will be 6 min/km.

Conversely, take your pace during an uphill gradient section and divide it by the pace adjustment for that gradient, and you will find which equivalent (faster) pace you would be sustaining if the path was flat instead. If you prefer to think in terms of speed rather than pace, then just notice they are inverted quantities, so to use the figure for speed you need to invert the operation, i.e. divide when we have talked about multiplying and vice versa.

Model assumptions

While a GAP model can be an informative feature to plan your running efforts, it comes with certain limitations. The model does not account for the impact of several confounding variables that impact effort and running, namely the absolute value of the altitude, the technical difficulty of the terrain, or the specific weather conditions during the activity, such as humidity, temperature or wind

We discuss below how the effect of most of these factors are assumed to be removed through the introduction of simple statistical techniques in the derivation of the GAP model, like activity normalization. After this process, however, one very important factor for the validity of a GAP model still remains to be addressed: Individualization.


The Strava GAP model was computed combining data from 240 thousand athletes. Athletes whose fitness level is unpublished. But given the large sample size, we may assume to be athletes within a wide spectrum of running capabilities, making Strava GAP model an average of all them. 

Is this model really useful for you, your individual running condition, and your specific adaptation to running up & downhill?

This question goes straight to the bottom of one of the most important factors in this modern age of data driven sports science: individualization. In order to illustrate its importance, we show here the GAP model we derive for probably one of the best endurance athletes ever running up & downhill: Kilian Jornet.


For the computation of Kilian’s GAP model we follow an analogous methodology to that used by Strava, whose details are explained in their post. The main difference is that instead of using running sessions from 240 thousand runners, we restrict the model to all sessions Kilian has recorded since 2019 and that contain heart rate data. Many of those sessions are not public in his Strava account, but he graciously agreed to share his records with us. This includes more than 46000 minutes (760h) of running activities from both training sessions and competitions.

Each activity contains information about the speed, heart rate and gradient on a per second basis for the full activity duration. To derive the GAP model, for each activity, we start resampling  the corresponding activity data record into 60 second windows. We take the window value averages for the heart rate, gradient, and speed, but filter out windows with meaningless values or with large variances for these. After this step, a smaller fraction of data remains, but including only time windows when Kilian was in a relatively running steady state.

For each window, we calculate the efficiency, in this case, following Strava’s definition taking the ratio heart rate over speed. This is actually counterintuitive with respect to a more genuine concept of efficiency, see here. For each activity, we compute the median efficiency at a nearly flat gradient, and use this quantity to normalize the values for that same activity. This is done to minimize the impact of the variations of efficiency caused by variations on Kilian’s fitness, stress levels; as well as other factors affecting this quantity, such as weather conditions like temperature; or technicalities of the terrain, and that we are not directly modeling.

We fit the remaining values for the normalized efficiencies and gradients to establish a relation between these two variables. We fit a relatively simple statistical model within a variable width bucketing schema to allow for a fair comparison with Strava’s approach. We derive the confidence bands on the model and plot them in the following figure. In the plot we show the GAP model we have derived for Kilian, together with Strava’s version as read from their description.

Kilian Jornet vrs. Strava GAP

Data Science pace model
Gradient Adjusted Pace Comparison: Strava GAP model and 1 sigma confidence region as extracted from here, together with the GAP model we have computed for Kilian Jornet and its corresponding 1 sigma confidence region. Image by PickleTech.

Running Uphill – Positive Gradients

When running uphill we observe the GAP model we derive for Kilian sits around the lower side of the 1 sigma band from Strava’s model. This means that compared to the average Strava athlete, Kilian adjusted pace uphill leads to a smaller correction. In other words, the pace Kilian can sustain for an uphill slope at the same effort as for a flat section is way faster than for the average Strava athlete, assuming the same flat pace, which is itself quite a big assumption already.

This is probably of no surprise, given Kilian’s performance on races such as Sierre-Zinal, Zegama, or UltraTrail del Pirineu, whose records from last years are by the way part of the data we have used to compute his GAP model. While expected, this also highlights the importance of individualized performance models. Otherwise these performance features may render quite useless as they become too inaccurate. 

The differences between Kilian and Strava’s GAP models grow bigger the larger the gradient is. But already for a gradient around 10% they are sizable. Assume Kilian runs flat at 3’30’’ per kilometer and wants to find the adjusted pace he should sustain at 10% uphill, the difference between using Strava’s (5’8’’/km) or his own model (4’30’/km’), sits 38’’ apart per kilometer.

Strava’s GAP model is pretty much useless for Kilian when running uphill, and for the purposes of gauging efforts or planning race strategies in there. 

Running Downhill – Moderate Slopes (0 to -15%)

For moderate downhill gradients (between 0 and -15%), both Strava’s and Kilian’s GAP models sit very close by. In both cases, the pace adjustment is slightly below 1. This means for such slopes Kilian would run faster downhill than in a flat section at the same effort. 

The models start to depart from each other at around -15%, but the differences are minor, and certainly not statistically significant. Reading the plot literally, it would seem that Kilian is able to run faster than in a flat section at the same effort for steeper slopes than the average athlete can, but there is a caveat. Given the data filtering process, for such slopes Kilian’s available data starts to become scarce. There are less steady state 60 second windows with such gradients, and this is what renders the statistical significance of the difference between the models small.

Running Downhill – Extreme Downhill

For slopes with a gradient steeper than -15%, Kilian’s adjusted pace is comparably smaller than that of the Strava GAP model, until slopes steeper than -35%, when they converge again. This means the penalty Kilian suffers in his pace when compared to flat paces at the same effort is smaller than for the average Strava athlete. 

A reasonable explanation could be that Kilian is better adapted to such downhill technical terrains, which makes him able to sustain the required effort better than the average athlete. We note again that this is the part of the modeling with less data points available for the fit, the differences are well within the respective model confidence bands.

Individualization Matters

The comparison of GAP models leads us to two clear takeaways.

In the current era of data availability, it is not enough to use averaged insights, we should rely when possible on individualized features like the GAP model we have derived for Kilian. The departures with respect to an average model will probably be less acute for another runner, but the differences are still big enough to render the model irrelevant many times.

While relying on analytical capabilities may be the ideal procedure, and a possibility for some, experience and a systematic approach to your training patterns are a first step to understand when averaged models are not enough for you. Have a look at our discussion with Kilian on how he approaches his training and data needs here and here.

The second takeaway for us is clear: do not challenge Kilian on a run with significant elevation gains, he is going to crash you up & downhill. Well, he will probably crash you also in the flat sections.

When it comes to improvements of the model presented here, there are several possible actions we can take. A better filtering of activities to remove the more technical terrains, and the activities with more extreme external conditions are some of them. Furthermore, a more accurate model would adapt depending on the desired pace & effort, and would also take into account the importance of altitude and distance accumulated. These are actually key aspects in ultra trail races. However, we believe this simpler version of the GAP model is enough to illustrate the points above. If you are interested in these improvements, and deriving an individualized GAP model, we will be happy to discuss this with you.

Powered by Data, Driven by Science

At PickleTech, we work developing tailored solutions to improve competitive aspects related to sports performance, athlete’s perceptions, and health. We believe data science and advances in Machine Learning coupled with physiology and sports science experimentation have the potential to provide athletes and their teams with tools to better understand, monitor, and systematically improve their competitive performance.

Header Image Credit: Jordi Saragossa – saragossa.cat

[1] A Conversation with Kilian Jornet | Driven by Science #1 https://youtu.be/ECptJ3giLrw

[2] Kilian Jornet partners with Coros (…) https://www.adaptnetwork.com/business/kilian-jornet-partners-with-coros/

[3] Strava model: https://medium.com/strava-engineering/an-improved-gap-model-8b07ae8886c3

[4] Kilian Jornet: https://en.wikipedia.org/wiki/K%C3%ADlian_Jornet_Burgada

[5] Minetti, A. E. et al. (2002). Energy cost of walking and running at extreme uphill and downhill slopes. Journal of Applied Physiology 93, 1039–1046.


[6] Data Science, Music and Sports. Part 1: Data Collection – Hypothesis Testing


[7] Data Science, Music and Sports. Part 2: Regressions – Recommender System


[8] Learnings from a conversation with Kilian Jornet: https://pickletech.eu/blog-kilian/