/docs · Vetta Trainer
Race time predictions
Vetta projects your times at 5K, 10K, half, marathon and ultras from your current VDOT. Here's exactly how, which model we use, and where the prediction loses precision.
VDOT source
The engine uses the current VDOT, defined as the median of the top-3 VDOTs in your last 28 quality activities with clean data.
Each individual VDOT comes from Daniels' formula: VO2 = 0.000104 × v² + 0.182258 × v - 4.60, with v in m/min. We solve the quadratic for vVO2max and derive VDOT.
VDOT → race time mapping
Each distance has a coefficient that links VDOT to time. 5K ~98% vVO2max; 10K ~92%; HM ~88%; M ~84%; 50K ~78%; 100K ~70%.
Tables from Daniels' Running Formula (2014), complemented with elite data for long distances (Magness, 2018).
Altitude correction
If the race is > 5000 ft (1500 m), the time is penalized. Model: for every 3000 ft (1000 m) above sea level, aerobic performance drops 6-10% (higher = worse).
For somebody training in Veladero (13800 ft / 4200 m), this correction is critical. Without it, projected times would be 8-15 min faster than reality.
Where prediction loses precision
Trail with lots of vert: prediction is less reliable when D+ > 3300 ft (1000 m). We use GAP when trail data is available, but for UTMB/MIUT-style events, prediction can be off ±10%.
No recent PR (< 21 days): VDOT may be stale. Vetta flags it as "low confidence" in the dashboard.
Very advanced athletes (VDOT > 70): Daniels' formula was built for amateurs. For sub-elite the predictions tend to be conservative.
Public API
GET /api/v1/predict?vdot=50&distancia_km=42&desnivel_pos_m=200&altitud_media_m=0&tipo=calle
Returns seconds, formatted, pace_s_per_km, pace_formatted, breakdown.
Public calculator
/herramientas/vdot computes your VDOT from a race result and projects times for 5K-50K with altitude correction.