🔧 Mode
↔ Pace / Speed Conversion
⏱ Race Splits from Pace
🔮 Riegel Race Prediction
📤 Result
📊 Conversion Detail
- From
- {{ convertResult.formattedFrom }}
- To
- {{ convertResult.formattedTo }}
- Numeric value
- {{ convertResult.toValue }}
⏱ Projected Finish Times
| Distance | Time | Seconds |
|---|---|---|
| {{ row.label }} | {{ row.time }} | {{ row.seconds }} |
🔮 Prediction Detail
- Known time
- {{ predictResult.knownTime }}
- Predicted time
- {{ predictedTime }}
- Predicted seconds
- {{ predictResult.predictedSeconds }}
- Exponent applied
- {{ predictResult.exponent }}
Formula: T₂ = T₁ × (D₂ / D₁)1.06 — Pete Riegel, 1981. Exponents between 1.04 (elite, very even pacing) and 1.10 (less-trained, marathon-specific slowdown) typically bracket the realistic range.
ℹ️ About Running Pace and Speed Converter
What is running pace and speed?
Pace is the time taken to cover a unit of distance — most commonly expressed as minutes per kilometre (min/km) or minutes per mile (min/mi). Speed is the inverse: a unit of distance covered per unit of time — most commonly kilometres per hour (km/h) or miles per hour (mph). They are exact, lossless reciprocals of one another for a given runner.
This converter does three things from a single shared algorithm: convert any of the four units to any other, project even-pace finish times for the four standard race distances (5K, 10K, half marathon, marathon), and predict race times across distances using Pete Riegel's 1981 formula.
Common use cases
- Treadmill ↔ outdoor: convert a 9.0 mph treadmill reading to "6:40 /mi" or "4:08 /km" outdoors.
- Race-day pacing: at 5:00/km, your half-marathon finish is 1:45:29 and your marathon finish is 3:30:58.
- Goal time → goal pace: a sub-4-hour marathon is 5:41/km or 9:09/mi.
- Race prediction: a 25:00 5K predicts roughly 51:55 for 10K (Riegel exponent 1.06).
- International comparison: compare a US 7:30/mi runner to a European 4:39/km runner — same person.
Conversion identities
km/h = 60 / (min/km)andmin/km = 60 / (km/h).mph = 60 / (min/mi)andmin/mi = 60 / mph.min/mi = min/km × 1.609344;mph = km/h ÷ 1.609344.- The mile-to-kilometre factor
1.609344is exact (international yard agreement, 1959 — NIST SP 811 §B.8).
Standard race distances
- 5K = 5.000 km
- 10K = 10.000 km
- Half marathon = 21.0975 km (21,097.5 m — World Athletics / IAAF / USATF)
- Marathon = 42.195 km (42,195 m — set as the official Olympic distance in 1921)
The Riegel race-prediction formula
Pete Riegel's 1981 paper introduced a power-law relationship between race time and distance that has since become the standard cross-distance race predictor:
T2 = T1 × (D2 / D1) ^ 1.06
where
T1 = known race time
D1 = known race distance
D2 = target race distance
T2 = predicted race time
1.06 = empirical exponent (the "fatigue factor")
An exponent of 1.0 would mean the runner can hold pace forever; 1.06 captures the empirical slowdown over longer distances. Strava, Garmin, Runner's World, Hal Higdon, and most coaching tools use this formula. Tweak the exponent between 1.04 (elite, very even pacing) and 1.10 (less-trained, marathon-specific slowdown) to match your training profile.
Worked examples
-
Convert 5:00/km to min/mi:
5.0 × 1.609344 = 8.04672 →
8:03/mi (or 7.456 mph). - 5K splits at 5:00/km: 25:00 even.
- Marathon at 5:00/km: 42.195 × 5:00 = 3:30:58.
-
Predict 10K from 25:00 5K (Riegel 1.06):
25:00 × (10/5)^1.06 = 25:00 × 2.0845 =
52:06. -
Predict marathon from 1:45:00 half:
1:45:00 × (42.195/21.0975)^1.06 =
3:38:48.
References
-
Pete Riegel, "Athletic Records and Human Endurance", American Scientist, Vol. 69, No. 3,
May–June 1981, pp. 285–290 — original derivation of the
T2 = T1 × (D2/D1)^1.06formula: americanscientist.org. - World Athletics — official race distances (half marathon 21.0975 km, marathon 42.195 km).
- NIST SP 811 §B.8 — exact length factors (1 mi = 1.609344 km).
Calculations run in your browser. The API endpoint mirrors the identical TypeScript algorithm via the project's Node bridge — you'll get identical results from either path.
API Usage Example:
POST /api/tools/math/running-pace-converter
Content-Type: application/json
{
"operation": "convert",
"value": 5,
"fromUnit": "min_per_km",
"toUnit": "min_per_mi"
}