Race outcome
Status across the full dataset.
A privacy-first view of how the race unfolded: participation, pacing, late-race slowdown, demographics, geography and conditions on 27 September 2026.
The build script reads the private CSVs locally, computes the statistics below, removes identifying fields and validates the generated JSON before deployment.
Participation tells only part of the story. Start waves reveal when Berlin filled up; the finish distribution shows when the field arrived back at the Brandenburg Gate.
Status across the full dataset.
Finish times grouped into 15-minute windows.
Chip start times grouped into 30-minute windows.
For years with split timing, anonymous aggregates let us compare segment pace, first and second halves, and how much runners slowed from 30–40K relative to 10–20K.
A lower pace is faster. The line exposes where the field began to lose speed.
median pace slowdown from 30–40K compared with 10–20K.
Distribution of late-race slowdown versus the same runner’s 10–20K pace.
“Even” means the halves were within ±2%. This avoids calling tiny differences meaningful.
The same metric, grouped by finishing band, shows how pacing changes across the field.
Demographics and geography stay useful without exposing individuals. These charts are computed from anonymous counts only.
Weather is shown as race context, not as proof of causation. It helps explain the environment in which pacing patterns occurred.
Observed and “feels like” temperature through the race window.
A hypothetical comparison with the existing 2026 standard table used by the original dashboard. It does not account for registration buffers or guarantee qualification.
finishers meeting the age/gender standard in this dataset.
A compact year-over-year view using the same privacy-safe aggregate pipeline.
29 September 2024
21 September 2025
27 September 2026