Projected Finish
{{ finishReadable }}
Crosses the line around {{ finish_time_local }}
{{ distanceBadge }} {{ targetEffortBadge }} {{ splitBadge }} {{ adjustmentBadge }}
Avg pace {{ averagePaceDisplay }} Avg speed {{ averageSpeedDisplay }}
min sec
Uses your local timezone.
{{ fatigue_percent }}%
0% keeps pace flat; +10% slows ~5% on average.
stops
sec each
Metric Value Copy
{{ row.label }} {{ row.value }}
Split Distance Segment Cumulative Copy
{{ row.label }} {{ row.distance }} {{ row.segment }} {{ row.cumulative }}

                    
:

Introduction:

Race finish time is the projected clock time it takes you to cover a set distance at a chosen effort, and this calculator turns your pace or speed into a practical prediction. It lets you map a distance goal to a likely finish window so you can set expectations for race day and training sessions.

You provide the race distance, decide whether to think in pace or in average speed, and optionally add trends such as fading effort or negative splits. The tool responds with a finish time estimate, average pace and speed summaries, and a table of splits that shows where you will be on course as the clock advances.

For a typical scenario you might plug in a marathon distance, a steady training pace, and a small positive fade to mimic late race fatigue. You can also add scheduled drink or walk breaks, which stretch the projection a little while still keeping the moving pace clear.

The projection depends on holding the same conditions you have trained for, so real races with heat, hills or crowded starts may bring you in faster or slower than the estimate. Use consistent units between sessions and rerun the same scenario when fitness changes to see how much buffer you have against a target time.

Think of the results as a planning guide rather than a guarantee and treat them as another training data point, not a promise. Inputs stay in the page while you work so you can adjust or clear them whenever you like.

Technical Details:

Race pacing calculations start from three quantities: total distance, moving speed, and any pauses where you are not moving. Distance is handled in kilometres and miles while speed is treated either as pace per unit distance or as constant speed in kilometres per hour or miles per hour.

For pure running time, the calculator converts all distances to metres and expresses speed in metres per second. Base moving time is total distance in metres divided by moving speed, and then fatigue and stop adjustments are layered on top to reach the projected finish time.

Effort trend is represented as a percentage that is clamped between -40 and 40 and distributed across the course so that early segments stay close to the base pace and later segments absorb more of the change. The fatigue multiplier equals one plus the effort percentage divided by 200, and total stop time is the number of planned stops multiplied by the duration of each stop in seconds.

For splits, the tool slices the race into equal checkpoints of either one kilometre or one mile. Each segment inherits a slightly different pace based on its relative position along the route, and any planned stops are inserted at evenly spaced markers between start and finish, which adds discrete blocks of non moving time.

Average pace and speed are derived from the adjusted finish time rather than from the initial input alone, so fatigue and stops are fully reflected in the summary metrics. Line charts plot segment duration against distance and cumulative distance against time using the same split data that drives the tables, downloads and JSON payload.

T base = D v M f = 1 + f 200 T stop = N stop × t stop T finish = T base × M f + T stop
Symbols and units used in race finish time calculation
Symbol Meaning Unit/Datatype Source
D Total race distance converted to metres m Input (km or mi)
v Base moving speed m/s Derived from pace or speed
Tbase Base moving time ignoring fatigue and stops s Derived
f Effort trend percentage % Input, clamped to -40 to 40
Mf Fatigue multiplier applied to base time dimensionless Derived
Nstop Number of planned stops integer Input, clamped to 0 or more
tstop Duration per stop s Input
Tstop Total non moving time from all stops s Derived
Tfinish Projected finish time s Derived
dsplit Distance between split checkpoints m Derived from split unit
Tseg Segment time including embedded stops s Derived
Tcum Cumulative time at end of split s Derived

Worked example: For a 10 km race with target pace 5:00 per km, effort trend 10 percent, and no planned stops:

T base = 10 × 1000 1000 300 3000  s
M f = 1 + 10 200 = 1.05
T finish = 3000 × 1.05 + 0 = 3150  s

This corresponds to about 52 min 30 s, so the projection is slightly slower than the original 5:00 per km target pace.

Segment splits reuse the same core calculations, adjusting each segment by its mid-course fraction so that positive effort trends slow later splits and negative values create faster closing splits. The final row in the split table is relabelled as “Finish” to highlight the end of the course.

Time strings are formatted as m:ss for events under one hour and h:mm:ss when needed, with values rounded to the nearest second. JSON output stores finish seconds as a whole number, so it may differ by one second from intermediate calculations that keep more precision.

Distances are internally managed in metres using 1000 m per kilometre and 1609.344 m per mile. Conversions between kilometres and miles apply the same factors in both directions, and visible distances are rounded to two or three decimal places depending on length.

When the shared number formatter is not available, the fallback uses standard JavaScript rounding with a dot decimal separator for fractional values. Pace displays clamp seconds to the range 0 to 59, and minutes are floored at zero or higher to prevent negative time inputs.

