Repository navigation
Pace Notes (HTW) — Master Half + Marathon Results Dataset (2026-11-03, tag master-20261103b; supersedes master-20261103)
Compiled by Pace Notes (splithappens.run). One combined table of half-marathon and marathon results with a distance column.
Halves and marathons must never be mixed in one statistic. Always filter or group by distance.
Snapshot: marathon DB read 2026-11-03 16:31 ET and half DB 16:32 ET, each inside one read-only SQLite transaction.
Files
| File | What |
|---|---|
master_results_FULL.parquet |
All publishable rows: 13,350,405 (half 7,961,006; marathon 5,389,399). Flagged rows are included and carry record_flags. |
master_results_CORE.parquet |
in_core=true rows: 13,285,770. Drops half duplicate-type flags (duplicate, duplicate_load, duplicate_subset_list, wrong_year_copy) and the Amsterdam 2020 virtual race. |
editions.csv |
One row per distance+city+year: tier, finish-time-only, official count and source, winners (half), weather, elevation (marathon), and row counts. |
MANIFEST_editions.csv |
Per-edition row counts: snapshot, FULL and CORE. |
sources.csv |
Source result pages by distance. |
half_record_flags_detail.parquet, marathon_record_flags_detail.parquet |
Raw flag tables, keyed by source_record_id. |
NYC2026_rows_missing_splits.csv |
The 793 NYC Marathon 2026 rows missing at least one intermediate split, with status no_splits or partial_splits. |
DATA_DICTIONARY.md, CHANGELOG.md, QA-REPORT.json, code/, SHA256SUMS |
Documentation, QA results, build scripts and checksums. |
Tiers (verification_tier)
stamped: halfcompleteness_status='stamped'or marathon'complete'. The finisher count is within 0.5% of an independent published total. For halves, the year and both winners were also confirmed.stamped_weaker_source: half stamped against a weaker source such as an organiser or press count (14 editions). Keep this label when citing.held: half editions held for review or owner decision. These are unverified.unverified/unverified_no_edition_meta: internal counts with no badge.internal_only_nyrr: NYC Half (all years). Never stamped because no independent count exists.- NYC Marathon 2026 is now
stamped: 61,062 rows vs NYRR's published 61,146 finishers (-0.14%; NYRR press release of 2026-11-02, reported by NBC Sports and Running USA). NYRR calls that count provisional, subject to final scoring. Winners were confirmed against World Athletics: Almgren 2:06:01 and Chepkirui 2:24:36. excluded_from_release: Amsterdam 2020, a virtual self-timed race. It is in FULL only.finish_time_only=true: half editions with no intermediate splits. This is a separate tier and must not be pooled with split-bearing races.
Exclusions and withheld data
- NYC Half 2024 (27,812 rows) and 2025 (28,677 rows) are excluded because they are internal-only.
- NYC Marathon 2026 (61,062 rows) is included WITH intermediate splits (approved 2026-11-03, after the splits re-pull). 60,269 rows have all 8 splits (5–40 km), 757 have some, and 36 have none. See
NYC2026_rows_missing_splits.csv. It is stamped (see Tiers) and has no weather row yet. - NYC Half 2016 (9,640 rows) and 2022 (800 rows) are partial loads.
Person links
runner_id: v1 exact key (name|sex|age_key), unchanged from previous releases.person_id: v4 cross-race clusters built 2026-10-30. They link across halves and marathons where v4 matched (417,974 persons appear at both distances). Rows loaded after 2026-10-30 are unlinked (null), except NYC Marathon 2026.- NYC Marathon 2026: 32,703 of 61,062 rows were attached by an incremental, preliminary match (
person_link_version='nyc2026_incremental_preliminary'). Doubtful matches were left unmatched. - Sex is never inferred from names. A null sex means unknown.
License: CC BY 4.0. Results are republished from public timing and organiser pages (see sources.csv).
Verify
sha256sum -c SHA256SUMS; duckdb -c "select distance,count(*) from 'master_results_FULL.parquet' group by 1"