← Back to frugalnick.ca

🏃 VDOT & Runner Percentile

Enter a personal best to get your VDOT fitness score, predicted race times, training paces, and where you stack up against real runner distributions.

hh
mm
ss
Sources & methodology

VDOT formula. The VDOT score and all training-pace and race-time predictions are computed from Jack Daniels' equations (Daniels' Running Formula, Human Kinetics):

VO₂     = −4.60 + 0.182258·v + 0.000104·v²      (v = speed, m/min)
%VO₂max = 0.8 + 0.1894393·e^−0.012778t + 0.2989558·e^−0.1932605t   (t = min)
VDOT    = VO₂ / %VO₂max

Equivalent race times are the analytical inverse of this equation (bisection on time); training paces invert the VO₂ polynomial at each zone's target fraction of VO₂max (Easy 0.63/0.73, Threshold 0.88, Interval 0.97), with Marathon pace derived from the predicted marathon time and Repetition pace 15–20 s/km faster than Interval. This reproduces the published VDOT tables.

Reference implementations verified against:

  • tlgs/vdot — table generator (canonical bisection & polynomial-inversion method).
  • st3v/running-formulas-mcp — published VDOT test vectors (5K/25:00 = 38.3, 1500m/4:00 = 70.1, marathon/2:00 = 86.0, etc.).
  • VDOT O₂ — the original online VDOT calculator.

Percentile distributions — “All runners” baseline are transcribed verbatim from:

  • Andersen, J. J. Compare Running Finish Times — Runner's Percentile Calculator. RunRepeat, 2017. Based on ~35 million race results from 28,000+ races (1996–2016), elites excluded. runrepeat.com

Distributions cover 5K, 10K, half-marathon and marathon, for all-runners / men / women. Percentiles are interpolated linearly between the published cutoffs (P1, P10, P20 … P90); a runner's rank is the complement of the grid percentile (rank = 100 − grid percentile), i.e. the % of the field they beat. Outside the measured range the rank is extrapolated along the nearest segment's slope and clamped to [0.1, 99.9]. No data is fabricated for unsupported distances (1500 m, mile, 3K) or age groups — those show a note instead.

Percentile distributions — “World Marathon Majors” baseline are computed from:

  • Rock, B. 2024 Marathon Results. Kaggle, 2025. 596,672 individual marathon finishes (gender, age group, finish time in seconds) from the Abbott World Marathon Majors and other large races (NYC, Berlin, London, Chicago, Boston, LA, …). kaggle.com

For each gender × age-group cohort, finish-time cutoffs are computed by linear interpolation over the sorted finish times at a dense percentile grid (P0.1, P0.5, P1 … P99.9). Cohorts with fewer than 200 finishers are dropped (a P99 from n=40 is noise). This field is faster and more trained than the general recreational population — at the front it runs ~16 min quicker than the RunRepeat P10 and it also carries a longer slow tail, so the two baselines are not interchangeable. These are raw empirical percentiles for the World-Majors entrant population, not a normalized estimate of all marathoners; the two numbers are shown separately so each can be read for what it is.

Age-group and sex×age percentile breakdowns are not available in RunRepeat's static tables; for headline averages see the State of Running (2019) and Marathon Performance Across Nations studies.