# Race time predictor

> Enter a recent race time and predict your 5K, 10K, half marathon, and marathon, with the pace to hold for each. A free running race predictor, no sign-up.

Enter one recent race and see what you're capable of at every distance, with the goal pace for each. Uses the Riegel model that coaches have relied on for decades.

Recent race distance

        1 mile
        5K
        10K
        Half marathon
        Marathon

      Your time (h:mm:ss)

## Your predicted times

| Distance | Predicted time | Pace / km | Pace / mile |
| --- | --- | --- | --- |

Estimated with the Riegel formula. Predictions assume you've trained for the distance. A marathon off 5K fitness will run slower than this suggests.

## How does a race time predictor work?

It scales a time you have run to other distances. The standard method, Peter Riegel's formula, is **T2 = T1 × (D2 ÷ D1)1.06**. Your predicted time grows faster than the distance because you cannot hold your 5K pace for a marathon. The longer the jump between distances, the more your endurance and fuelling decide the result.

4:405:005:205:405102142

Race distance (km)Pace per km

Pace slows as the race gets longer. A runner who holds **5:00/km** for 5K averages about **5:41/km** for a marathon. Riegel, [American Scientist 1981](https://ui.adsabs.harvard.edu/abs/1981AmSci..69..285R). Exponent 1.06.

## How accurate is the prediction?

The prediction is closest when the two distances are near each other and you are trained for both. Predicting a 10K from a 5K is within a percent or two. Predicting a marathon from a 5K assumes marathon endurance you may not have. Use the prediction to set a goal, then train for it and hold the pace on the day.

Set the predicted pace as your target in [Steady Pace](https://apps.apple.com/app/steady-pace/id6773682525) and hold it by ear with a tone that rises when you slow and falls when you speed up.

**Can I predict a marathon time from a half marathon?**

Yes, and it's one of the more reliable jumps, because a half is long enough to reflect real endurance. A common rule of thumb is to double your half time and add 10 to 20 minutes; this predictor does the same maths more precisely. Marathon fuelling and pacing still decide the day.

**Why is my predicted marathon time faster than I can run?**

Because the formula assumes you've built marathon endurance. If your training tops out at 10K, the model doesn't know that, and it will flatter you at the longer distances. Trust the shorter predictions more, and train the long runs to earn the rest.

**What is the Riegel formula?**

T2 = T1 × (D2 ÷ D1) raised to the power 1.06, where T is time and D is distance. The exponent 1.06 captures how pace slows as distance grows. Peter Riegel published it in 1977 and it's still the standard behind most race predictors.

(function(){
  var MI=1.609344, EXP=1.06;
  var rd=document.getElementById('rd'), rt=document.getElementById('rt');
  var TARGETS=[["5K",5],["10K",10],["Half marathon",21.0975],["Marathon",42.195],["Mile",1.609344]];
  function parseHMS(s){if(!s)return NaN;var p=s.trim().split(':').map(Number);if(p.some(isNaN))return NaN;
    if(p.length===3)return p[0]*3600+p[1]*60+p[2];if(p.length===2)return p[0]*60+p[1];if(p.length===1)return p[0];return NaN;}
  function ft(t){t=Math.round(t);var h=Math.floor(t/3600),m=Math.floor(t%3600/60),s=t%60;
    return (h?h+':':'')+(h?String(m).padStart(2,'0'):m)+':'+String(s).padStart(2,'0');}
  function fp(t){t=Math.round(t);return Math.floor(t/60)+':'+String(t%60).padStart(2,'0');}
  function calc(){
    var d1=parseFloat(rd.value), t1=parseHMS(rt.value);
    if(!(t1>0)){document.getElementById('predBox').hidden=true;return;}
    var rows='';
    TARGETS.forEach(function(x){
      var d2=x[1], t2=t1*Math.pow(d2/d1,EXP), pk=t2/d2;
      var self=Math.abs(d2-d1)'+x[0]+''+ft(t2)+''+fp(pk)+''+fp(pk*MI)+'';
    });
    document.getElementById('predBody').innerHTML=rows;
    document.getElementById('predBox').hidden=false;
  }
  rd.addEventListener('change',calc); rt.addEventListener('input',calc);
  rt.value='24:00'; calc();
})();


---
Source: https://steadypace.ca/race-time-predictor
App Store: https://apps.apple.com/app/steady-pace/id6773682525