Validation rules for race finish time inputs
Field Type Min Max Step/Pattern Error handling
Distance number 0.001 none 0.001 Negative or invalid values reset to 0
Pace minutes integer 0 none 1 Non numeric values reset to 0 and floored
Pace seconds integer 0 59 1 Values are clamped into 0–59
Speed number 0.1 none 0.1 Negative or invalid values reset to 0
Effort trend integer -40 40 1 Slider and manual input are clamped
Stop count integer 0 none 1 Negative or non integer values are floored to 0
Stop duration number 0 none 5 Invalid values reset to 0 and clamped to 0 or more
Start time datetime-local none none ISO local string Invalid or empty values fall back to current time
Input and output formats for race finish time calculator
Input Accepted families Output Encoding/precision Rounding
Distance and effort fields Numeric values, km/mi, min/km, min/mile, km/h, mph Finish time, average pace and speed, splits Seconds and metres in calculations Time rounded to nearest second
Metrics and splits export Table rows CSV and DOCX documents Text values with numeric seconds where included CSV uses preformatted strings and numeric fields
Charts Split points with distance and time PNG, WebP, JPEG images; CSV Data URLs converted per image type Minutes rounded to three decimal places in CSV
JSON view Current inputs and computed splits Pretty printed JSON text Inputs, adjustments, summary, and split arrays Finish seconds rounded, other fields as stored

Time handling assumes your local timezone for both the optional race start and the projected finish clock, using the same system clock that the browser exposes. Travelling across timezones does not change stored inputs, and finish time is always reported according to the locale where you run the calculator.

For performance, the tool builds splits in a simple loop, so complexity scales linearly with the number of checkpoints. Even for ultra distances, one kilometre or one mile splits remain a modest list, and charts and tables are regenerated only when inputs change.

Identical inputs produce identical projections, so you can treat the finish time and splits as deterministic for planning comparisons between training blocks or race strategies. Any randomness arises only from your chosen scenario, not from the calculation engine itself.

From a privacy perspective, all calculations, charts and exports are produced within the browser environment, and no race data is transmitted to remote servers. Downloaded files and copied text live in your device storage or clipboard, where you retain full control over retention and sharing.

Assumptions and limitations

  • Pace and speed inputs represent moving effort only; pauses must be captured separately through planned stops.
  • Effort trend applies a smooth change across the course and does not model abrupt surges, hills or wind shifts.
  • Splits assume equal distance spacing; real race markers and GPS recordings may drift slightly from these checkpoints.
  • Heads-up Effort trend values outside -40 to 40 are silently clamped, so extreme manual entries are softened in the model.
  • Stop positions are evenly spaced by distance, not by time, which may differ from your real aid station placement.
  • Finish clock times rely on the device clock and locale, so incorrect system settings will shift the projected finish timestamp.
  • Very unusual distances or speeds are accepted but may yield projections that are not meaningful for real world running.
  • The model does not account for terrain, temperature, fueling or group dynamics, so use it alongside your training experience.

Edge cases and error sources

  • Zero or empty distance values disable calculations, so no metrics, splits or charts appear until distance is positive.
  • Pace set to 0:00 or left blank in pace mode prevents projections, because a non zero pace per kilometre or mile is required.
  • Negative or non numeric distance, speed or stop inputs are automatically reset toward zero, which may change the scenario quietly.
  • Effort trend values typed beyond slider bounds are clamped to the nearest limit, altering the intended fade or negative split.
  • Extremely long races may produce day level durations in the “duration” display, while the clock style display shows only hours, minutes and seconds.
  • If the browser cannot parse the start time value, the calculator falls back to the current device time to anchor the finish clock.
  • Split labels change the final row label to “Finish”, so exported tables mix numeric and text labels in the first column.
  • Charts are not drawn if the charting engine is unavailable; in that case, chart tabs appear but stay visually empty.
  • Clipboard copy can fail when browser permissions block write access, in which case metrics remain visible but are not copied.
  • Because calculations use JavaScript numbers, extremely large durations may lose precision in the least significant seconds.

The calculation structure follows common distance running pacing practice and standard metric and imperial unit conversions, offering a transparent model you can inspect through the JSON view and CSV exports.

Step-by-Step Guide:

Race finish time projections follow a simple sequence of distance, effort and adjustment choices that lead to detailed metrics, splits and charts.

  1. Pick a preset such as 5 km, 10 km, half marathon or marathon, or choose Custom distance and enter any value in kilometres or miles.
  2. Confirm the Distance unit you prefer, letting the tool convert the numeric value when you switch between kilometres and miles.
  3. Choose the Input mode of either pace per kilometre or mile, or constant speed in kilometres per hour or miles per hour.
  4. Enter your target pace minutes and seconds, or your target speed, making sure the numbers match how you think about training runs.
  5. Select the split unit to decide whether to see one kilometre or one mile checkpoints in the split table and charts.
  6. Open the advanced panel to set an optional race start time, adjust effort trend for fade or negative splits, and add any planned drink or walk stops.
  7. Watch the projected finish time, average pace and speed, splits, charts and JSON view update automatically as you refine the scenario.

