# Race Time Predictor

> Predicts finish times for 5 km, 10 km, half marathon and marathon from one known race result using Riegel's endurance formula T2 = T1 × (D2/D1)^1.06, with the corresponding paces.

- Calculator id: `race-time-predictor` · Category: Sports & Fitness (`fitness`) · Tool name: `predict_race_time`
- Canonical page: https://tttkmbb.com/fitness/race-time-predictor · This document: https://tttkmbb.com/fitness/race-time-predictor.md · JSON definition: https://tttkmbb.com/fitness/race-time-predictor.json

## Purpose

Predicts finish times for 5 km, 10 km, half marathon and marathon from one known race result using Riegel's endurance formula T2 = T1 × (D2/D1)^1.06, with the corresponding paces.

**Use when:** You have a recent race time (or time trial) and want equivalent-effort predictions for other standard distances, e.g. to set a marathon goal from a half-marathon result.

**Do not use when:** You only need the pace or constant-pace splits of a run (use running-pace), the known effort was a trail or very hilly race, or it was shorter than about 1.5 km or longer than a marathon.

## Input

| Parameter | Type | Unit | Required | Description |
| --- | --- | --- | --- | --- |
| `distance` | number |  | required | Distance of the race you already ran, in distance_unit. (> 0, max 500) |
| `distance_unit` | enum: km \| mi |  | optional, default "km" | Unit of the distance input. |
| `time` | string |  | required | Finish time of the known race as h:mm:ss, mm:ss or minutes. |
| `exponent` | number |  | optional, default 1.06 | Riegel's exponent; 1.06 fits elite and well-trained runners, 1.07–1.10 is often more realistic for recreational marathoners. (min 1, max 1.3) |

## Output

| Field | Type | Unit | Description |
| --- | --- | --- | --- |
| `predicted_5k` | string | h:mm:ss | Predicted 5 km time. |
| `predicted_10k` | string | h:mm:ss | Predicted 10 km time. |
| `predicted_half_marathon` | string | h:mm:ss | Predicted time for 21.0975 km. |
| `predicted_marathon` | string | h:mm:ss | Predicted time for 42.195 km. |
| `predictions` | list |  | Per race: distance_km, time (h:mm:ss), pace_min_per_km and pace_min_per_mile. |

## Formula

`T2 = T1 × (D2 / D1)^exponent, exponent = 1.06 (Riegel 1981); pace = T2 / D2`

Riegel's power law was fitted to world-record performances from about 3.5 minutes to 4 hours and assumes comparable training for the target distance. Predictions from short races to the marathon are usually optimistic for non-elite runners.

## Data Sources

- Riegel PS (1981) Athletic records and human endurance, American Scientist 69:285-290 — https://pubmed.ncbi.nlm.nih.gov/7235349/ (peer_reviewed, retrieved 2026-09-23)
- World Athletics – Book of Rules (Technical Rules: road race distances 5 km, 10 km, half marathon 21.0975 km, marathon 42.195 km) — https://worldathletics.org/about-iaaf/documents/book-of-rules (standard, retrieved 2026-09-23)

Data freshness: `static`. Deterministic formula with fixed constants; results never go stale. Inputs supplied by the caller determine the output.

## API

- `GET https://tttkmbb.com/api/v1/calculate/race-time-predictor?distance=…&time=…`
- `POST https://tttkmbb.com/api/v1/calculate/race-time-predictor` with JSON body `{"inputs": {…}}`
- Response: unified envelope (`success`, `request`, `result.values`, `result.units`, `sources`, `freshness`, `timestamp`, `next_actions`, `links`); see https://tttkmbb.com/docs/response-format.md
- Schema: https://tttkmbb.com/api/v1/calculators/race-time-predictor · OpenAPI operationId `predict_race_time` in https://tttkmbb.com/openapi.json
- Authentication: none. Rate limit: fair use, see https://tttkmbb.com/docs/rate-limits.md.

## MCP

- Server: `https://tttkmbb.com/mcp` (Streamable HTTP, JSON-RPC 2.0, no auth)
- Tool:  `run_calculator` with `{"calculator_id": "race-time-predictor", "inputs": {…}}`

## Example

- 10 km in 50:00: inputs `{"distance":10,"distance_unit":"km","time":"50:00"}` → `{"predicted_5k":"0:23:59","predicted_10k":"0:50:00","predicted_half_marathon":"1:50:19","predicted_marathon":"3:50:01"}`
- Half marathon in 1:45:00: inputs `{"distance":21.0975,"distance_unit":"km","time":"1:45:00"}` → `{"predicted_5k":"0:22:50","predicted_10k":"0:47:35","predicted_marathon":"3:38:55"}`

```
GET https://tttkmbb.com/api/v1/calculate/race-time-predictor?distance=10&distance_unit=km&time=50%3A00
```

## Limitations

You only need the pace or constant-pace splits of a run (use running-pace), the known effort was a trail or very hilly race, or it was shorter than about 1.5 km or longer than a marathon. Riegel's power law was fitted to world-record performances from about 3.5 minutes to 4 hours and assumes comparable training for the target distance. Predictions from short races to the marathon are usually optimistic for non-elite runners. All values are computed from the formula above; no measurement or live data is involved.

## FAQ

**Why 1.06?**

Riegel found that record times scale with distance to the power 1.06 for running (the 'fatigue factor'): doubling the distance takes about 2.085 times as long, i.e. pace slows by roughly 4 % per doubling.

**How accurate is the prediction?**

Typically within a few percent between neighbouring distances (10 km ↔ half marathon). Marathon predictions from a 5 km are often 5–10 % too fast unless mileage is high; raising the exponent to 1.07–1.10 compensates.

## Related

- [Running Pace Calculator](https://tttkmbb.com/fitness/running-pace.md) — Constant-pace splits and speed for a given distance and time.
- [VO2 Max Calculator](https://tttkmbb.com/fitness/vo2-max.md) — Estimate aerobic capacity from a 12-minute run.
