Home › Sports & Fitness › VDOT Training Paces Calculator
VDOT Training Paces Calculator
Estimates VDOT (Jack Daniels' pseudo-VO2max) from one race distance and time with the Daniels & Gilbert oxygen-cost and duration equations, then derives Easy, Marathon, Threshold, Interval and Repetition training paces per km and per mile.
When to use
You have a recent race or time-trial result and want Daniels-style training paces or a VDOT value to compare fitness over time.
Do not use when: You only want predicted finish times for other distances (use race-time-predictor), or you have a measured VO2max from a lab test (VDOT is a performance index, not a physiological measurement).
Formula
v = distance_m / t_min; VO2 = −4.60 + 0.182258·v + 0.000104·v²; %VO2max = 0.8 + 0.1894393·e^(−0.012778·t) + 0.2989558·e^(−0.1932605·t); VDOT = VO2 / %VO2max; training velocity for a fraction p: solve 0.000104·v² + 0.182258·v − (4.60 + p·VDOT) = 0, pace = 60000 / v seconds per km; zones Easy 59–74 %, Marathon 75–84 %, Threshold 83–88 %, Interval 95–100 %, Repetition 105–110 % of VDOT
This is Jack Daniels' VDOT method (Daniels & Gilbert 1979, Daniels' Running Formula). The zone percentages are the ranges Daniels gives for each intensity; his published tables apply small race-duration-specific adjustments, so paces here can differ from the book tables by a few seconds per km and are approximate.
Inputs
| Parameter | Type | Unit | Required | Description |
|---|---|---|---|---|
distance | number | yes | Distance of the race or time trial, in distance_unit (e.g. 5, 10, 21.0975, 42.195 km). Range: > 0, ≤ 500 | |
distance_unit | enum: km | mi | default km | Unit of the distance input. | |
time | string | yes | Finish time as h:mm:ss (3:30:00), mm:ss (25:00) or plain minutes. |
Outputs
| Output | Type | Unit | Description |
|---|---|---|---|
vdot | number | Daniels' VDOT = VO2 at race pace / fraction of VO2max sustainable for the race duration (ml/kg/min). | |
vo2_at_race_pace_ml_kg_min | number | ml/kg/min | −4.60 + 0.182258·v + 0.000104·v² with v in m/min. |
percent_vo2max_sustained | number | % | Fraction of VO2max a runner can hold for the race duration (Daniels & Gilbert curve). |
race_pace_per_km | string | min:sec/km | Average pace of the input race. |
easy_pace_per_km | string | min:sec/km | Easy / long-run pace range, slow to fast. |
marathon_pace_per_km | string | min:sec/km | Marathon-effort pace range. |
threshold_pace_per_km | string | min:sec/km | Tempo / cruise-interval pace range. |
interval_pace_per_km | string | min:sec/km | VO2max interval pace range (3–5 minute repeats). |
repetition_pace_per_km | string | min:sec/km | Fast repetition pace range (200–400 m repeats). |
training_paces | list | Per zone: name, percent_vo2max, pace_per_km, pace_per_mile (slow–fast) and speed_kmh at the midpoint. |
Example
5 km in 25:00: {"distance":5,"distance_unit":"km","time":"25:00"} → {"vdot":38.3,"vo2_at_race_pace_ml_kg_min":36,"percent_vo2max_sustained":94,"race_pace_per_km":"5:00","easy_pace_per_km":"7:14–6:03","marathon_pace_per_km":"5:59–5:28","threshold_pace_per_km":"5:31–5:16","interval_pace_per_km":"4:57–4:45","repetition_pace_per_km":"4:34–4:24"}
Marathon in 3:30:00: {"distance":42.195,"distance_unit":"km","time":"3:30:00"} → {"vdot":44.6,"percent_vo2max_sustained":81.3,"race_pace_per_km":"4:59","threshold_pace_per_km":"4:54–4:40","marathon_pace_per_km":"5:19–4:51"}
GET https://tttkmbb.com/api/v1/calculate/vdot-training-paces?distance=5&distance_unit=km&time=25%3A00
Machine access
- API:
GET https://tttkmbb.com/api/v1/calculate/vdot-training-paces(query parameters) orPOSTwith a JSON body{"inputs": {...}} - Schema: https://tttkmbb.com/api/v1/calculators/vdot-training-paces · Markdown: https://tttkmbb.com/fitness/vdot-training-paces.md · JSON definition: https://tttkmbb.com/fitness/vdot-training-paces.json
- MCP: server
https://tttkmbb.com/mcp, toolrun_calculator with calculator_id="vdot-training-paces" - OpenAPI operationId:
calculate_vdot_training_paces - Freshness:
static. Authentication: none. Rate limit: fair use (see rate limits).
Sources
FAQ
Is VDOT the same as VO2max?
No. VDOT is the VO2max a runner would have if their running economy matched Daniels' reference curve; it is a performance index in VO2max units. Lab VO2max can be several points higher or lower.
Which race gives the best VDOT?
A recent all-out race of 5 km to half marathon on a flat course. Short races (mile) overestimate endurance paces and a marathon slowed by fuelling or heat underestimates VDOT.
Why do these paces differ slightly from the book tables?
The tables round and adjust each zone for typical repetition lengths; this calculator applies the zone percentages directly to the VDOT equations, so expect differences of a few seconds per km.
Related calculators
- Race Time Predictor — Riegel-based finish-time predictions for other distances.
- Running Pace Calculator — Pace and splits for a distance and time.
- VO2 Max Calculator — Field-test estimates of physiological VO2max.