Marathon Predictor
Enter your recent race time and training volume. We apply research-informed adjustments to give you a realistic finish range, with honest context about what it means.
Average over the last 8–10 weeks.
Enter a recent race result to see your marathon prediction range, build a race plan, or find your training paces. We show our working, give you a range rather than a single number, and tell you where the model falls short.
Honest, context-aware tools for runners who want to understand their training. Not just a number.
Most running calculators output a single number with no context. Here's what we do differently.
No formula eliminates uncertainty. We output ranges instead of single numbers because presenting false precision is worse than admitting what we don't know.
— from the RunHonest methodology
Enter your recent race time and training volume. We apply research-informed adjustments to give you a realistic finish range, with honest context about what it means.
Average over the last 8–10 weeks.
Enter a recent race result to calculate your personal training zones using the VDOT methodology. Each zone is shown as a range and explained in full, including the important difference between a training pace and what you'd run on race day.
Combine your race result, training context, and race-day conditions to generate a realistic marathon target, pacing plan, confidence rating, and honest risk assessment.
Providing the exact gain gives a more specific estimate than the profile selection above.
Enter your average weekly running volume.
This page explains how RunHonest calculates its predictions: every adjustment factor, why each one exists, and what the model cannot do. We think you should be able to verify our maths, disagree with our choices, and understand your output without taking anything on faith.
Most running calculators output a single predicted time. We think that's misleading. The Riegel formula (the foundation of almost every marathon predictor) has a documented prediction error of ±5–10% even under good conditions. Presenting a single number implies certainty that the underlying maths don't support.
We output a range instead. The width of that range reflects how much confidence the available inputs give us. A half marathon run two weeks ago with strong training behind it earns a narrow range. A 5K run six months ago with light mileage earns a wide one. The range is honest about what we know and what we don't.
Our adjustments are also deliberately conservative. They add time more readily than they remove it. This is intentional. For recreational runners, the consequences of going out too fast are severe and irreversible. Going out slightly too slow costs a handful of minutes. The asymmetry in risk justifies asymmetry in the model.
The starting point is the endurance fatigue formula published by Peter Riegel in 1977:
T2 = T1 × (D2 ÷ D1) ^ 1.06
Where T1 is your known race time, D1 is the known distance, and D2 is the target distance. The exponent 1.06 encodes the empirical observation that performance degrades slightly as distance increases, so you can't simply scale a 5K pace to a marathon.
Riegel's formula gives a reasonable baseline for comparisons between distances of similar length. It becomes increasingly unreliable as the ratio D2/D1 grows. Predicting a marathon from a half marathon (ratio ≈ 2×) is reasonable. Predicting from a 5K (ratio ≈ 8.4×) introduces substantial error: the formula was not derived from data at that extrapolation distance, and it doesn't account for the fundamentally different physiological demands of the marathon.
The critical limitation of the raw formula: it assumes the runner is optimally trained for the target distance. A 5K or 10K time will almost always over-predict marathon performance for a runner who hasn't built the specific endurance the marathon requires. Our adjustments exist primarily to correct for this.
We apply additive fractional adjustments on top of the Riegel baseline. Positive values slow the prediction (the runner is likely less prepared than the formula assumes). Negative values reward a particularly strong training base.
Weekly mileage - one of the strongest proxies for marathon-specific endurance:
| Weekly volume | Adjustment | Reasoning |
|---|---|---|
| < 30 km/wk | +8% | High risk of underperforming Riegel. For a 4:00 target this adds ~19 minutes. |
| 30–50 km/wk | +4% | Moderate base. Completion is likely but the faster end of the range carries risk. |
| 50–70 km/wk | 0% | Solid aerobic base. Riegel baseline is treated as reliable. |
| 70–90 km/wk | −2% | High volume. Aerobic efficiency is well developed. |
| > 90 km/wk | −3% | Elite-adjacent training load. Small reward for deep aerobic base. |
Longest long run - a strong indicator of marathon-specific endurance and wall resistance:
| Longest run | Adjustment | Reasoning |
|---|---|---|
| < 20 km | +10% | Serious endurance gap. Wall risk is high regardless of weekly mileage. |
| 20–24 km | +7% | Below the typically recommended minimum for marathon preparation. |
| 24–28 km | +3% | Adequate but not ideal. Some endurance risk remains. |
| 28–32 km | 0% | Good preparation. Neutral adjustment. |
| > 32 km | −2% | Strong endurance preparation. Small reward. |
Marathon experience - adjusts for the execution gap between fitness and results:
| Experience | Adjustment | Reasoning |
|---|---|---|
| First marathon | +3% | First marathons frequently surface something unexpected; a buffer is included to account for the unknowns. |
| 1–2 completed | 0% | Neutral. Some race-specific knowledge without the reward of consistent execution. |
| 3+ completed | −1% | Small reward for demonstrated ability to execute a marathon plan. |
Course profile - gradient adds energy cost beyond pace:
| Profile | Adjustment | Reasoning |
|---|---|---|
| Flat | 0% | Baseline assumption. |
| Rolling | +2% | Cumulative effort premium over a flat course. |
| Hilly | +5% | Meaningful grade-based slowdown plus quad fatigue from descents. |
If you provide an exact elevation gain figure, we use a gradient-based energy cost model instead: adjustment ≈ (gain_metres ÷ 42,195) × 350, capped at 7%. This gives a more specific estimate than the profile buckets above when you know the actual course data, though both remain approximations.
All adjustments are summed and then capped at ±20% of the Riegel baseline before being applied. The cap exists because the adjustments are additive approximations. Stacking five independent factors compounds their individual errors. A runner with low mileage, a short long run, hot weather, a hilly course, and a 5K source race could theoretically reach a 37% total adjustment, which would produce a nonsensical output. The cap prevents the model from eating itself. If your inputs push against the cap, treat the output as a lower bound and approach the race with significant caution.
Temperature penalties are not applied uniformly. Research by Ely and colleagues established that slower marathon runners are disproportionately affected by heat. They spend substantially more time on course, accumulating heat stress across a longer duration. The model accounts for this by scaling the base penalty according to predicted pace.
We start with a base penalty for the temperature band, then multiply it by a pace-scaling factor:
| Temperature | Base penalty | Basis |
|---|---|---|
| ≤ 15°C (59°F) | 0% | Consistent with Ely et al. findings — effects below this threshold are small enough that applying a penalty would reduce accuracy more than it improves it. |
| 15–18°C (59–64°F) | +2% | Consistent with the lower range of Ely et al. findings for recreational runners. |
| 18–21°C (64–70°F) | +4% | Consistent with the mid range of Ely et al. findings for recreational runners. |
| 21–30°C (70–86°F) | +7% | Consistent with the upper range of Ely et al. findings for recreational runners. The Ely data extends to approximately 25°C; the 30°C boundary is a modelling choice rather than a directly evidenced threshold. |
| > 30°C (86°F) | +13% | Extrapolated from the trend established in the research. Ely et al. did not study temperatures above approximately 25°C in this context. This figure is a reasonable estimate based on the observed linear relationship, but it carries more uncertainty than the tiers above. Individual variation at extreme temperatures is also substantially wider. |
That base penalty is then scaled by a factor between 0.7× and 1.5×, derived from your predicted marathon pace. A faster runner receives a smaller multiplier; a slower runner receives a larger one. The practical effect is significant: in warm conditions, a faster marathoner and a slower one at the same temperature can experience meaningfully different levels of performance loss. The slower runner spends substantially more time on course, and heat stress compounds across that additional duration.
Humidity multiplies the temperature penalty further. Low humidity reduces it (sweat evaporates effectively); high humidity significantly amplifies it (sweat evaporation is impaired, reducing the body's ability to cool itself effectively). This is why 22°C and humid is substantially harder than 22°C and dry.
These penalties are population-level estimates derived from race results data. Individual response to heat varies significantly based on acclimatisation, fitness, age, body composition, and hydration status. The model cannot account for these factors. At higher temperatures in particular, the penalty applied to your prediction is a rough guide — not a precise figure. Individual response to extreme heat varies too widely for any formula to capture accurately. If you are entering a temperature above 25°C, treat the output with additional caution and check whether your race organisation has issued specific guidance on conditions.
We determine a confidence level based on the quality of the inputs provided, then use it to set the width of the predicted range. The thresholds below are the model's chosen boundaries. In practice, confidence shifts gradually rather than at sharp cut-offs, so treat the level as a guide rather than a precise classification:
| Level | Range width | When it applies |
|---|---|---|
| High | ±2% | Half marathon source + weekly volume ≥ 50 km + longest run ≥ 28 km + temperature ≤ 15°C + flat or rolling course |
| Medium | ±4% | Everything else (the most common case) |
| Low | ±8% | 5K source distance, OR weekly volume < 30 km, OR longest run < 24 km |
Shorter source distances also receive an additional penalty applied to the midpoint itself. A 5K adds +6% to the centre of the range, a 10K adds +3%, because the extrapolation is inherently less reliable at those distances, not just less certain.
A runner with a 10K PB of 48:00, running 45 km/week, longest run 26 km, one previous marathon, targeting a flat course in mild conditions (13°C):
Each row shows how one factor moves the prediction from the Riegel baseline.
Notice that the Riegel baseline of 3:33 (which many online calculators would report as the answer) becomes 3:55 as the centre of this runner's realistic range. The raw formula is not wrong; it just assumes a level of marathon-specific preparation this runner doesn't quite have. The range of 3:46–4:04 better represents what race day might actually look like.
The Marathon Planner generates a three-phase pacing strategy. The first-phase pace is set proportionally slower than the target. Between 6% and 9% depending on goal style and confidence, not a fixed number of seconds. This is the model's chosen approach, informed by the broad evidence that conservative early pacing improves marathon outcomes; it is not a single scientifically established figure for all runners. The proportional rather than absolute approach matters because a 4:00/km runner and a 6:30/km runner need very different absolute buffers to achieve the same relative conservative start.
The mid-race phase uses the target pace. Guidance text is generated dynamically based on conditions: heat triggers hydration-specific coaching, significant elevation triggers effort-based advice over pace-based advice.
VDOT is a single number representing your current running fitness, derived from a race result. It was developed by Jack Daniels in his book Daniels' Running Formula and is grounded in the relationship between oxygen cost and running velocity.
We calculate VDOT from your race using the oxygen cost formula:
VO₂ = 0.182258 × v + 0.000104 × v² − 4.60
%VO₂max = 0.8 + 0.1894393 × e^(−0.012778t) + 0.2989558 × e^(−0.1932605t)
VDOT = VO₂ ÷ %VO₂max
Where v is velocity in metres per minute and t is time in minutes. This formula is used solely to derive a VDOT value from a race result. Training paces are then looked up from a table rather than computed from the formula directly.
Training zones are derived from Jack Daniels' VDOT framework as described in Daniels' Running Formula (3rd edition). For VDOT 40 and above — covering the majority of recreational runners — zones are calculated directly from Daniels' published definitions: Easy spans 62–70% of VO₂max, Marathon Pace sits at 82% of VO₂max, and Threshold, Interval and Repetition paces are taken from Daniels' published training pace tables (Table 2), interpolated between integer VDOT values. For VDOT 30–39, Daniels' Table 2 provides Threshold and Repetition anchor points but the Easy and Marathon zone boundaries are interpolated from the published trend. For VDOT below 30 — runners whose 5K is slower than approximately 30:40 — Daniels' published tables do not extend to this fitness range; paces are extrapolated from the established trend and should be treated as approximate guidance rather than precise prescriptions.
Zones are shown as ranges, not single paces. Easy running legitimately spans 59–74% of vVO₂max. Showing a single Easy pace implies a runner should hit one number exactly, when anywhere across that band might be appropriate depending on terrain, fatigue, heat, and the day. False precision here can push runners to train too hard on recovery days.
| Zone | % vVO₂max | Basis |
|---|---|---|
| Easy / Recovery | 59–74% | Standard Daniels VDOT zone. Aerobic base building and recovery. |
| Steady State | 75–82% | Not a standard Daniels zone. Based on widely accepted coaching practice for the band between Easy and Threshold. Aerobic development at purposeful effort. |
| Lactate Threshold (LTP) | 83–88% | Standard Daniels Threshold zone. Approximately the pace you could sustain for 45–70 minutes in a race; individual variation is wide. |
| 10K Pace | 93–97% | VDOT-derived. Corresponds closely to your predicted 10K race effort, used in sessions targeting lactate clearance capacity. |
| 5K Pace | 97–100% | Daniels Interval zone, relabelled. Near-maximal aerobic effort. Develops VO₂max ceiling. |
| Short Reps | 105–110% | Daniels Repetition zone, relabelled. Exceeds race pace. Develops running economy and neuromuscular speed. |
There is an intentional gap between Lactate Threshold (88%) and 10K Pace (93%). This range (88–93% vVO₂max) corresponds broadly to half marathon race pace. It sits between the named zones because it doesn't fit cleanly into the Daniels framework — it's above sustained threshold but below true VO₂max work. Runners preparing specifically for the half marathon may find it useful to train in this range; a future Half Marathon Pace zone is under consideration.
This is approximate guidance, not a formula-derived zone. We calculate it as roughly 60–90 seconds per km slower than the slow end of your Easy zone, but this is a heuristic, not a VDOT output. Warm-up and cool-down running should be governed by feel: a very easy jog where you're simply moving. There is no fixed pace. For long time-on-feet runs, the same effort level applies. We show an approximate range purely for orientation, not prescription.
Several zones are named after race distances: 5K Pace, 10K Pace. This requires an important clarification. These zones represent the pace at which you'd race those distances, derived from your VDOT. But your training pace in a midweek session at "5K effort" will almost always be slower than your actual 5K race pace, sometimes meaningfully so.
Race day brings factors that a training session cannot replicate: a full taper, crowd energy, competitive arousal, and the fact that you're putting everything into a single maximal effort. In training, you're managing fatigue across a week of sessions and need to be able to recover and train again. The difference is most pronounced at 5K Pace and Short Reps, and least pronounced at Easy and Steady.
This is why the tool shows each zone with an explicit note about the training-vs-race-effort distinction. Use the zone paces as training targets, not as predictions of what you'll run on race day. For race day predictions, use the Marathon Predictor or Marathon Planner.
Being explicit about limitations is as important as explaining the model. These are the things RunHonest cannot account for, regardless of what you input:
For race predictions: use the predicted range as a planning anchor, not a target. Pick a goal that sits comfortably within it given how your training has actually felt. A range of 3:46–4:04 doesn't mean aim for 3:46. It means don't be surprised by anything in that window.
For training zones: your zones will shift as your fitness changes. Retesting after a key race or a solid training block gives you updated zones that reflect where you actually are. A zone table from six months ago may no longer be accurate, especially if you've been training consistently.
RunHonest is a set of research-informed tools for recreational runners. We built it because we believe runners deserve more than a single number with no context: more information, more clarity, and a clearer picture of what any prediction can and cannot tell them.
Most online marathon calculators are built around the same formula published in 1977. You enter a race time, you get a number, and you're expected to plan around it. There's no confidence level. No acknowledgement of what the formula doesn't know about you. No explanation of how the number was reached.
Runners act on those numbers. They set a target pace, head out on race day, and sometimes find the number didn't reflect the full picture: their training volume, their course, their conditions, their fuelling, or simply the gap between what a formula assumes and what their preparation actually looked like.
RunHonest exists to give runners more to work with. Every tool shows its working, gives a range rather than a single figure, states its confidence, and tells you what it can't know. We think runners are capable of handling that level of detail, and that they're better served by it.
RunHonest was built by a passionate recreational runner with years of training behind them. Not an elite athlete, but a runner who has worked with a coach, learned from training blocks that worked and ones that didn't, and understands the sport well.
That experience shapes everything about the site: the choice to show ranges rather than single numbers, the decision to publish the full methodology rather than hide it, the acknowledgement of what formulas can and cannot do. This is a tool built by someone who has used tools like this, and knows where they fall short.
We'll add more detail about the team here soon.
RunHonest provides research-informed estimates based on published formulas and widely accepted training principles. Every adjustment factor, formula, and limitation is documented on the .
We are not a coaching service. Our tools are not a substitute for working with a qualified running coach, and the outputs should not be treated as professional advice. A good coach brings knowledge of you as an individual that no formula can replicate. If you have access to a coach, their guidance takes precedence over anything RunHonest tells you.
We are also not a medical service. If you have any health conditions or concerns about running, please consult a qualified medical professional before acting on anything this site provides.
Every decision at RunHonest is tested against three questions: Is it well-founded? Does it genuinely serve the runner? Would we be proud of it? If the answer to any of those is no, we don't publish it.
In practice, that means:
Marathon Predictor - enter a recent race result and get a realistic marathon range, adjusted for your training volume, long run, course, and conditions. The output is a range with a stated confidence level, not a single number.
Marathon Planner - build a full pacing plan for a specific upcoming race. Takes in more detail than the Predictor: conditions, humidity, elevation gain, and goal style. Generates a three-phase pacing strategy with honest context about risk and what might cause the plan to diverge on race day.
Training Zones - seven VDOT-based training zones derived from a recent race result. Each zone is shown as a range, explained in full, and accompanied by a note about the difference between what you'd run in training and what you'd race at that distance.
We're always looking to improve. If you have thoughts on how the tools could be more useful, we'd be glad to hear from you.
You can reach us at [Insert email address]
RunHonest's tools are formula-based estimates grounded in published sports science research, including the Riegel endurance formula, Daniels' VDOT model, and research into the effects of heat on endurance performance. They work from the data you provide and the assumptions built into the models. They cannot account for your individual physiology, injury history, sleep, nutrition, how you respond to race-day conditions, or the many unpredictable factors that influence performance. A prediction from RunHonest may differ meaningfully from your actual race result. The full list of what our models cannot do is documented on the Methodology page. We strongly recommend reading it before making any significant training or racing decisions based on these tools.
RunHonest is built to respect your privacy. This page explains what data we collect, why, and what we do with it. We've written it in plain English rather than legal boilerplate. If we can't explain something clearly, we probably shouldn't be doing it.
Last updated: March 2026
RunHonest does not collect, store, or share any personal data you enter into the tools. All calculations happen entirely in your browser. Nothing you type is sent to any server. We do not have a database of users. We do not sell data. We do not run advertising.
Every tool on RunHonest (the Marathon Predictor, Marathon Planner, and Training Zones calculator) runs entirely client-side. This means all calculations happen in your browser on your device. When you enter a race time, training volume, or any other data, that information is processed locally and never transmitted anywhere. When you close the browser tab, it's gone.
You can verify this by disconnecting from the internet after the page loads. The tools will continue to work perfectly, because they don't communicate with any external service.
We use privacy-respecting analytics to understand how the site is used: which tools are most visited, where traffic comes from, and how the site performs. This helps us improve RunHonest over time.
Our analytics tool does not use cookies, does not track you across other websites, and does not collect personally identifiable information. It records anonymised data only: page views, referrer information, and general geographic region (country level). No individual user profiles are created.
If you use a browser-level ad or tracking blocker, analytics will not run for your visit. That's completely fine with us.
RunHonest does not use cookies for tracking or advertising. The only data stored locally on your device is what your browser caches for standard page performance, the same as any website you visit.
RunHonest loads fonts from Google Fonts. This means your browser makes a request to Google's servers to download the typefaces used on the site. Google may log this request. If you prefer to avoid this, a browser extension that blocks Google Fonts will prevent it. The site remains fully functional without the custom fonts.
We do not use any advertising networks, social media trackers, or third-party marketing tools.
Because we don't collect or store personal data, there is nothing to access, correct, or delete. If you have any questions about privacy on RunHonest, please contact us at [Insert email address].
If we ever change how we handle data (for example, if we add an email newsletter or user accounts) we will update this policy before those changes take effect and note the date of the update at the top of this page.
Questions about this policy: [Insert email address]
These terms explain what RunHonest is, what it isn't, and the basis on which you use it. Please read them before relying on any outputs from our tools.
Last updated: March 2026
RunHonest provides free, browser-based tools that generate estimated marathon finish times, pacing strategies, and training pace zones based on data you provide. These outputs are produced by mathematical formulas and rule-based models, grounded in published sports science research.
All outputs are estimates only. They are intended to inform your thinking and planning, not to replace professional judgement. The accuracy of any output depends entirely on the accuracy of the data you enter, and on whether the assumptions built into our models apply to your individual situation.
Not a substitute for professional coaching. RunHonest's tools are not a replacement for working with a qualified running coach. A coach has knowledge of you as an individual: your injury history, training history, physiological characteristics, and how you respond to different types of work. No formula can replicate that. If you have access to a coach, their guidance takes precedence over anything RunHonest produces.
Not medical advice. RunHonest does not provide medical advice, diagnosis, or treatment. Nothing on this site should be construed as medical guidance. If you have any health conditions, injuries, or medical concerns, please consult a qualified medical professional before undertaking any running training or racing programme.
Predictions may be wrong. Marathon performance depends on factors our models cannot measure: taper quality, sleep, fuelling execution, race-day conditions, psychological state, and many others. A prediction from RunHonest may differ significantly from your actual race result. We document our limitations in full on the Methodology page. Please read it.
Pacing guidance is a starting point, not a prescription. The Marathon Planner generates pacing suggestions based on your inputs. These are a structured starting point for planning, not a professional pacing prescription. Always listen to your body on race day. If you feel genuinely unwell (not just tired, but confused, dizzy, or experiencing chest pain) stop and seek help from race officials or medical staff immediately. No finish time is worth your health.
By using RunHonest, you acknowledge that:
The content, tools, methodology, and design of RunHonest are the intellectual property of RunHonest. You are welcome to use the tools for personal, non-commercial purposes. You may not reproduce, redistribute, or build commercial products based on RunHonest's content or methodology without written permission.
We may update these terms as the site develops. The date at the top of this page will reflect the most recent update. Continued use of the site after any changes constitutes acceptance of the updated terms.
These terms are governed by the laws of England and Wales. Any disputes will be subject to the exclusive jurisdiction of the courts of England and Wales.
Questions about these terms: [Insert email address]
RunHonest gives you honest estimates based on published formulas. We show our working, state our confidence, and document what we can't do. These are estimates, not professional coaching, not medical advice, and not a guarantee of any outcome. Use them as one informed input into your planning, not as the final word on what you should do.