ForHosting KIT · Health & fitness

Riegel race time predictor

A 10K run in 40:00 predicts 1:28:15 for a half marathon with Riegel's formula and its classic 1.06 exponent. Enter one race you have run and the distance you are planning for to get a target finish time. Free in your browser.

  • Free
  • Runs in your browser
  • No sign-up
  • Your data stays on your device
Use it from WebAPIEmailTelegramApp soon
If you enter
Known distance
10
Known time
2,400
Target distance
21.0975
You get
Predicted time
5,295.36739456
Predicted time seconds
5,295.36739456
Predicted time formatted
1:28:15
Known time seconds
2,400

Riegel's formula is the classic endurance scaling rule runners use to turn one race result into a realistic goal for another distance. Given a known distance D1, a known finish time T1, and a target distance D2, the predicted time is T2 equals T1 times the ratio D2 over D1 raised to the power one point zero six. The exponent slightly above one encodes how average pace slows as races lengthen, so a ten-kilometer personal best does not naively double into a twenty-kilometer projection. This calculator applies that closed-form prediction exactly, returns seconds plus a human-readable clock string, and rejects non-positive distances or times so invalid training logs never produce a false goal. Use it to plan half marathons from ten-kilometer races, check marathon readiness from half-marathon results, or build coaching tools that need a transparent, auditable projection.

How Riegel race-time prediction works

Start from one completed race with a reliable measured distance and a chip or gun finish time you trust. Convert that finish into seconds so arithmetic stays unit-clean: a forty-minute ten-kilometer equals two thousand four hundred seconds, and a ninety-minute half marathon equals five thousand four hundred seconds. Choose the distance you want to project next, using the same length unit as the known race—kilometers with kilometers, miles with miles, or meters with meters.

Riegel's formula then sets T2 equal to T1 multiplied by the quantity D2 divided by D1, all raised to the classic endurance exponent one point zero six. When the target is longer than the known race the ratio exceeds one and the predicted time grows slightly faster than linear distance scaling, which matches the common observation that marathon pace is slower than half-marathon pace even for well-trained athletes.

When the target is shorter the ratio is less than one and the formula predicts a faster absolute time with a slightly quicker average pace, still without inventing new training data. The exponent is fixed at one point zero six for reproducibility; this capability does not fit custom exponents from multi-race histories. Non-positive distances or times fail early because a zero or negative length or duration cannot represent a real race result.

Missing fields and non-finite numbers also fail with invalid input rather than silently coercing to zero. After the power is evaluated the response cleans floating-point noise to stable significant digits, formats both the known and predicted durations as clock strings, and reports the distance ratio and per-unit paces so coaches can audit the intermediate steps by hand.

Where Riegel race-time predictors show up in real work

Running coaches and endurance programs constantly translate a recent five-kilometer or ten-kilometer result into half-marathon and marathon goal ranges, and a single trusted oracle that returns seconds plus a readable clock string speeds plan writing and athlete conversations. Race directors and event apps that show projected finish bands for pacing groups need a documented formula athletes can recompute by hand rather than a black-box machine-learning estimate. Data engineers preparing synthetic race datasets for pacing dashboards need deterministic finish labels from known distances and times without network calls or model drift.

If you later need pure pace unit conversion among minutes per kilometer and miles per hour, age-graded scoring, or multi-race custom exponent fitting, treat those as separate search intents and landings rather than overloading this Riegel race time predictor page. Always frame results as educational planning estimates, not medical or performance guarantees; course hills, weather, fueling, and fitness changes can move real finishes well away from any closed-form projection.

Training goal setting

Turn a recent 5K or 10K finish into a transparent half-marathon or marathon time goal with Riegel scaling for coaching plans.

Classroom endurance math

Generate deterministic Riegel projections for sports-science homework so teachers and auto-graders share one ground truth.

What is Riegel's formula?

T2 = T1 × (D2/D1)^1.06, where T1 is your known finish time, D1 the known race distance, and D2 the target distance. The 1.06 exponent models how pace slows as distance grows.

What happens if a distance or time is zero or negative?

Non-positive distances and times are rejected because they cannot represent a real race result for Riegel prediction.

What does it cost?

The browser tool is free and runs locally.

What half marathon time does a 40-minute 10K predict?

1:28:15. The half marathon is 2.10975 times as long as the 10K, and raising that ratio to the power 1.06 stretches the 40 minutes a little more than the distance alone would.

Can I use miles instead of kilometres?

Yes, any length unit works, as long as the race you ran and the target race use the same one: miles with miles, kilometres with kilometres or metres with metres.

Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.

POSThttps://api.kit.forhosting.com/health/race-time-predictor

Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.

curl -X POST https://api.kit.forhosting.com/health/race-time-predictor \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"known_distance":10,"known_time":2400,"target_distance":21.0975}'
{
  "known_distance": 10,
  "known_time": 2400,
  "target_distance": 21.0975
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "health.race_time_predictor",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

How Riegel race-time prediction works

The pipeline is deterministic floating-point arithmetic only: no random seeds, no wall-clock timestamps, no network calls, and no model drift, so identical known distance, known time, and target distance always produce identical JSON.

What you send and what you get back

Send three fields. All three fields are required. Classic smoke checks include a ten-kilometer race in two thousand four hundred seconds projected to a half marathon at twenty-one point zero nine seven five kilometers, and a five-kilometer race in one thousand two hundred seconds projected to ten kilometers; both produce stable positive predicted times suitable for answer keys. Known_distance is the length of the completed race and must be a finite number strictly greater than zero; aliases distance1, d1, and known_d are accepted. Known_time is the finish time of that race in seconds and must also be finite and positive; aliases time1, t1, known_time_seconds, and seconds are accepted. Target_distance is the race length you want to predict, in the same unit as known_distance, and must be finite and positive; aliases distance2, d2, and target_d are accepted. Missing fields, non-numeric strings, NaN, Infinity, zero, and negative values fail with invalid_input and are not charged. On success the response returns predicted_time and predicted_time_seconds as the same cleaned second count, predicted_time_formatted as an H:MM:SS or M:SS string, the cleaned known_distance, known_time, known_time_seconds, known_time_formatted, and target_distance, the distance_ratio D2 over D1, the fixed exponent one point zero six, pace_known_sec_per_unit and pace_predicted_sec_per_unit, formula T2 equals T1 times open parenthesis D2 over D1 close parenthesis to the one point zero six, method riegel, unit_time seconds, and unit_distance same_as_input. Pricing for successful API calls is the published base of $0.002 per item; validation failures do not consume prepaid balance. Convert hours and minutes to total seconds before calling if your forms collect clock strings, because the published arithmetic assumes known_time in seconds only.

Where Riegel race-time predictors show up in real work

Sports-science classrooms still teach Riegel scaling next to VDOT tables and critical-speed models, so matching hand arithmetic to API output matters more than asymptotic cost. Because this capability is a pure parse engine, API pricing is the published base of $0.002 per successful item and failed validation does not consume balance.

App and API fixtures

Bulk-produce golden predicted finish JSON for race apps and regression tests without network calls or non-deterministic models.

What units should I use?

Use any length unit as long as known_distance and target_distance share it (km, miles, or meters). known_time must be total finish time in seconds.

How do I format the input?

Send known_distance and target_distance as positive numbers in the same unit, and known_time as positive seconds (e.g. 2400 for a 40-minute race). JSON numbers or numeric strings are accepted.

Read the full KIT documentation →