Ultra marathon finish time predictor

Pick your race or upload its GPX, add a recent result, and the model works out your time from the actual climbs and descents rather than the distance alone.

Race course

Not in the list? Upload its GPX instead.

Pick a recent race distance and enter your finish time. The shorter and more recent, the more accurate.

How it works

It reads the course, not just the distance

01

Per-segment pace prediction

The model predicts your pace for every climb, descent, and flat section based on the actual grade and your fatigue at that point in the race.
02

Confidence range, not a single number

You get a lower and upper bound alongside the headline finish time. Useful for planning aid station cutoffs and pacer hand-offs.
03

Trained on real ultra data

Not a Riegel formula extrapolation. The model learned from real ultra splits, including how pace slows after 50K, 80K and 100K.

The predictor looks at every stretch of your course, how steep it is and how far into the race you will be when you get there, and uses your recent race to know how fit you are. It learned how pace changes over a long day from real ultra results and from runners' own recorded runs.

How the model works

The predictor uses an XGBoost regression model trained on about 260,000 course segments from ultra race splits and runners' own recorded runs. For each segment of your GPX, the model takes terrain features (elevation gain per km, average and max grade, grade variability), distance completed, cumulative elevation gained so far, and a baseline fitness reference derived from your recent race result.

Your recent race time is converted to a flat-marathon-equivalent pace using the Riegel formula (1.06 exponent), then the model handles the projection forward, including how pace degrades with distance and terrain. The Riegel scaling is only used to normalise the reference; the actual prediction uses the trained model.

No model gets everything right. Nutrition, weather, sleep and a bad day are not in the GPX. The confidence range you get back reflects model uncertainty on similar courses in the training data, not how your day goes.

Why road-race calculators get ultras wrong

Most race time calculators online use the Riegel formula, which was worked out for distances up to the marathon. Past that it comes out too fast, because it knows nothing about climbing, technical ground or how tiredness builds over a long day. It is fine for going from a 10K to a marathon on the road, and not much use for a mountain 100K.

Predicting time for specific races

From your first 100K to UTMB

Predicting UTMB finish time

UTMB is 171 km with about 10,000 m of climbing across the Alps. Generic predictors miss the elevation entirely. Upload the UTMB course GPX (available on the official site) and the model will account for the major climbs (Col du Bonhomme, Grand Col Ferret, Tête aux Vents) and the descent dynamics that wreck quad strength late in the race.

Predicting Western States 100

Western States is 161 km with around 5,500 m of climbing and 7,000 m of descent, and almost all of that descent is runnable. The model handles this asymmetry: long runnable descents pull your average pace down in a way that mountainous out-and-backs don't. Heat is not in the GPX, so allow for the canyon heat on top of the prediction.

Predicting your first 100K

Course-aware prediction matters more for first-time ultra runners than for experienced ones. You don't yet know how much you slow down late in a long race. Upload the course, plug in a recent marathon or 50K, and use the per-segment splits to plan aid station ETAs. Aim for the upper end of the confidence range on race day, because first ultras almost always run slow.

FAQ

Common questions.

How accurate is an ultra race time predictor?+

Course-aware ML predictions are typically within 5–10% of finishing time for trained ultra runners on courses similar to those in the training data. Generic predictors that only use distance (like the Riegel formula) lose accuracy quickly past the marathon, because they ignore elevation, technical terrain and accumulated fatigue. This predictor uses the actual course profile from your GPX.

Does the predictor account for elevation gain?+

Yes. The underlying model is trained on per-segment terrain features (elevation gain per km, average and maximum grade, grade variability) alongside cumulative fatigue. It learns how pace degrades with terrain rather than applying a fixed elevation penalty like Naismith's rule.

What if I only have a recent marathon or 10K time?+

That works. The predictor uses Riegel-equivalent scaling (the 1.06 exponent validated across distances up to the marathon) to estimate your flat marathon-equivalent pace, then the ML model handles the projection out to ultra distance, including how your pace will degrade with terrain and fatigue. Shorter, more recent reference races usually produce better predictions than older or longer ones.

Why is my predicted ultra time slower than my marathon pace would suggest?+

There are two reasons. First, fatigue compounds non-linearly past the marathon, and the model learns this from real ultra split data. Second, the climbing on most ultras adds a lot of time that flat-road predictors ignore, so a 100K with 4,000 m of climbing takes much longer than 2.4 of your marathons would.

Can I predict my finish time without a recent race?+

You need something to anchor your fitness. If you don't have a recent race, use a recent hard time trial of 5 to 10K. The predictor only needs distance and time. Without a reference, any prediction would be a guess.

How was the underlying model trained?+

It's an XGBoost regressor trained on about 260,000 course segments, taken from ultra race splits and from runners' own recorded runs. It predicts per-kilometre pace from terrain (elevation, grade), distance completed, cumulative fatigue, and a baseline-fitness reference. In cross-validation on races held out of training, it predicts split pace to within about 1.2 min/km on average.

Does this work for road ultras or only trail?+

Both. The model takes terrain features from your GPX directly, so a flat 100K and a mountainous 100K get different predictions automatically.

Is my GPX file stored anywhere?+

No. This tool keeps nothing. Your GPX is processed in memory and discarded. No account, no upload history, no tracking of the file contents.

More from RunPact

The full app turns your prediction into a plan.

Get a training plan for this race