For example, set a 10 km distance, target pace 5:00 per km, effort trend 10 percent, and three 20 second stops to see how scheduled breaks shift the finish time above the pure moving estimate.

Use the projections to decide whether your goal time is realistic, then adjust distance, pace, trend and stops until the numbers match how you want race day to unfold.

Features:

  • Supports common road and trail race distances, including 5 km, 10 km, half marathon, marathon, 50 km, 1 mile, 10 miles and 50 miles.
  • Lets you work either from pace per kilometre or mile or from constant speed in kilometres per hour or miles per hour.
  • Builds one kilometre or one mile splits with cumulative time and per segment clock displays for easy race plan printing.
  • Models gradual effort drift with a tunable trend percentage and evenly spaced planned stops to approximate aid station pauses.
  • Offers CSV and DOCX exports for both overall metrics and detailed splits so you can paste or share plans with coaches or teammates.
  • Provides two chart views that show segment duration versus distance and cumulative distance versus time, with switchable kilometre and mile axes.
  • Exposes the current scenario as a structured JSON object, suitable for storing snapshots or feeding into your own analysis tools.

FAQ:

What distances can I model?

You can choose presets for 5 km, 10 km, 15 km, half marathon, marathon, 50 km, 1 mile, 10 miles and 50 miles, or set any custom distance in kilometres or miles.

How accurate are the projections?

Accuracy depends on how closely your pace or speed, effort trend and stop assumptions match reality. Terrain, weather, crowding and race day nerves can all shift the true finish time away from the estimate.

Which units and formats are supported?

Distances accept kilometres and miles, effort can be given as pace per kilometre or mile or as speed in kilometres per hour or miles per hour, and exports provide CSV, DOCX, image files and JSON text.

Is my data stored anywhere?

Calculations, charts and exports are produced within your browser, and the tool does not send race inputs, splits or JSON payloads to a remote server. Files you download or text you copy stay on your device until you remove them. Avoid pasting sensitive notes into exports you plan to share widely.

Can I use it without a network connection?

Once the page has loaded, the calculator continues working with no further connectivity, including split generation, chart updates and exports, as long as your browser session remains open.

How do I use the JSON view?

The JSON tab exposes inputs, adjustments, summary metrics and splits in a structured format. You can copy or download it, then feed it into your own scripts, notebooks or planning sheets for further analysis.

What if the result looks unrealistic?

First check that distance, units, pace or speed and effort trend match what you intended. If the finish time still feels wrong, experiment with conservative assumptions and compare projections over several sessions rather than relying on a single run.

Are there any licensing or cost limits?

The calculator itself does not enforce account, subscription or usage limits. For information about licensing, attribution or redistribution, refer to the surrounding site or documentation that hosts this tool.

Troubleshooting:

  • Distance empty — Enter a positive distance value and check that the unit matches your plan.
  • No finish time — In pace mode, ensure minutes and seconds are both greater than zero; in speed mode, check that speed is at least 0.1.
  • Splits missing — Splits only appear when both distance and effort inputs form a valid scenario, so correct invalid fields first.
  • Charts blank — If charts stay empty while metrics and splits update, the graphics engine may not have loaded; try reloading the page.
  • Copy buttons fail — Some browsers block clipboard access; check permissions or use CSV and JSON downloads instead of direct copy.
  • Downloads not appearing — Pop up or download blockers can hide save prompts; allow downloads for this page and try again.
  • Clock time looks off — Verify your device date, time and timezone settings because the finish clock is based on that system clock.

Advanced Tips:

Tip Use kilometre splits for shorter events and mile splits for longer races to keep tables compact while still showing enough checkpoints.

Tip Try a small negative effort trend to see what happens if you finish faster than you start, then compare it with a flat pacing scenario.

Tip Use planned stops to mimic congested aid stations or photo breaks, and adjust their number and length until the finish time aligns with your expectations.

Tip Export metrics and splits as DOCX when you want to annotate them further, add coaching notes or combine several scenarios in a single document.

Tip Save JSON snapshots of key scenarios so you can recreate them later, compare against real race results or feed them into other analysis tools.

Tip Use the distance unit toggle on charts to sanity check that kilometre and mile values line up with your race map and personal reference points.

Glossary:

Race finish time
Projected clock time when you reach the end of the course.
Pace
Time it takes to cover one kilometre or one mile of running.
Speed
Distance covered in one hour, shown in km/h or mph.
Split
Intermediate checkpoint with its own segment and cumulative time.
Effort trend
Percentage change describing fade or negative split across the race.
Planned stop
Scheduled non moving pause such as an aid station or walk break.
Cumulative time
Total time elapsed from race start to a given split.
JSON payload
Structured text snapshot with inputs, adjustments, summary and splits.