Race Data Methodology

Marathon Finish Time Percentiles

How to calculate a defensible percentile from a named official result set.

← Back to all articles

A marathon percentile is meaningful only when it is tied to a specific result population. Course difficulty, weather, entry rules, field composition, year, age grouping, and sex category all change the distribution.

Why RunCalcs removed its former percentile table

The previous downloadable table was editorially calibrated from secondary summaries. It was not calculated from a licensed row-level result set, so it could not support precise claims such as “P25” or “median.” RunCalcs no longer presents those synthetic values as observed percentiles.

This page now provides the calculation and data requirements needed to produce a reproducible percentile. A future RunCalcs percentile release will include the named race, result year, source licence, row count, exclusions, processing code, and output checks.

Marathon percentile formula

First filter the official finisher data to the population you want to compare. Sort valid finish times from fastest to slowest and assign ranks, with rank 1 being fastest.

Percent of finishers beaten = 100 × (number of valid finishers − rank) ÷ (number of valid finishers − 1).

This definition gives the fastest finisher 100 and the slowest finisher 0. Other publishers may reverse the scale or use a different tie rule, so always state the definition.

Worked example

Suppose an official race result set contains 10,000 valid finishers and your time ranks 2,501st after ties are handled consistently:

100 × (10,000 − 2,501) ÷ 9,999 = 75.0.

Under this definition, the result beat approximately 75% of the included finishers. It does not mean the runner is in the 75th percentile of every marathon runner worldwide.

Choose the right comparison group

  • Same race and year: best for comparing the same course and conditions.
  • Same race across years: useful only after checking course changes, cancellations, weather, and entry policy.
  • Age group and sex: requires consistent category definitions and enough finishers in every subgroup.
  • Multiple races: requires a stated inclusion rule and should not mix net and gun times without adjustment.

Minimum requirements for a publishable percentile dataset

  • Official or licensed row-level results with finish status and finish time.
  • Named event, year, geography, course, and timing basis.
  • Sample size before and after exclusions.
  • Documented treatment of DNFs, disqualifications, missing values, duplicate records, and ties.
  • Age and sex definitions taken directly from the source rather than inferred.
  • Reproducible code plus a checksum or archived version of every source file.

Use calculators for your own race goal

Sources and editorial check

Editorially source-checked: July 18, 2026. This methodology deliberately avoids publishing percentile values without row-level source data.