Our Methodology
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.
Philosophy: why ranges, and why conservative
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 well-recognised prediction error that widens as the D2/D1 ratio grows — particularly for recreational runners predicting marathon performance from shorter race results. 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 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.
Step 1: The Riegel formula
The starting point is the endurance fatigue formula published by Peter Riegel in 1977:
Riegel Formula
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. The exponent 1.06 is a population average — some runners convert shorter race times to marathons more effectively than others, and the formula cannot account for individual endurance-to-speed profiles. 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 typically 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.
Step 2: Training adjustments
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:
The research basis for weekly volume as a predictor of marathon performance is well established — Tanda (2011) showed it to be among the strongest training signals alongside average training pace. This model uses volume only; training pace is not an input. Two runners at the same weekly volume but very different average training paces will have different fitness profiles that this figure alone cannot distinguish.
| 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:
Long run length is widely recognised as a strong indicator of marathon-specific endurance. The specific adjustment percentages are calibrated estimates informed by published research on marathon-specific endurance preparation — the concept is well-established, but the specific values are our own.
| 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 long-run background. Small reward — the performance benefit of long runs has diminishing returns above 30–32 km for most recreational runners, and injury risk rises. |
Marathon experience - adjusts for the execution gap between fitness and results:
These are modest heuristics — first marathons carry well-documented execution uncertainty that experienced runners tend to handle better. The specific adjustment values are our own.
| 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:
These are our own practical estimates. The concept of grade-based energy cost is well-established, but the specific percentages are not derived from a particular study.
| 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 in place of the profile buckets: adjustment = (gain_metres ÷ 42,195) × 5.5. This is informed by the gradient energy cost relationships described in Minetti et al. (2002), who measured the metabolic cost of running at gradients from −45% to +45% on a treadmill. That work established that uphill running is substantially more costly than flat running, and that descents partially — but not fully — offset that additional cost due to eccentric muscle loading and braking. The multiplier of 5.5 is consistent with a commonly used rule of thumb in distance running of approximately 8–10 seconds of time cost per 100 metres of gain per kilometre of race distance. It is a practical approximation, not a value we can claim as precisely derived from the Minetti data, for two reasons: the study used elite mountain runners rather than recreational runners, and the descent credit is a judgement rather than a measured figure. There is no hard cap on the elevation adjustment — the overall ±20% cap on all combined adjustments acts as the backstop. An input warning is shown above 1,000m, which exceeds the gain of virtually every road marathon.
Limitations of this approach: the model uses total elevation gain only, not the distribution of climbs or their position on the course. 200m of gain spread evenly over 42km is energetically different from 200m concentrated in the final 10km. Where you know the actual profile but not the precise gain figure, the profile bucket (Flat / Rolling / Hilly) may be a more honest input than a precise-looking number whose distribution you don't know.
The ±20% cap
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.
Step 3: Heat penalty
Temperature penalties are not applied uniformly. Research by Ely et al. (2007, Med Sci Sports Exerc 39(3):487–493) 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% | Our own modelling choice. Below this temperature, applying a small penalty introduces noise rather than signal for recreational runners. Cold effects are smaller and more variable than heat effects, and individual preparation matters more than any formula can capture. |
| 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–25°C (70–77°F) | +7% | Consistent with the upper range of Ely et al. findings for recreational runners. The Ely data extends to approximately 25°C. |
| 25–30°C (77–86°F) | +10% | Beyond the range directly studied by Ely et al. A calibrated estimate consistent with the observed trend. Carries more uncertainty than the tiers above. |
| > 30°C (86°F) | +14% | Extrapolated from the trend established in the research. Ely et al. did not study temperatures above approximately 25°C in this context. Individual variation at extreme temperatures is substantially wider. Treat the output with significant caution. |
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 scale factor is calculated as: max(0.7, min(1.5, 0.7 + (pace in sec/km − 240) ÷ 200)). At 4:00/km (240 sec/km) the factor is 0.7×; at 6:30/km (390 sec/km) it is 1.45×. 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 is not modelled directly. In hot conditions, high humidity significantly amplifies heat stress by impairing sweat evaporation. If you are racing above 18°C, check the forecast and treat the temperature penalty as a lower bound if humidity is high.
A note on individual variation and safety
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.
Step 4: Confidence scoring and range width
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. The criteria for each level are our own practical choices about what constitutes reliable prediction inputs — not externally validated cutoffs.
| 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. The specific values (+6% and +3%) are calibration estimates — the rationale (larger D2/D1 ratio means more error) is well-founded, but the precise figures reflect practical judgement rather than values derived from a particular study.
Worked example
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):
Factor
Adj.
Running total
Riegel baseline from 10K 48:00T2 = 2880 × (42.195 ÷ 10)^1.06
—
3:33:12
10K source distance penaltyShort source adds +3% to midpoint; extrapolation is less reliable
+3%
3:39:42
Weekly mileage: 45 km/wkModerate volume; adds caution at the faster end
+4%
3:48:43
Longest long run: 26 kmAdequate, but below the typical peak run for a confident prediction
+3%
3:55:11
Marathon experience: 1 previousNeutral; some experience, no reward or penalty
0%
3:55:11
Temperature: 13°C, flat courseBelow the 15°C threshold; no penalty applied
0%
3:55:11
Total adjustment: +10% (within ±20% cap)Confidence: Medium. 10K source + moderate mileage → ±4% range width
+10%
3:55:11
Predicted range (Medium Confidence, ±4%)
3:46 — 4:04
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.
Step 6: Pacing strategy
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. As a rough guide: a Conservative goal with Low confidence sits near 9%; a Balanced goal with Medium confidence near 7%; an Ambitious goal with High confidence near 6%. The exact figure for your specific inputs is shown in the Planner's phase-one guidance. 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: warm conditions trigger effort-first and hydration guidance, significant elevation triggers effort-based advice over pace-based advice.
Step 7: Training Zones (VDOT)
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 (3rd edition) and is grounded in the relationship between oxygen cost and running velocity.
We calculate VDOT from your race using the oxygen cost formula:
VDOT Calculation
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.
The nine training zones
Zones are shown as ranges, not single paces. Easy running legitimately spans 62–70% 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 | 62–70% | Daniels VDOT framework, 3rd edition. The 70% upper bound matches Daniels' Table 2 E/L value; the 62% lower bound is our calibrated floor, reflecting that Easy running should feel genuinely conversational. |
| Steady State | 75–82% | Not a standard Daniels zone. The intensity band between Easy and Threshold is recognised across multiple endurance training frameworks. Aerobic development at purposeful effort. |
| Marathon Pace | 82% | Formula-derived, consistent with Daniels' Running Formula (3rd edition). The 3rd edition defines Marathon Pace at 82% of VO₂max — distinct from Threshold. If another tool shows Marathon Pace equal to Threshold, an older edition is likely being used. |
| Half Marathon Pace | 88–93% | Not a standard Daniels zone. Fills the gap between Threshold and Interval, which corresponds broadly to half marathon race effort. Labelled as such in the tool. |
| 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. |
The Half Marathon Pace zone fills the gap between Threshold (88%) and 10K Pace (93%) that exists in the standard Daniels framework. It is not a Daniels-defined zone — it reflects a practical training range for runners preparing specifically for the half marathon distance.
Warm-up / Cool-down / Time on Feet
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.
Training pace vs race pace
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.
What this model cannot do
Being explicit about limitations is as important as explaining the model. These are the things RunHonest cannot account for, regardless of what you input:
- Taper quality. A well-executed two-week taper can meaningfully improve performance. A missed taper, illness, or poor sleep in the final week can undo months of training. This isn't captured anywhere in the model.
- Hill distribution. The same 200m of elevation gain spread over 42km is very different from 200m concentrated in the final 10km. Total gain is a proxy. The model cannot know where the climbing falls.
- Fuelling execution. A runner who nails their nutrition strategy can outperform their prediction; one who doesn't can fall well short regardless of fitness. The tool does not account for this.
- Course wind. A strong headwind in the second half of a flat course can add more time than a rolling profile. Wind is not included in the model.
- Individual heat response. Heat acclimatisation, sweat rate, and core temperature regulation vary significantly between individuals. Our pace-adjusted heat penalty is a population average, not a personal one.
- The psychological final 10K. How a runner responds to discomfort, unexpected difficulty, or the temptation to ease off is one of the largest sources of race-day variance. No formula captures this.
- Race recency. A 10K run six weeks ago and one run yesterday are treated identically. Fitness changes. A recent race is a better signal than a distant one, and the model doesn't distinguish between them.
The right way to use these tools
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.