Towards Grade Adjusted Best Paces and CS/D' Computation

I was inspired by a recent feature request posted at Running personal bests for running PRs. I’ve been wishing for this for sometime just like OP. However, given the huge workload for David already, I hesitated to ask. :slight_smile:

If this is any guidance to go by, here are some notes concerning this request :

  1. Consider tabulating an athlete’s best grade adjusted paces which can then be filtered and shown by year, month, training season etc as is now possible with power. Time intervals to show can be customized by user.

  2. A comparison of athlete’s fitness against community age group athletes through histograms would be welcome. These stats keep you grounded :joy:

  3. Should it be possible to extract an athlete’s season best 1500m-5K best GAPs, or in terms of time, best paces in the ranges of 3min-20min, a distance-time relationship can be then plotted and displayed.

  4. The slope of the distance-time relationship is the athlete’s critical speed, CS. The y-intercept of the plot would be D’, the finite distance they can run above their CS. For newcomers, CS is the speed corresponding to the highest steady state metabolic rate that can be sustained solely by oxidative energy provision beyond which homeostasis is lost and exercise tolerance is limited.

  5. In the event that best paces from these time zones or distances do not exist, athlete’s best 10K estimation or PR maybe used as an approximation for CS. Maybe they could enter by clicking on pencil icon.

  6. Once you have CS and D’, all kinds of cool things can be done similar to use of power in cycling.

a. You can track the progression in CS with your training status, specific shoes worn etc… season-season.
b. Those training for marathon runs can track what % of CS they hold for duration of the run. Might be handy in pre-planning.
c. A decoupling score = %HRmax / %CS can be derived and available to chart in runs, depending on whether athlete is interested to see that or not.
d. Interval workouts can be designed to elicit set % depletion in D’ (slightly advanced topic so excluding it here)

And so on… and so forth.

Thanks again @david .


Tx for all of this!

Regarding implementation I am considering storing the time for a select set distances (400m, 800m, 5k, 10k + similar for imperial) for pace and GAP. Would this be sufficient? I do something similar for power but it is more fine grained (1…60s, 65, 70, …, 115, 120, 130, 140, …, 290, 300, 330, …, 570, 600, 660, 720, …).

1 Like

I think you can get pretty granular in running as well. If you look at the Master’s age grading calculator on, they’ve got a dizzying array of choices for metric and english distances.

For purposes of capturing athlete’s best PR’s, you could use all the
“road distances” as seen on that website (use the drop down list under distances).

For purposes of constructing the distance-time plot for CS computation, I typically only consider 1000m thru to 5K, and just the selection of distances that fit the 3min-20min domain.

If you put longer distances in in the mix, it tends to bring down the CS computed. I think the intent is to capture the critical pace corresponding to maximum metabolic steady state, so under-representing that estimation wouldn’t do a service to the user.

Here’s some science behind that last statement :

1 Like

Ok. I have:

  • 1km, 2km, … up to 500km
  • 400m, 800m, 1500m
  • 1mi, 2mi … up to 310mi
  • Quarter mile, half mile
  • 13.1 mi (half marathon)
  • 26.2 mi (full marathon)

All of these are stored in meters so half marathon etc. are also available for metric.

This is for computing and storing distance (in meters) vs time for activities. I only store the seconds values for each distance and not the distances so it is important to get the selected distances right and not miss any important ones.

1 Like

I think it would be good to have smaller gaps between distances in the 3-20 min range (or 1000m to 5 km).
One option would be to have laps on a track for that distance, so storing data in 400 m intervals from 400 m to 6 km (for the fastest runners).

This would be usefull if someone wants to implement some critical speed testing using the validated track test from Galbraith et al., wich includes time trials of 3600, 2400 and 1200m.

Or if people do “weird distance” track intervals, such as 1200 and 2400, wich I think is not that uncommon.

Also, I don’t know if you can include time (not distance) points as well. Some people use the Cooper test or the half Cooper (12 and 6 min), or the 3 min all out test with stryd.

Galbraith et al:

Tx. I will add those 400m steps up to 6km.

I am trying to simplify things by just going with distance for the curves. You can still read off anything from the timeline chart for a run.

I am making progress with this. This isn’t live yet but a preview of the best efforts chart for a run:

Screen Shot 2022-05-17 at 07.08.42


Looking good.

Looks good, if possible half marathon and marathon also or it did not show on the list because you dont have any time on that distance?

We can tell running is not David’s forte :smiley:

I like it! Looking forward to it. :slight_smile:

1 Like

Yes I have half and full marathon in the list. My wife hasn’t done a half in a while which is why it didn’t show up. @Coach_Ron She is the runner but doesn’t do it too seriously :slight_smile:

1 Like

I have got this working (not live yet) but one thing I would like to get right if possible is automatic selection of distances to use for the CS calc. Anyone know of any algorithm to do that?

Could you elaborate the issue a bit more?

I would like to build the CS model without having to ask for specific durations in the UI i.e. just using the pace curve and selected best efforts as inputs. I think I will just go with all the best efforts that fall inside 2m to 20m stretching outwards where a best effort falls on a flat part of the curve (i.e. where increasing the distance does not reduce speed). Hopefully that works ok!

It is live now. The circles indicate the points used for the CS model. I went with 1-2-3-4-5km but picking points >= 2 minutes and the last point >= 15 minutes.

I still need to add some blurbage about the model and a reference under the chart. Can anyone point be at the best paper to reference? Tx.


Not sure of an exact reference but I think Simon Marwood @simarwood on Twitter has done some work in this area

How about this one?

And a plug for my own article (sheepish grin). There’s some blurbage about CS in Section IX.