{"family":"replay","schema_version":1,"release_tag":"private-export-20261021-1050","input_as_of":"2026-10-21T15:02:30Z","runner_manifest_sha256":"cd2c99d7140d3f32700200901ab21e6d1d10b6b450254a0739382a59e6db028c","runner_manifest_as_of":"2026-10-21T16:10:31Z","eligible_records":4108749,"analysis_n":4108749,"duplicate_edition_screen":[],"editions":[{"slug":"berlin-2024","city":"Berlin","year":2024,"race":"Berlin Marathon","finishes":53417,"sample":1500,"first_finish_s":7397.0,"median_finish_s":14457.0,"last_finish_s":32358.0,"snapshots":[{"clock_s":3600,"finished_share":0.0,"front10_km":14.079,"median_km":10.819,"back10_km":8.582},{"clock_s":7200,"finished_share":0.0,"front10_km":27.987,"median_km":21.539,"back10_km":16.935},{"clock_s":10800,"finished_share":0.0856094502,"front10_km":41.215,"median_km":31.901,"back10_km":24.903},{"clock_s":14400,"finished_share":0.4919782092,"front10_km":42.195,"median_km":42.031,"back10_km":32.23},{"clock_s":18000,"finished_share":0.8326001086,"front10_km":42.195,"median_km":42.195,"back10_km":39.307},{"clock_s":21600,"finished_share":0.967388659,"front10_km":42.195,"median_km":42.195,"back10_km":42.195}],"moments":{"first_finish_s":7397.0,"not_past_20_at_first":15710,"not_past_10_at_first":0,"past_30_at_first":3091,"back_km_at_first":10.94,"half_home_s":14457.0,"half_home_ratio":1.954,"finish_quantiles_s":{"0.01":9280.2,"0.1":11072.0,"0.5":14457.0,"0.9":19415.0,"0.99":23349.7},"peak_minute":238,"peak_minute_n":642,"minute_240_n":454},"composition":[{"clock_s":600,"on_course":53417,"current_kmh":11.085,"whole_race_kmh":10.612},{"clock_s":3600,"on_course":53417,"current_kmh":11.021,"whole_race_kmh":10.612,"composition_share":0.0},{"clock_s":5400,"on_course":53417,"current_kmh":10.933,"whole_race_kmh":10.612,"composition_share":0.0},{"clock_s":7200,"on_course":53417,"current_kmh":10.733,"whole_race_kmh":10.612,"composition_share":0.0},{"clock_s":9000,"on_course":53113,"current_kmh":10.431,"whole_race_kmh":10.572,"composition_share":0.0612},{"clock_s":10800,"on_course":48844,"current_kmh":9.82,"whole_race_kmh":10.187,"composition_share":0.336},{"clock_s":12600,"on_course":40380,"current_kmh":9.095,"whole_race_kmh":9.631,"composition_share":0.493},{"clock_s":14400,"on_course":27137,"current_kmh":8.219,"whole_race_kmh":8.865,"composition_share":0.6096},{"clock_s":16200,"on_course":16787,"current_kmh":7.563,"whole_race_kmh":8.196,"composition_share":0.686},{"clock_s":18000,"on_course":8942,"current_kmh":6.97,"whole_race_kmh":7.565,"composition_share":0.7405},{"clock_s":19800,"on_course":4520,"current_kmh":6.604,"whole_race_kmh":7.076,"composition_share":0.7891},{"clock_s":21600,"on_course":1742,"current_kmh":6.275,"whole_race_kmh":6.612,"composition_share":0.8316},{"clock_s":23400,"on_course":520,"current_kmh":5.773,"whole_race_kmh":6.16,"composition_share":0.8381},{"clock_s":25200,"on_course":135,"current_kmh":5.435,"whole_race_kmh":5.77,"composition_share":0.857}],"ghosts":[{"target_s":9000,"ahead":[0.0074320909,0.0078626654,0.0078065035,0.0075256941,0.0072636052,0.0067768688,0.0064960593,0.005747234,0.0056910721],"net_passes":93,"typical_20km_s":4245.4,"even_20km_s":4265.9,"near_n":214},{"target_s":9900,"ahead":[0.0339405058,0.0350450231,0.0348765374,0.0343710804,0.0334537694,0.0324428553,0.0318063538,0.0299155699,0.0295973192],"net_passes":232,"typical_20km_s":4668.4,"even_20km_s":4692.5,"near_n":598},{"target_s":10800,"ahead":[0.0985079656,0.1016343112,0.1010726922,0.099762248,0.0968043881,0.0929666586,0.0905142558,0.0855532883,0.0855345676],"net_passes":693,"typical_20km_s":5092.1,"even_20km_s":5119.1,"near_n":1299},{"target_s":11700,"ahead":[0.1683546437,0.1704139132,0.1710129734,0.1696276466,0.1664451392,0.1609412734,0.155362525,0.1477057865,0.1463391804],"net_passes":1176,"typical_20km_s":5488.1,"even_20km_s":5545.7,"near_n":1433},{"target_s":12600,"ahead":[0.281932718,0.2849092985,0.2855458,0.2830372353,0.2769530299,0.2665443585,0.2578954265,0.2455772507,0.2439298351],"net_passes":2030,"typical_20km_s":5915.1,"even_20km_s":5972.3,"near_n":2196},{"target_s":13500,"ahead":[0.4083157047,0.4088024412,0.4086901174,0.4044030926,0.3954359099,0.3839040006,0.3729711515,0.3560102589,0.3535016942],"net_passes":2928,"typical_20km_s":6301.7,"even_20km_s":6398.9,"near_n":2173},{"target_s":14400,"ahead":[0.5705674224,0.5674036355,0.5653630867,0.55924144,0.5453320104,0.5272291593,0.5116535934,0.4927831964,0.4918097235],"net_passes":4207,"typical_20km_s":6710.4,"even_20km_s":6825.5,"near_n":2512},{"target_s":15300,"ahead":[0.6935806953,0.6870471947,0.6826852875,0.6757586536,0.6606511036,0.6398899227,0.6200273321,0.5967388659,0.5926764888],"net_passes":5390,"typical_20km_s":6987.4,"even_20km_s":7252.0,"near_n":1802},{"target_s":16200,"ahead":[0.7892618455,0.7790029391,0.7741168542,0.7652807159,0.74970515,0.7300672071,0.7104667054,0.6891813468,0.6857180298],"net_passes":5531,"typical_20km_s":7376.8,"even_20km_s":7678.6,"near_n":1581},{"target_s":17100,"ahead":[0.8701349758,0.8568620477,0.8499354138,0.8400696408,0.8256360335,0.8064848269,0.7878016362,0.7705973754,0.7683696202],"net_passes":5436,"typical_20km_s":7729.0,"even_20km_s":8105.2,"near_n":1286},{"target_s":18000,"ahead":[0.9278319636,0.9151768164,0.9080255349,0.8987026602,0.8851114814,0.8670086302,0.8507778423,0.8333863751,0.8325813879],"net_passes":5088,"typical_20km_s":8084.2,"even_20km_s":8531.8,"near_n":1051},{"target_s":18900,"ahead":[0.9630080312,0.9531048168,0.946178183,0.9370425146,0.9250425894,0.9089615665,0.8949585338,0.8798135425,0.8775857873],"net_passes":4563,"typical_20km_s":8354.3,"even_20km_s":8958.4,"near_n":719},{"target_s":19800,"ahead":[0.98163506,0.9739970421,0.9685867795,0.9619596758,0.9524683153,0.9399254919,0.9288241571,0.9168991145,0.9153265814],"net_passes":3542,"typical_20km_s":8693.9,"even_20km_s":9385.0,"near_n":602},{"target_s":20700,"ahead":[0.9913136267,0.9869329989,0.9831701518,0.9787895239,0.9720500964,0.9627833836,0.9550892038,0.9454855196,0.944343561],"net_passes":2509,"typical_20km_s":9017.7,"even_20km_s":9811.6,"near_n":454},{"target_s":21600,"ahead":[0.9956942546,0.9941217215,0.9918565251,0.9886927383,0.9844805961,0.9792388191,0.9743152929,0.9674448209,0.9673512178],"net_passes":1514,"typical_20km_s":9441.3,"even_20km_s":10238.2,"near_n":355}],"pack":{"checkpoint_km":10.0,"window_start_s":3300,"n":1242,"quantiles":[{"km":5.0,"p10_s":1634.0,"p50_s":1658.0,"p90_s":1679.0},{"km":10.0,"p10_s":3303.0,"p50_s":3315.0,"p90_s":3327.0},{"km":15.0,"p10_s":4930.0,"p50_s":4975.0,"p90_s":5031.0},{"km":20.0,"p10_s":6554.0,"p50_s":6642.0,"p90_s":6762.0},{"km":25.0,"p10_s":8191.0,"p50_s":8335.5,"p90_s":8603.7},{"km":30.0,"p10_s":9835.0,"p50_s":10051.0,"p90_s":10596.5},{"km":35.0,"p10_s":11459.3,"p50_s":11775.0,"p90_s":12683.0},{"km":40.0,"p10_s":13107.1,"p50_s":13542.0,"p90_s":14915.7},{"km":42.195,"p10_s":13808.3,"p50_s":14303.0,"p90_s":15824.0}],"finish_window_min":33.6},"file":"replay/berlin-2024.json"},{"slug":"new-york-2025","city":"New York","year":2025,"race":"New York City Marathon","finishes":58339,"sample":1500,"first_finish_s":7689.0,"median_finish_s":15815.0,"last_finish_s":36637.0,"snapshots":[{"clock_s":3600,"finished_share":0.0,"front10_km":13.231,"median_km":10.444,"back10_km":8.075},{"clock_s":7200,"finished_share":0.0,"front10_km":26.037,"median_km":20.6,"back10_km":15.876},{"clock_s":10800,"finished_share":0.0409331665,"front10_km":38.206,"median_km":30.038,"back10_km":22.955},{"clock_s":14400,"finished_share":0.3426867104,"front10_km":42.195,"median_km":38.69,"back10_km":29.787},{"clock_s":18000,"finished_share":0.7242496443,"front10_km":42.195,"median_km":42.195,"back10_km":36.359},{"clock_s":21600,"finished_share":0.9182365142,"front10_km":42.195,"median_km":42.195,"back10_km":42.195}],"moments":{"first_finish_s":7689.0,"not_past_20_at_first":19049,"not_past_10_at_first":7,"past_30_at_first":3070,"back_km_at_first":7.96,"half_home_s":15815.0,"half_home_ratio":2.057,"finish_quantiles_s":{"0.01":9776.1,"0.1":12011.0,"0.5":15815.0,"0.9":21099.0,"0.99":25805.0},"peak_minute":238,"peak_minute_n":600,"minute_240_n":394},"composition":[{"clock_s":600,"on_course":58339,"current_kmh":10.521,"whole_race_kmh":9.804},{"clock_s":3600,"on_course":58339,"current_kmh":10.496,"whole_race_kmh":9.804,"composition_share":null},{"clock_s":5400,"on_course":58339,"current_kmh":10.272,"whole_race_kmh":9.804,"composition_share":0.0},{"clock_s":7200,"on_course":58339,"current_kmh":9.91,"whole_race_kmh":9.804,"composition_share":0.0},{"clock_s":9000,"on_course":58239,"current_kmh":9.58,"whole_race_kmh":9.791,"composition_share":0.0138},{"clock_s":10800,"on_course":55951,"current_kmh":9.03,"whole_race_kmh":9.58,"composition_share":0.1502},{"clock_s":12600,"on_course":49790,"current_kmh":8.444,"whole_race_kmh":9.177,"composition_share":0.3019},{"clock_s":14400,"on_course":38347,"current_kmh":7.844,"whole_race_kmh":8.578,"composition_share":0.458},{"clock_s":16200,"on_course":26554,"current_kmh":7.353,"whole_race_kmh":7.978,"composition_share":0.5764},{"clock_s":18000,"on_course":16087,"current_kmh":6.846,"whole_race_kmh":7.379,"composition_share":0.6599},{"clock_s":19800,"on_course":9280,"current_kmh":6.428,"whole_race_kmh":6.878,"composition_share":0.7149},{"clock_s":21600,"on_course":4770,"current_kmh":5.983,"whole_race_kmh":6.416,"composition_share":0.7466},{"clock_s":23400,"on_course":2356,"current_kmh":5.625,"whole_race_kmh":6.043,"composition_share":0.7682},{"clock_s":25200,"on_course":884,"current_kmh":5.225,"whole_race_kmh":5.657,"composition_share":0.783}],"ghosts":[{"target_s":9000,"ahead":[0.0034282384,0.0038739094,0.0038567682,0.0034968032,0.0027940143,0.0028968614,0.0022797785,0.0018169664,0.0017141192],"net_passes":100,"typical_20km_s":null,"even_20km_s":4265.9,"near_n":null},{"target_s":9900,"ahead":[0.019643806,0.0202608889,0.0197466532,0.0190952879,0.0169869213,0.0166783798,0.0148614135,0.0128044704,0.0122045287],"net_passes":434,"typical_20km_s":4590.2,"even_20km_s":4692.5,"near_n":340},{"target_s":10800,"ahead":[0.0553317678,0.0605255489,0.0600455956,0.058297194,0.0525891771,0.0516292703,0.0468125953,0.0417559437,0.0409331665],"net_passes":840,"typical_20km_s":5025.7,"even_20km_s":5119.1,"near_n":722},{"target_s":11700,"ahead":[0.1120691133,0.1177085655,0.1165429644,0.1130118788,0.1032413994,0.1009616209,0.0921681894,0.0826205454,0.0802893433],"net_passes":1854,"typical_20km_s":5393.2,"even_20km_s":5545.7,"near_n":1014},{"target_s":12600,"ahead":[0.2046315501,0.2152933715,0.2118822743,0.2044087146,0.1874389345,0.1810624111,0.1652582321,0.1490426644,0.146505768],"net_passes":3391,"typical_20km_s":5805.4,"even_20km_s":5972.3,"near_n":1518},{"target_s":13500,"ahead":[0.317557723,0.3284423799,0.3223743979,0.3109755052,0.2889490735,0.2783215345,0.2552152077,0.2339601296,0.2297433964],"net_passes":5123,"typical_20km_s":6154.7,"even_20km_s":6398.9,"near_n":1720},{"target_s":14400,"ahead":[0.460669535,0.4796962581,0.4707999794,0.4557328717,0.4219647234,0.405766297,0.3717067485,0.3449150654,0.3425495809],"net_passes":6891,"typical_20km_s":6586.4,"even_20km_s":6825.5,"near_n":2449},{"target_s":15300,"ahead":[0.5897427107,0.5965991875,0.5865715902,0.569413257,0.5364164624,0.5149728312,0.4787706337,0.4474193935,0.4414713999],"net_passes":8650,"typical_20km_s":6827.3,"even_20km_s":7252.0,"near_n":2061},{"target_s":16200,"ahead":[0.6993606335,0.7024117657,0.6904129313,0.671283361,0.6352697167,0.6133804145,0.5757726392,0.547095425,0.5447127993],"net_passes":9022,"typical_20km_s":7234.9,"even_20km_s":7678.6,"near_n":1940},{"target_s":17100,"ahead":[0.7951456144,0.7933115069,0.7809012839,0.7572292977,0.7231868904,0.7011261763,0.667889405,0.6407206157,0.6373952245],"net_passes":9203,"typical_20km_s":7583.9,"even_20km_s":8105.2,"near_n":1783},{"target_s":18000,"ahead":[0.862870464,0.8589108487,0.8485232863,0.8279538559,0.7961226624,0.7756903615,0.7472188416,0.725020998,0.7241467972],"net_passes":8093,"typical_20km_s":7947.3,"even_20km_s":8531.8,"near_n":1494},{"target_s":18900,"ahead":[0.9084146112,0.9022266408,0.8938617391,0.8774747596,0.8503573939,0.8335247433,0.808412897,0.7885119731,0.7869178423],"net_passes":7088,"typical_20km_s":8251.8,"even_20km_s":8958.4,"near_n":1052},{"target_s":19800,"ahead":[0.9417542296,0.9356519652,0.9281955467,0.9124770737,0.8897135707,0.8763091585,0.8578995183,0.8418210802,0.8408954559],"net_passes":5884,"typical_20km_s":8625.2,"even_20km_s":9385.0,"near_n":982},{"target_s":20700,"ahead":[0.9626493426,0.9592211042,0.9547129707,0.9415999589,0.9230189067,0.9111572019,0.8964329179,0.8855996846,0.8838684242],"net_passes":4596,"typical_20km_s":9023.9,"even_20km_s":9811.6,"near_n":755},{"target_s":21600,"ahead":[0.9769279556,0.9772536382,0.9726426576,0.9627521898,0.948490718,0.9393544627,0.9281098408,0.9189564442,0.918219373],"net_passes":3425,"typical_20km_s":9475.5,"even_20km_s":10238.2,"near_n":588}],"pack":{"checkpoint_km":10.0,"window_start_s":3420,"n":1075,"quantiles":[{"km":5.0,"p10_s":1695.0,"p50_s":1728.0,"p90_s":1766.0},{"km":10.0,"p10_s":3422.0,"p50_s":3433.0,"p90_s":3447.0},{"km":15.0,"p10_s":5113.0,"p50_s":5167.0,"p90_s":5240.6},{"km":20.0,"p10_s":6815.4,"p50_s":6926.0,"p90_s":7144.0},{"km":25.0,"p10_s":8554.4,"p50_s":8781.0,"p90_s":9267.2},{"km":30.0,"p10_s":10239.0,"p50_s":10654.0,"p90_s":11513.0},{"km":35.0,"p10_s":11965.8,"p50_s":12694.0,"p90_s":13982.2},{"km":40.0,"p10_s":13716.8,"p50_s":14774.0,"p90_s":16480.8},{"km":42.195,"p10_s":14453.4,"p50_s":15638.0,"p90_s":17482.2}],"finish_window_min":50.48},"file":"replay/new-york-2025.json"},{"slug":"london-2026","city":"London","year":2026,"race":"London Marathon","finishes":56762,"sample":1500,"first_finish_s":7170.0,"median_finish_s":16068.0,"last_finish_s":33986.0,"snapshots":[{"clock_s":3600,"finished_share":0.0,"front10_km":13.625,"median_km":10.396,"back10_km":7.996},{"clock_s":7200,"finished_share":3.52348e-05,"front10_km":26.878,"median_km":20.412,"back10_km":15.408},{"clock_s":10800,"finished_share":0.0575561115,"front10_km":39.191,"median_km":29.682,"back10_km":22.359},{"clock_s":14400,"finished_share":0.3450724076,"front10_km":42.195,"median_km":38.162,"back10_km":28.82},{"clock_s":18000,"finished_share":0.6774778901,"front10_km":42.195,"median_km":42.195,"back10_km":35.018},{"clock_s":21600,"finished_share":0.8877770339,"front10_km":42.195,"median_km":42.195,"back10_km":41.566}],"moments":{"first_finish_s":7170.0,"not_past_20_at_first":26768,"not_past_10_at_first":8,"past_30_at_first":1760,"back_km_at_first":9.07,"half_home_s":16068.0,"half_home_ratio":2.241,"finish_quantiles_s":{"0.01":9470.6,"0.1":11686.0,"0.5":16068.0,"0.9":21931.6,"0.99":27227.0},"peak_minute":238,"peak_minute_n":454,"minute_240_n":371},"composition":[{"clock_s":600,"on_course":56762,"current_kmh":10.704,"whole_race_kmh":9.756},{"clock_s":3600,"on_course":56762,"current_kmh":10.313,"whole_race_kmh":9.756,"composition_share":0.0},{"clock_s":5400,"on_course":56762,"current_kmh":10.223,"whole_race_kmh":9.756,"composition_share":0.0},{"clock_s":7200,"on_course":56760,"current_kmh":9.975,"whole_race_kmh":9.755,"composition_share":0.0014},{"clock_s":9000,"on_course":56517,"current_kmh":9.51,"whole_race_kmh":9.721,"composition_share":0.0293},{"clock_s":10800,"on_course":53495,"current_kmh":8.841,"whole_race_kmh":9.425,"composition_share":0.1777},{"clock_s":12600,"on_course":47297,"current_kmh":8.217,"whole_race_kmh":8.973,"composition_share":0.3148},{"clock_s":14400,"on_course":37175,"current_kmh":7.578,"whole_race_kmh":8.364,"composition_share":0.4453},{"clock_s":16200,"on_course":27591,"current_kmh":7.128,"whole_race_kmh":7.821,"composition_share":0.5411},{"clock_s":18000,"on_course":18307,"current_kmh":6.719,"whole_race_kmh":7.274,"composition_share":0.6228},{"clock_s":19800,"on_course":11511,"current_kmh":6.387,"whole_race_kmh":6.811,"composition_share":0.6822},{"clock_s":21600,"on_course":6370,"current_kmh":6.03,"whole_race_kmh":6.363,"composition_share":0.7259},{"clock_s":23400,"on_course":3259,"current_kmh":5.648,"whole_race_kmh":5.97,"composition_share":0.7488},{"clock_s":25200,"on_course":1555,"current_kmh":5.357,"whole_race_kmh":5.633,"composition_share":0.7711}],"ghosts":[{"target_s":9000,"ahead":[0.0081921003,0.0076811952,0.0063775061,0.0067474719,0.0062013319,0.0056023396,0.0048447905,0.004404355,0.0042986505],"net_passes":221,"typical_20km_s":4217.3,"even_20km_s":4265.9,"near_n":174},{"target_s":9900,"ahead":[0.0315880342,0.0297205877,0.0269018005,0.0273070012,0.0264437476,0.0248934146,0.0226560023,0.0200838589,0.0196081886],"net_passes":680,"typical_20km_s":4626.6,"even_20km_s":4692.5,"near_n":489},{"target_s":10800,"ahead":[0.0863253585,0.0835065713,0.0753320884,0.0768471865,0.0744159825,0.0688664952,0.0626827807,0.0583841302,0.0575384941],"net_passes":1634,"typical_20km_s":5038.6,"even_20km_s":5119.1,"near_n":912},{"target_s":11700,"ahead":[0.1447094887,0.1384200698,0.1306331701,0.1311088404,0.1279905571,0.1204855361,0.1113949473,0.103414256,0.1009301998],"net_passes":2485,"typical_20km_s":5404.8,"even_20km_s":5545.7,"near_n":1041},{"target_s":12600,"ahead":[0.2419224129,0.2305591769,0.2140164194,0.2162538318,0.2086254889,0.1959937987,0.1810013742,0.1688982065,0.1666079419],"net_passes":4275,"typical_20km_s":5834.7,"even_20km_s":5972.3,"near_n":1511},{"target_s":13500,"ahead":[0.3526831331,0.3377611783,0.3179063458,0.3168316832,0.306842606,0.2910926324,0.2691413269,0.2512244107,0.2460977414],"net_passes":6050,"typical_20km_s":6163.2,"even_20km_s":6398.9,"near_n":1668},{"target_s":14400,"ahead":[0.491279377,0.4698389768,0.4414396956,0.4375286283,0.419735034,0.3940312181,0.3671118001,0.3473979071,0.3448609986],"net_passes":8311,"typical_20km_s":6598.3,"even_20km_s":6825.5,"near_n":1990},{"target_s":15300,"ahead":[0.6047884148,0.5855678094,0.5580493992,0.5471265988,0.5244001268,0.4931292062,0.4580529227,0.4332828301,0.4270638808],"net_passes":10088,"typical_20km_s":6852.3,"even_20km_s":7252.0,"near_n":1637},{"target_s":16200,"ahead":[0.7064761636,0.6823226807,0.6507522638,0.6384905394,0.6133152461,0.5803882879,0.5441492548,0.5186744653,0.5137239703],"net_passes":10941,"typical_20km_s":7189.2,"even_20km_s":7678.6,"near_n":1679},{"target_s":17100,"ahead":[0.7955850745,0.7704097812,0.7379232585,0.7223142243,0.6935625947,0.6610232198,0.6275501216,0.6034318734,0.5978119164],"net_passes":11226,"typical_20km_s":7532.7,"even_20km_s":8105.2,"near_n":1550},{"target_s":18000,"ahead":[0.8639406645,0.8419365068,0.811246961,0.7943166203,0.7655473732,0.7327085022,0.6986364117,0.679151545,0.6773721856],"net_passes":10590,"typical_20km_s":7928.2,"even_20km_s":8531.8,"near_n":1382},{"target_s":18900,"ahead":[0.9095874,0.8906134386,0.8661604595,0.8484021,0.8219055002,0.7931362531,0.763609457,0.7450759311,0.7415876819],"net_passes":9536,"typical_20km_s":8227.7,"even_20km_s":8958.4,"near_n":1113},{"target_s":19800,"ahead":[0.9418272788,0.9259892181,0.9054296889,0.8901201508,0.866812304,0.8416546281,0.8161093689,0.7996546986,0.7971530249],"net_passes":8212,"typical_20km_s":8555.6,"even_20km_s":9385.0,"near_n":1054},{"target_s":20700,"ahead":[0.9645361333,0.9510940418,0.9349212501,0.9222895599,0.9015186216,0.8828793911,0.8617913393,0.8492301187,0.8477678729],"net_passes":6628,"typical_20km_s":8950.7,"even_20km_s":9811.6,"near_n":840},{"target_s":21600,"ahead":[0.9774320848,0.9678658257,0.9561854762,0.9458264332,0.9293893802,0.9139741376,0.8971671188,0.8884112611,0.8877594165],"net_passes":5090,"typical_20km_s":9371.4,"even_20km_s":10238.2,"near_n":672}],"pack":{"checkpoint_km":10.0,"window_start_s":3450,"n":1006,"quantiles":[{"km":5.0,"p10_s":1690.0,"p50_s":1719.0,"p90_s":1747.0},{"km":10.0,"p10_s":3452.0,"p50_s":3464.0,"p90_s":3476.0},{"km":15.0,"p10_s":5200.0,"p50_s":5258.0,"p90_s":5352.0},{"km":20.0,"p10_s":6897.0,"p50_s":7022.5,"p90_s":7291.5},{"km":25.0,"p10_s":8622.0,"p50_s":8865.0,"p90_s":9368.0},{"km":30.0,"p10_s":10390.0,"p50_s":10813.5,"p90_s":11658.5},{"km":35.0,"p10_s":12175.5,"p50_s":12899.5,"p90_s":14162.0},{"km":40.0,"p10_s":13956.0,"p50_s":14991.0,"p90_s":16628.0},{"km":42.195,"p10_s":14742.5,"p50_s":15870.0,"p90_s":17661.5}],"finish_window_min":48.65},"file":"replay/london-2026.json"},{"slug":"chicago-2026","city":"Chicago","year":2026,"race":"Chicago Marathon","finishes":54275,"sample":1500,"first_finish_s":7269.0,"median_finish_s":15759.0,"last_finish_s":33835.0,"snapshots":[{"clock_s":3600,"finished_share":0.0,"front10_km":13.896,"median_km":10.408,"back10_km":7.919},{"clock_s":7200,"finished_share":0.0,"front10_km":27.369,"median_km":20.75,"back10_km":15.66},{"clock_s":10800,"finished_share":0.0611146937,"front10_km":39.834,"median_km":30.328,"back10_km":22.833},{"clock_s":14400,"finished_share":0.3763979733,"front10_km":42.195,"median_km":38.893,"back10_km":29.429},{"clock_s":18000,"finished_share":0.6995670198,"front10_km":42.195,"median_km":42.195,"back10_km":35.777},{"clock_s":21600,"finished_share":0.8995854445,"front10_km":42.195,"median_km":42.195,"back10_km":42.179}],"moments":{"first_finish_s":7269.0,"not_past_20_at_first":23134,"not_past_10_at_first":4,"past_30_at_first":2224,"back_km_at_first":8.97,"half_home_s":15759.0,"half_home_ratio":2.168,"finish_quantiles_s":{"0.01":9519.7,"0.1":11482.0,"0.5":15759.0,"0.9":21608.6,"0.99":26446.0},"peak_minute":237,"peak_minute_n":430,"minute_240_n":272},"composition":[{"clock_s":600,"on_course":54275,"current_kmh":10.621,"whole_race_kmh":9.924},{"clock_s":3600,"on_course":54275,"current_kmh":10.62,"whole_race_kmh":9.924,"composition_share":null},{"clock_s":5400,"on_course":54275,"current_kmh":10.51,"whole_race_kmh":9.924,"composition_share":0.0},{"clock_s":7200,"on_course":54275,"current_kmh":10.193,"whole_race_kmh":9.924,"composition_share":0.0},{"clock_s":9000,"on_course":54069,"current_kmh":9.722,"whole_race_kmh":9.894,"composition_share":0.0334},{"clock_s":10800,"on_course":50958,"current_kmh":9.034,"whole_race_kmh":9.585,"composition_share":0.2136},{"clock_s":12600,"on_course":43866,"current_kmh":8.269,"whole_race_kmh":9.05,"composition_share":0.3716},{"clock_s":14400,"on_course":33846,"current_kmh":7.536,"whole_race_kmh":8.409,"composition_share":0.4911},{"clock_s":16200,"on_course":24786,"current_kmh":7.042,"whole_race_kmh":7.854,"composition_share":0.5784},{"clock_s":18000,"on_course":16306,"current_kmh":6.582,"whole_race_kmh":7.313,"composition_share":0.6464},{"clock_s":19800,"on_course":10160,"current_kmh":6.289,"whole_race_kmh":6.869,"composition_share":0.7052},{"clock_s":21600,"on_course":5450,"current_kmh":5.997,"whole_race_kmh":6.449,"composition_share":0.7515},{"clock_s":23400,"on_course":2347,"current_kmh":5.663,"whole_race_kmh":6.018,"composition_share":0.7878},{"clock_s":25200,"on_course":949,"current_kmh":5.254,"whole_race_kmh":5.618,"composition_share":0.8023}],"ghosts":[{"target_s":9000,"ahead":[0.0065591893,0.0066144634,0.0065223399,0.0062459696,0.0060064486,0.0053615845,0.004624597,0.00385076,0.003795486],"net_passes":150,"typical_20km_s":4213.8,"even_20km_s":4265.9,"near_n":126},{"target_s":9900,"ahead":[0.0307508061,0.030695532,0.0305112851,0.0292952556,0.0283924459,0.0264210041,0.0236020267,0.0195670198,0.0189221557],"net_passes":642,"typical_20km_s":4607.1,"even_20km_s":4692.5,"near_n":496},{"target_s":10800,"ahead":[0.0868355596,0.0886411792,0.0889175495,0.0861538462,0.0825057577,0.076683556,0.0700875173,0.0618148319,0.0610778443],"net_passes":1398,"typical_20km_s":5032.4,"even_20km_s":5119.1,"near_n":1000},{"target_s":11700,"ahead":[0.1591893137,0.1612713035,0.1617319208,0.1582128052,0.1526485491,0.1433440811,0.1317549516,0.1184891755,0.115909719],"net_passes":2349,"typical_20km_s":5395.5,"even_20km_s":5545.7,"near_n":1211},{"target_s":12600,"ahead":[0.2434085675,0.2524366651,0.2551450944,0.2516628282,0.2448641179,0.2317088899,0.2149055735,0.1946752649,0.1917088899],"net_passes":2806,"typical_20km_s":5812.8,"even_20km_s":5972.3,"near_n":1555},{"target_s":13500,"ahead":[0.34518655,0.3538093045,0.3561308153,0.3518747121,0.3422017503,0.3251957623,0.3043758637,0.2796130815,0.2749884846],"net_passes":3810,"typical_20km_s":6168.6,"even_20km_s":6398.9,"near_n":1619},{"target_s":14400,"ahead":[0.4619990788,0.4717088899,0.4775310917,0.4708982036,0.4560847536,0.4328512206,0.4080515891,0.378903731,0.3763242745],"net_passes":4650,"typical_20km_s":6598.0,"even_20km_s":6825.5,"near_n":1845},{"target_s":15300,"ahead":[0.5725472133,0.5765453708,0.5796591433,0.5703546753,0.5540856748,0.5279963151,0.4988668816,0.4641363427,0.4581483187],"net_passes":6209,"typical_20km_s":6839.9,"even_20km_s":7252.0,"near_n":1514},{"target_s":16200,"ahead":[0.6653523722,0.6664762782,0.6682818977,0.6582588669,0.6376047904,0.6091202211,0.5805435283,0.5478949793,0.5432703823],"net_passes":6626,"typical_20km_s":7168.9,"even_20km_s":7678.6,"near_n":1542},{"target_s":17100,"ahead":[0.7580838323,0.7526669737,0.7518010134,0.7390695532,0.7169415016,0.6875725472,0.6580193459,0.6258682635,0.6218701059],"net_passes":7393,"typical_20km_s":7549.9,"even_20km_s":8105.2,"near_n":1424},{"target_s":18000,"ahead":[0.8394288346,0.828742515,0.8269000461,0.8124182404,0.7891662828,0.7582496545,0.7295439889,0.7006540765,0.6994933211],"net_passes":7595,"typical_20km_s":7937.4,"even_20km_s":8531.8,"near_n":1235},{"target_s":18900,"ahead":[0.8970428374,0.8833532934,0.8794841087,0.8652970981,0.8431690465,0.8160663289,0.7885582681,0.7605158913,0.7571257485],"net_passes":7594,"typical_20km_s":8221.4,"even_20km_s":8958.4,"near_n":1026},{"target_s":19800,"ahead":[0.9349239982,0.9227452787,0.9178811608,0.9042468908,0.8857300783,0.8620543528,0.8386181483,0.8144449562,0.8127867342],"net_passes":6629,"typical_20km_s":8547.7,"even_20km_s":9385.0,"near_n":968},{"target_s":20700,"ahead":[0.9587471211,0.9504928604,0.9476186089,0.9365822202,0.9212713035,0.8999907877,0.8807922616,0.8605803777,0.8589590051],"net_passes":5416,"typical_20km_s":8910.8,"even_20km_s":9811.6,"near_n":781},{"target_s":21600,"ahead":[0.9774666053,0.9705757715,0.9686596039,0.9603869185,0.9490925841,0.932860433,0.9177521879,0.8999907877,0.8995117457],"net_passes":4231,"typical_20km_s":9340.0,"even_20km_s":10238.2,"near_n":673}],"pack":{"checkpoint_km":10.0,"window_start_s":3450,"n":871,"quantiles":[{"km":5.0,"p10_s":1703.0,"p50_s":1746.0,"p90_s":1783.0},{"km":10.0,"p10_s":3452.0,"p50_s":3464.0,"p90_s":3477.0},{"km":15.0,"p10_s":5116.0,"p50_s":5174.0,"p90_s":5256.0},{"km":20.0,"p10_s":6783.0,"p50_s":6910.0,"p90_s":7124.0},{"km":25.0,"p10_s":8465.0,"p50_s":8690.0,"p90_s":9116.0},{"km":30.0,"p10_s":10175.0,"p50_s":10563.0,"p90_s":11358.0},{"km":35.0,"p10_s":11925.0,"p50_s":12547.0,"p90_s":13747.0},{"km":40.0,"p10_s":13684.0,"p50_s":14693.0,"p90_s":16313.0},{"km":42.195,"p10_s":14387.0,"p50_s":15573.0,"p90_s":17282.0}],"finish_window_min":48.25},"file":"replay/chicago-2026.json"},{"slug":"boston-2014","city":"Boston","year":2014,"race":"Boston Marathon","finishes":31735,"sample":1500,"first_finish_s":7717.0,"median_finish_s":13930.0,"last_finish_s":32333.0,"snapshots":[{"clock_s":3600,"finished_share":0.0,"front10_km":14.375,"median_km":11.893,"back10_km":9.399},{"clock_s":7200,"finished_share":0.0,"front10_km":28.32,"median_km":23.334,"back10_km":18.222},{"clock_s":10800,"finished_share":0.0746179297,"front10_km":41.205,"median_km":33.679,"back10_km":26.222},{"clock_s":14400,"finished_share":0.5697809989,"front10_km":42.195,"median_km":42.195,"back10_km":33.26},{"clock_s":18000,"finished_share":0.8574759729,"front10_km":42.195,"median_km":42.195,"back10_km":40.149},{"clock_s":21600,"finished_share":0.973530802,"front10_km":42.195,"median_km":42.195,"back10_km":42.195}],"moments":{"first_finish_s":7717.0,"not_past_20_at_first":4070,"not_past_10_at_first":0,"past_30_at_first":3645,"back_km_at_first":10.58,"half_home_s":13930.0,"half_home_ratio":1.805,"finish_quantiles_s":{"0.01":9571.0,"0.1":11087.0,"0.5":13930.0,"0.9":18993.6,"0.99":22959.3},"peak_minute":209,"peak_minute_n":348,"minute_240_n":198},"composition":[{"clock_s":600,"on_course":31735,"current_kmh":11.96,"whole_race_kmh":10.88},{"clock_s":3600,"on_course":31735,"current_kmh":11.761,"whole_race_kmh":10.88,"composition_share":0.0},{"clock_s":5400,"on_course":31735,"current_kmh":11.438,"whole_race_kmh":10.88,"composition_share":0.0},{"clock_s":7200,"on_course":31735,"current_kmh":10.962,"whole_race_kmh":10.88,"composition_share":0.0},{"clock_s":9000,"on_course":31642,"current_kmh":10.324,"whole_race_kmh":10.859,"composition_share":0.0128},{"clock_s":10800,"on_course":29367,"current_kmh":9.614,"whole_race_kmh":10.551,"composition_share":0.1402},{"clock_s":12600,"on_course":22395,"current_kmh":8.735,"whole_race_kmh":9.824,"composition_share":0.3274},{"clock_s":14400,"on_course":13653,"current_kmh":7.759,"whole_race_kmh":8.889,"composition_share":0.4739},{"clock_s":16200,"on_course":8307,"current_kmh":7.193,"whole_race_kmh":8.194,"composition_share":0.5635},{"clock_s":18000,"on_course":4523,"current_kmh":6.776,"whole_race_kmh":7.592,"composition_share":0.6343},{"clock_s":19800,"on_course":2260,"current_kmh":6.53,"whole_race_kmh":7.118,"composition_share":0.6928},{"clock_s":21600,"on_course":840,"current_kmh":6.279,"whole_race_kmh":6.663,"composition_share":0.7423},{"clock_s":23400,"on_course":199,"current_kmh":6.171,"whole_race_kmh":6.286,"composition_share":0.7936}],"ghosts":[{"target_s":9000,"ahead":[0.007594139,0.0070269419,0.0065857886,0.0061761462,0.0059240586,0.0045690878,0.0038443359,0.003151095,0.0029305184],"net_passes":148,"typical_20km_s":null,"even_20km_s":4265.9,"near_n":null},{"target_s":9900,"ahead":[0.0400819285,0.0395777533,0.03847487,0.035355286,0.0334016071,0.0284858988,0.023318103,0.0194422562,0.0186544824],"net_passes":680,"typical_20km_s":4578.2,"even_20km_s":4692.5,"near_n":302},{"target_s":10800,"ahead":[0.1391838664,0.1422089176,0.1395935087,0.1313691508,0.1235544352,0.1069166535,0.0886403025,0.0773278714,0.074460375],"net_passes":2054,"typical_20km_s":4991.6,"even_20km_s":5119.1,"near_n":919},{"target_s":11700,"ahead":[0.2889239011,0.2834094848,0.2770442729,0.2631794549,0.2496297463,0.2244840082,0.1953678903,0.1726484954,0.1662832834],"net_passes":3892,"typical_20km_s":5301.0,"even_20km_s":5545.7,"near_n":1130},{"target_s":12600,"ahead":[0.481361273,0.473199937,0.4626122578,0.4396722861,0.4175515992,0.3790452182,0.3356861509,0.3036395147,0.2941862297],"net_passes":5940,"typical_20km_s":5695.1,"even_20km_s":5972.3,"near_n":1552},{"target_s":13500,"ahead":[0.6279502127,0.6203245628,0.6099574602,0.5894438317,0.5680163857,0.5295100047,0.4860879156,0.449818812,0.4377816291],"net_passes":6035,"typical_20km_s":6012.4,"even_20km_s":6398.9,"near_n":1448},{"target_s":14400,"ahead":[0.7507168741,0.7454545455,0.7363163699,0.7150779896,0.6900267843,0.6518355128,0.6098944383,0.5774381598,0.5696234441],"net_passes":5747,"typical_20km_s":6381.5,"even_20km_s":6825.5,"near_n":1173},{"target_s":15300,"ahead":[0.8418780526,0.8328659209,0.8219001103,0.7998109343,0.7771230503,0.7417362533,0.7010871278,0.6696707106,0.6603119584],"net_passes":5762,"typical_20km_s":6647.4,"even_20km_s":7252.0,"near_n":870},{"target_s":16200,"ahead":[0.9165905152,0.9014652592,0.8880100835,0.8661099732,0.844146841,0.810083504,0.7729320939,0.7457066331,0.738175516],"net_passes":5662,"typical_20km_s":6961.5,"even_20km_s":7678.6,"near_n":762},{"target_s":17100,"ahead":[0.9597290058,0.947628801,0.9344572239,0.9165590043,0.894627383,0.8641562943,0.8321411691,0.808192847,0.8021112337],"net_passes":5002,"typical_20km_s":7269.3,"even_20km_s":8105.2,"near_n":629},{"target_s":18000,"ahead":[0.9812509847,0.9745391524,0.9639829841,0.9486686624,0.9304868442,0.907861982,0.880100835,0.8603749803,0.857412951],"net_passes":3930,"typical_20km_s":7626.1,"even_20km_s":8531.8,"near_n":466},{"target_s":18900,"ahead":[0.9916811092,0.9874901528,0.9819442256,0.9712935245,0.9561682685,0.9371986765,0.9162754057,0.8994800693,0.8962659524],"net_passes":3028,"typical_20km_s":7907.1,"even_20km_s":8958.4,"near_n":370},{"target_s":19800,"ahead":[0.9964707736,0.9944225618,0.9907988026,0.9843075469,0.9746651962,0.9600756263,0.943847487,0.931211596,0.9287537419],"net_passes":2149,"typical_20km_s":8290.5,"even_20km_s":9385.0,"near_n":323},{"target_s":20700,"ahead":[0.9983299196,0.9979517882,0.9961556641,0.9922483063,0.9865763353,0.9761777218,0.9656215535,0.9576177722,0.955821648],"net_passes":1349,"typical_20km_s":8553.6,"even_20km_s":9811.6,"near_n":261},{"target_s":21600,"ahead":[0.9992437372,0.9992122262,0.9985189853,0.9966598393,0.99369781,0.9869544667,0.9790452182,0.9742555538,0.973530802],"net_passes":816,"typical_20km_s":9002.8,"even_20km_s":10238.2,"near_n":151}],"pack":{"checkpoint_km":10.0,"window_start_s":3000,"n":771,"quantiles":[{"km":5.0,"p10_s":1478.0,"p50_s":1502.0,"p90_s":1527.0},{"km":10.0,"p10_s":3003.0,"p50_s":3014.0,"p90_s":3026.0},{"km":15.0,"p10_s":4492.0,"p50_s":4538.0,"p90_s":4610.0},{"km":20.0,"p10_s":5992.0,"p50_s":6098.0,"p90_s":6281.0},{"km":25.0,"p10_s":7498.0,"p50_s":7677.0,"p90_s":8059.0},{"km":30.0,"p10_s":9060.0,"p50_s":9347.0,"p90_s":10059.0},{"km":35.0,"p10_s":10644.0,"p50_s":11124.0,"p90_s":12150.0},{"km":40.0,"p10_s":12246.0,"p50_s":12905.0,"p90_s":14334.0},{"km":42.195,"p10_s":12942.0,"p50_s":13657.0,"p90_s":15301.0}],"finish_window_min":39.32},"file":"replay/boston-2014.json"},{"slug":"paris-2024","city":"Paris","year":2024,"race":"Paris Marathon","finishes":53067,"sample":1500,"first_finish_s":7533.0,"median_finish_s":14790.0,"last_finish_s":30532.0,"snapshots":[{"clock_s":3600,"finished_share":0.0,"front10_km":13.359,"median_km":10.968,"back10_km":9.178},{"clock_s":7200,"finished_share":0.0,"front10_km":26.498,"median_km":21.746,"back10_km":18.101},{"clock_s":10800,"finished_share":0.0401190947,"front10_km":38.701,"median_km":31.932,"back10_km":26.339},{"clock_s":14400,"finished_share":0.4452296154,"front10_km":42.195,"median_km":41.137,"back10_km":33.878},{"clock_s":18000,"finished_share":0.8682797219,"front10_km":42.195,"median_km":42.195,"back10_km":40.945},{"clock_s":21600,"finished_share":0.9854523527,"front10_km":42.195,"median_km":42.195,"back10_km":42.195}],"moments":{"first_finish_s":7533.0,"not_past_20_at_first":9833,"not_past_10_at_first":0,"past_30_at_first":1916,"back_km_at_first":11.17,"half_home_s":14790.0,"half_home_ratio":1.963,"finish_quantiles_s":{"0.01":9981.3,"0.1":11836.0,"0.5":14790.0,"0.9":18561.0,"0.99":22077.7},"peak_minute":238,"peak_minute_n":662,"minute_240_n":513},"composition":[{"clock_s":600,"on_course":53067,"current_kmh":11.22,"whole_race_kmh":10.407},{"clock_s":3600,"on_course":53067,"current_kmh":11.09,"whole_race_kmh":10.407,"composition_share":0.0},{"clock_s":5400,"on_course":53067,"current_kmh":10.955,"whole_race_kmh":10.407,"composition_share":0.0},{"clock_s":7200,"on_course":53067,"current_kmh":10.67,"whole_race_kmh":10.407,"composition_share":0.0},{"clock_s":9000,"on_course":52989,"current_kmh":10.225,"whole_race_kmh":10.397,"composition_share":0.0101},{"clock_s":10800,"on_course":50938,"current_kmh":9.528,"whole_race_kmh":10.221,"composition_share":0.1099},{"clock_s":12600,"on_course":43596,"current_kmh":8.775,"whole_race_kmh":9.786,"composition_share":0.254},{"clock_s":14400,"on_course":29440,"current_kmh":8.03,"whole_race_kmh":9.106,"composition_share":0.4078},{"clock_s":16200,"on_course":16202,"current_kmh":7.505,"whole_race_kmh":8.414,"composition_share":0.5365},{"clock_s":18000,"on_course":6990,"current_kmh":7.009,"whole_race_kmh":7.739,"composition_share":0.6336},{"clock_s":19800,"on_course":2665,"current_kmh":6.655,"whole_race_kmh":7.176,"composition_share":0.7078},{"clock_s":21600,"on_course":772,"current_kmh":6.311,"whole_race_kmh":6.674,"composition_share":0.7604},{"clock_s":23400,"on_course":155,"current_kmh":5.934,"whole_race_kmh":6.157,"composition_share":0.804}],"ghosts":[{"target_s":9000,"ahead":[0.0030339005,0.0028266154,0.0026193303,0.0024120452,0.0024308893,0.0022424482,0.0018844103,0.0015075282,0.00146984],"net_passes":83,"typical_20km_s":null,"even_20km_s":4265.9,"near_n":null},{"target_s":9900,"ahead":[0.0156217612,0.0141519212,0.0138504155,0.0131154955,0.0125501724,0.0119094729,0.0105338534,0.0088378842,0.0088378842],"net_passes":360,"typical_20km_s":4634.5,"even_20km_s":4692.5,"near_n":235},{"target_s":10800,"ahead":[0.0712872407,0.0664443063,0.0651629073,0.0631277442,0.0606780108,0.0556277913,0.0476378917,0.0394972393,0.0400625624],"net_passes":1657,"typical_20km_s":5051.5,"even_20km_s":5119.1,"near_n":896},{"target_s":11700,"ahead":[0.1377880792,0.1314187725,0.1312868638,0.1285356248,0.1253132832,0.1179263949,0.1060922984,0.0903009403,0.0893587352],"net_passes":2570,"typical_20km_s":5424.6,"even_20km_s":5545.7,"near_n":1225},{"target_s":12600,"ahead":[0.2756326907,0.2635536209,0.2626114158,0.2561855767,0.246330111,0.2316693991,0.207077845,0.178284056,0.1783782765],"net_passes":5161,"typical_20km_s":5850.1,"even_20km_s":5972.3,"near_n":2132},{"target_s":13500,"ahead":[0.4410462246,0.4297397629,0.425349087,0.412874291,0.3955942488,0.3750730209,0.3394199785,0.2978121997,0.294759455],"net_passes":7763,"typical_20km_s":6166.7,"even_20km_s":6398.9,"near_n":2279},{"target_s":14400,"ahead":[0.6376844367,0.6268490776,0.6228729719,0.606195941,0.580341832,0.5489852451,0.4981627,0.446435638,0.4450034862],"net_passes":10225,"typical_20km_s":6555.2,"even_20km_s":6825.5,"near_n":2833},{"target_s":15300,"ahead":[0.7835189477,0.7715717866,0.7638080163,0.7466787269,0.7191474928,0.6874894002,0.6373640869,0.5793996269,0.5747074453],"net_passes":11081,"typical_20km_s":6806.7,"even_20km_s":7252.0,"near_n":2310},{"target_s":16200,"ahead":[0.8808487384,0.8687131362,0.862626491,0.8452145401,0.8211883091,0.7919422617,0.7487704223,0.6974013982,0.6945559387],"net_passes":9886,"typical_20km_s":7110.5,"even_20km_s":7678.6,"near_n":1976},{"target_s":17100,"ahead":[0.9438634179,0.9352705071,0.928656227,0.9149754084,0.8943034277,0.8704656378,0.8356228918,0.7924133642,0.7913392504],"net_passes":8094,"typical_20km_s":7402.3,"even_20km_s":8105.2,"near_n":1545},{"target_s":18000,"ahead":[0.9751446285,0.9693218007,0.9642527371,0.9547741534,0.9405280118,0.9242843952,0.8982418452,0.8671867639,0.8681855013],"net_passes":5676,"typical_20km_s":7766.7,"even_20km_s":8531.8,"near_n":1092},{"target_s":18900,"ahead":[0.9890138881,0.9863757137,0.9834737219,0.9767652213,0.9663632766,0.9546234006,0.9384363164,0.9166902218,0.9162756515],"net_passes":3860,"typical_20km_s":8003.4,"even_20km_s":8958.4,"near_n":709},{"target_s":19800,"ahead":[0.9957035446,0.9940452635,0.9923681384,0.9881282153,0.9815516234,0.973769009,0.9641208284,0.949196299,0.9497050898],"net_passes":2441,"typical_20km_s":8389.4,"even_20km_s":9385.0,"near_n":507},{"target_s":20700,"ahead":[0.9983982513,0.9976444872,0.996890723,0.9943467692,0.9909359866,0.9865264665,0.9802325362,0.9708858613,0.9708481731],"net_passes":1462,"typical_20km_s":8741.9,"even_20km_s":9811.6,"near_n":280},{"target_s":21600,"ahead":[0.9992085477,0.9986997569,0.9984359395,0.9975879548,0.9959862061,0.9938945107,0.9906721691,0.9850943147,0.9854523527],"net_passes":730,"typical_20km_s":9231.8,"even_20km_s":10238.2,"near_n":193}],"pack":{"checkpoint_km":10.0,"window_start_s":3270,"n":1403,"quantiles":[{"km":5.0,"p10_s":1613.0,"p50_s":1637.0,"p90_s":1657.8},{"km":10.0,"p10_s":3273.0,"p50_s":3285.0,"p90_s":3296.8},{"km":15.0,"p10_s":4890.0,"p50_s":4935.0,"p90_s":4988.0},{"km":20.0,"p10_s":6513.0,"p50_s":6603.0,"p90_s":6749.0},{"km":25.0,"p10_s":8146.2,"p50_s":8304.0,"p90_s":8623.4},{"km":30.0,"p10_s":9786.2,"p50_s":10041.0,"p90_s":10683.0},{"km":35.0,"p10_s":11461.2,"p50_s":11903.0,"p90_s":13033.4},{"km":40.0,"p10_s":13203.0,"p50_s":13909.0,"p90_s":15541.8},{"km":42.195,"p10_s":13923.2,"p50_s":14717.0,"p90_s":16449.2}],"finish_window_min":42.1},"file":"replay/paris-2024.json"},{"slug":"valencia-2025","city":"Valencia","year":2025,"race":"Valencia Marathon","finishes":29964,"sample":1500,"first_finish_s":7344.0,"median_finish_s":13061.0,"last_finish_s":22920.0,"snapshots":[{"clock_s":3600,"finished_share":0.0,"front10_km":15.145,"median_km":12.126,"back10_km":9.894},{"clock_s":7200,"finished_share":0.0,"front10_km":30.076,"median_km":24.186,"back10_km":19.601},{"clock_s":10800,"finished_share":0.179648912,"front10_km":42.195,"median_km":35.458,"back10_km":28.568},{"clock_s":14400,"finished_share":0.6947670538,"front10_km":42.195,"median_km":42.195,"back10_km":36.69},{"clock_s":18000,"finished_share":0.9523761848,"front10_km":42.195,"median_km":42.195,"back10_km":42.195},{"clock_s":21600,"finished_share":0.9991656655,"front10_km":42.195,"median_km":42.195,"back10_km":42.195}],"moments":{"first_finish_s":7344.0,"not_past_20_at_first":3008,"not_past_10_at_first":0,"past_30_at_first":3890,"back_km_at_first":14.95,"half_home_s":13061.0,"half_home_ratio":1.778,"finish_quantiles_s":{"0.01":8783.6,"0.1":10243.3,"0.5":13061.0,"0.9":16836.7,"0.99":19902.4},"peak_minute":179,"peak_minute_n":428,"minute_240_n":224},"composition":[{"clock_s":600,"on_course":29964,"current_kmh":12.335,"whole_race_kmh":11.823},{"clock_s":3600,"on_course":29964,"current_kmh":12.38,"whole_race_kmh":11.823,"composition_share":null},{"clock_s":5400,"on_course":29964,"current_kmh":12.255,"whole_race_kmh":11.823,"composition_share":0.0},{"clock_s":7200,"on_course":29964,"current_kmh":11.911,"whole_race_kmh":11.823,"composition_share":0.0},{"clock_s":9000,"on_course":29459,"current_kmh":11.334,"whole_race_kmh":11.721,"composition_share":0.1019},{"clock_s":10800,"on_course":24581,"current_kmh":10.317,"whole_race_kmh":11.07,"composition_share":0.3731},{"clock_s":12600,"on_course":16941,"current_kmh":9.348,"whole_race_kmh":10.228,"composition_share":0.534},{"clock_s":14400,"on_course":9146,"current_kmh":8.44,"whole_race_kmh":9.348,"composition_share":0.6354},{"clock_s":16200,"on_course":4190,"current_kmh":7.806,"whole_race_kmh":8.598,"composition_share":0.7121},{"clock_s":18000,"on_course":1427,"current_kmh":7.277,"whole_race_kmh":7.927,"composition_share":0.7703},{"clock_s":19800,"on_course":329,"current_kmh":6.964,"whole_race_kmh":7.397,"composition_share":0.8241}],"ghosts":[{"target_s":9000,"ahead":[0.0212922173,0.0231945001,0.0236951008,0.0240955814,0.0231945001,0.0213589641,0.0184554799,0.0167534375,0.0168535576],"net_passes":133,"typical_20km_s":4230.4,"even_20km_s":4265.9,"near_n":302},{"target_s":9900,"ahead":[0.0793619009,0.0834668269,0.0851688693,0.08566947,0.0831664664,0.0798625017,0.072887465,0.0676144707,0.0668802563],"net_passes":374,"typical_20km_s":4640.7,"even_20km_s":4692.5,"near_n":739},{"target_s":10800,"ahead":[0.2077826725,0.2265718863,0.2293752503,0.2316112669,0.224803097,0.2125550661,0.1939660926,0.1803831264,0.1794152984],"net_passes":850,"typical_20km_s":5064.2,"even_20km_s":5119.1,"near_n":1476},{"target_s":11700,"ahead":[0.3561273528,0.3635362435,0.3642704579,0.3635362435,0.3572954212,0.3427780003,0.321051929,0.3006274196,0.2968896009],"net_passes":1775,"typical_20km_s":5416.9,"even_20km_s":5545.7,"near_n":1347},{"target_s":12600,"ahead":[0.5086437058,0.5175543986,0.5182218662,0.5188225871,0.5081764784,0.4885195568,0.4606861567,0.4378921372,0.4344213056],"net_passes":2224,"typical_20km_s":5841.4,"even_20km_s":5972.3,"near_n":1549},{"target_s":13500,"ahead":[0.6531170738,0.6592911494,0.6599919904,0.6581898278,0.6475437191,0.6266519824,0.5954812442,0.5691162729,0.564577493],"net_passes":2653,"typical_20km_s":6171.7,"even_20km_s":6398.9,"near_n":1247},{"target_s":14400,"ahead":[0.7938192498,0.8025297023,0.802062475,0.7962555066,0.7810038713,0.7566746763,0.7228006942,0.6969363236,0.6944666934],"net_passes":2977,"typical_20km_s":6583.7,"even_20km_s":6825.5,"near_n":1293},{"target_s":15300,"ahead":[0.8964090242,0.8968428781,0.8931718062,0.8866639968,0.8731811507,0.8491856895,0.8172807369,0.790949139,0.7859431318],"net_passes":3310,"typical_20km_s":6815.1,"even_20km_s":7252.0,"near_n":787},{"target_s":16200,"ahead":[0.9497396876,0.9477706581,0.9427312775,0.9375917768,0.9278133761,0.9097583767,0.8854625551,0.8629021492,0.860165532],"net_passes":2684,"typical_20km_s":7148.0,"even_20km_s":7678.6,"near_n":691},{"target_s":17100,"ahead":[0.9801762115,0.977339474,0.9737017755,0.9691296222,0.9614871179,0.9498398078,0.9326858897,0.9163663062,0.9138299292],"net_passes":1988,"typical_20km_s":7413.6,"even_20km_s":8105.2,"near_n":445},{"target_s":18000,"ahead":[0.9948604993,0.9938926712,0.9919570151,0.9876852223,0.9826792151,0.9748364704,0.9636230143,0.9532772661,0.9523761848],"net_passes":1273,"typical_20km_s":7734.0,"even_20km_s":8531.8,"near_n":285},{"target_s":18900,"ahead":[0.9988319317,0.9986650647,0.998164464,0.9967294086,0.9937258043,0.9889867841,0.981711387,0.9748698438,0.9734347884],"net_passes":761,"typical_20km_s":8081.3,"even_20km_s":8958.4,"near_n":167},{"target_s":19800,"ahead":[0.9997997597,0.9995995194,0.9995995194,0.999299159,0.9989654252,0.9968962755,0.9928914698,0.9894206381,0.9889534108],"net_passes":325,"typical_20km_s":8484.7,"even_20km_s":9385.0,"near_n":108},{"target_s":20700,"ahead":[0.9998998799,1.0,0.9999666266,0.9998331331,0.9995327727,0.9993659058,0.9984981978,0.9967294086,0.9962955547],"net_passes":108,"typical_20km_s":null,"even_20km_s":9811.6,"near_n":null},{"target_s":21600,"ahead":[0.9999332532,1.0,1.0,1.0,0.9999332532,0.9997997597,0.9994993993,0.9992657856,0.9991656655],"net_passes":23,"typical_20km_s":null,"even_20km_s":10238.2,"near_n":null}],"pack":{"checkpoint_km":10.0,"window_start_s":2940,"n":836,"quantiles":[{"km":5.0,"p10_s":1463.0,"p50_s":1481.0,"p90_s":1499.5},{"km":10.0,"p10_s":2943.0,"p50_s":2955.0,"p90_s":2967.0},{"km":15.0,"p10_s":4401.0,"p50_s":4432.0,"p90_s":4463.0},{"km":20.0,"p10_s":5845.0,"p50_s":5909.0,"p90_s":5976.5},{"km":25.0,"p10_s":7298.0,"p50_s":7406.0,"p90_s":7570.5},{"km":30.0,"p10_s":8749.0,"p50_s":8923.0,"p90_s":9306.0},{"km":35.0,"p10_s":10236.0,"p50_s":10518.5,"p90_s":11290.0},{"km":40.0,"p10_s":11724.5,"p50_s":12185.0,"p90_s":13237.0},{"km":42.195,"p10_s":12371.0,"p50_s":12891.0,"p90_s":14038.0}],"finish_window_min":27.78},"file":"replay/valencia-2025.json"},{"slug":"amsterdam-2025","city":"Amsterdam","year":2025,"race":"Amsterdam Marathon","finishes":23220,"sample":1500,"first_finish_s":7410.0,"median_finish_s":14109.0,"last_finish_s":26702.0,"snapshots":[{"clock_s":3600,"finished_share":0.0,"front10_km":14.026,"median_km":11.011,"back10_km":9.226},{"clock_s":7200,"finished_share":0.0,"front10_km":27.966,"median_km":21.991,"back10_km":18.311},{"clock_s":10800,"finished_share":0.0795004307,"front10_km":41.036,"median_km":32.706,"back10_km":27.015},{"clock_s":14400,"finished_share":0.5712747631,"front10_km":42.195,"median_km":42.195,"back10_km":35.064},{"clock_s":18000,"finished_share":0.9230835487,"front10_km":42.195,"median_km":42.195,"back10_km":42.195},{"clock_s":21600,"finished_share":0.9936261843,"front10_km":42.195,"median_km":42.195,"back10_km":42.195}],"moments":{"first_finish_s":7410.0,"not_past_20_at_first":4447,"not_past_10_at_first":0,"past_30_at_first":1096,"back_km_at_first":12.82,"half_home_s":14109.0,"half_home_ratio":1.904,"finish_quantiles_s":{"0.01":9455.8,"0.1":11122.9,"0.5":14109.0,"0.9":17621.0,"0.99":21102.6},"peak_minute":238,"peak_minute_n":379,"minute_240_n":244},"composition":[{"clock_s":600,"on_course":23220,"current_kmh":11.283,"whole_race_kmh":10.969},{"clock_s":3600,"on_course":23220,"current_kmh":11.31,"whole_race_kmh":10.969,"composition_share":null},{"clock_s":5400,"on_course":23220,"current_kmh":11.265,"whole_race_kmh":10.969,"composition_share":null},{"clock_s":7200,"on_course":23220,"current_kmh":11.157,"whole_race_kmh":10.969,"composition_share":0.0},{"clock_s":9000,"on_course":23093,"current_kmh":10.863,"whole_race_kmh":10.931,"composition_share":0.0905},{"clock_s":10800,"on_course":21374,"current_kmh":10.218,"whole_race_kmh":10.621,"composition_share":0.3268},{"clock_s":12600,"on_course":17100,"current_kmh":9.49,"whole_race_kmh":10.067,"composition_share":0.5031},{"clock_s":14400,"on_course":9955,"current_kmh":8.592,"whole_race_kmh":9.266,"composition_share":0.6329},{"clock_s":16200,"on_course":4801,"current_kmh":7.881,"whole_race_kmh":8.511,"composition_share":0.7225},{"clock_s":18000,"on_course":1786,"current_kmh":7.242,"whole_race_kmh":7.799,"composition_share":0.7845},{"clock_s":19800,"on_course":607,"current_kmh":6.784,"whole_race_kmh":7.217,"composition_share":0.834},{"clock_s":21600,"on_course":148,"current_kmh":6.212,"whole_race_kmh":6.651,"composition_share":0.8515}],"ghosts":[{"target_s":9000,"ahead":[0.0070198105,0.0071490095,0.0072351421,0.0071059432,0.0068906115,0.0066752799,0.0060723514,0.0058570198,0.0054263566],"net_passes":37,"typical_20km_s":null,"even_20km_s":4265.9,"near_n":null},{"target_s":9900,"ahead":[0.0194659776,0.0220930233,0.0220930233,0.0221360896,0.0224806202,0.0223083549,0.0218776916,0.0208010336,0.0202842377],"net_passes":-19,"typical_20km_s":4694.0,"even_20km_s":4692.5,"near_n":221},{"target_s":10800,"ahead":[0.0861757106,0.0957364341,0.0951335056,0.0954349699,0.0955211025,0.0928940568,0.0863479759,0.0804909561,0.0794573643],"net_passes":156,"typical_20km_s":5098.4,"even_20km_s":5119.1,"near_n":718},{"target_s":11700,"ahead":[0.1654608096,0.1679586563,0.1699397071,0.1691645134,0.1684754522,0.1661498708,0.1599913867,0.1528423773,0.1504737295],"net_passes":348,"typical_20km_s":5496.9,"even_20km_s":5545.7,"near_n":661},{"target_s":12600,"ahead":[0.2908268734,0.2973729543,0.298794143,0.2996554694,0.2994401378,0.2942721792,0.279672696,0.2659776055,0.2633505599],"net_passes":638,"typical_20km_s":5933.6,"even_20km_s":5972.3,"near_n":1157},{"target_s":13500,"ahead":[0.4368647717,0.4412144703,0.4426356589,0.442377261,0.4395348837,0.4329026701,0.4127906977,0.3959517657,0.3914728682],"net_passes":1054,"typical_20km_s":6325.7,"even_20km_s":6398.9,"near_n":1085},{"target_s":14400,"ahead":[0.6327734711,0.6380706288,0.6391903531,0.6365202412,0.6311369509,0.6198105082,0.592377261,0.5732988803,0.5710163652],"net_passes":1434,"typical_20km_s":6750.9,"even_20km_s":6825.5,"near_n":1426},{"target_s":15300,"ahead":[0.7775193798,0.7785529716,0.7753660637,0.7704134367,0.7614556417,0.7462101637,0.7195090439,0.6965116279,0.6900086133],"net_passes":2032,"typical_20km_s":6999.7,"even_20km_s":7252.0,"near_n":819},{"target_s":16200,"ahead":[0.8781653747,0.8785960379,0.8727820844,0.8671403962,0.8561584841,0.8409991387,0.8156330749,0.7971576227,0.7930232558],"net_passes":1977,"typical_20km_s":7396.0,"even_20km_s":7678.6,"near_n":744},{"target_s":17100,"ahead":[0.9418604651,0.9401378122,0.934496124,0.928079242,0.9192937123,0.9066752799,0.8856158484,0.8710163652,0.8683462532],"net_passes":1707,"typical_20km_s":7726.8,"even_20km_s":8105.2,"near_n":509},{"target_s":18000,"ahead":[0.9769164513,0.9754091301,0.9720499569,0.9670542636,0.9595176572,0.9496554694,0.9355727821,0.9248062016,0.9230835487],"net_passes":1250,"typical_20km_s":8048.6,"even_20km_s":8531.8,"near_n":372},{"target_s":18900,"ahead":[0.9908268734,0.9890180879,0.9875538329,0.9839793282,0.9797588286,0.9724806202,0.9624461671,0.955081826,0.954005168],"net_passes":855,"typical_20km_s":8273.9,"even_20km_s":8958.4,"near_n":191},{"target_s":19800,"ahead":[0.9957795004,0.9954349699,0.9936692506,0.9914728682,0.9887166236,0.9852282515,0.9795004307,0.9746770026,0.9738587425],"net_passes":509,"typical_20km_s":8542.2,"even_20km_s":9385.0,"near_n":125},{"target_s":20700,"ahead":[0.9984065461,0.9978466839,0.9971576227,0.9959086994,0.9945736434,0.9919035314,0.9893195521,0.9869939707,0.9860034453],"net_passes":288,"typical_20km_s":null,"even_20km_s":9811.6,"near_n":null},{"target_s":21600,"ahead":[0.9993109388,0.9991817399,0.9990094746,0.9984065461,0.9975021533,0.9960809647,0.9948751077,0.993712317,0.9936261843],"net_passes":132,"typical_20km_s":null,"even_20km_s":10238.2,"near_n":null}],"pack":{"checkpoint_km":10.0,"window_start_s":3270,"n":628,"quantiles":[{"km":5.0,"p10_s":1627.7,"p50_s":1646.0,"p90_s":1666.0},{"km":10.0,"p10_s":3273.0,"p50_s":3284.0,"p90_s":3297.0},{"km":15.0,"p10_s":4885.0,"p50_s":4924.0,"p90_s":4971.3},{"km":20.0,"p10_s":6490.0,"p50_s":6568.5,"p90_s":6660.0},{"km":25.0,"p10_s":8088.7,"p50_s":8219.0,"p90_s":8380.3},{"km":30.0,"p10_s":9692.7,"p50_s":9882.0,"p90_s":10166.5},{"km":35.0,"p10_s":11307.0,"p50_s":11600.0,"p90_s":12230.8},{"km":40.0,"p10_s":12936.7,"p50_s":13359.5,"p90_s":14345.9},{"km":42.195,"p10_s":13650.0,"p50_s":14121.0,"p90_s":15293.6}],"finish_window_min":27.39},"file":"replay/amsterdam-2025.json"}],"field_spread":[{"km":5.0,"p10_s":1329.0,"p25_s":1499.0,"p50_s":1690.0,"p75_s":1903.0,"p90_s":2103.0},{"km":10.0,"p10_s":2651.0,"p25_s":2985.0,"p50_s":3365.0,"p75_s":3799.0,"p90_s":4219.0},{"km":15.0,"p10_s":3981.0,"p25_s":4476.0,"p50_s":5047.0,"p75_s":5706.0,"p90_s":6360.0},{"km":20.0,"p10_s":5326.0,"p25_s":5983.0,"p50_s":6754.0,"p75_s":7662.0,"p90_s":8592.0},{"km":25.0,"p10_s":6695.0,"p25_s":7520.0,"p50_s":8504.0,"p75_s":9714.0,"p90_s":10980.0},{"km":30.0,"p10_s":8093.0,"p25_s":9104.0,"p50_s":10313.0,"p75_s":11858.0,"p90_s":13473.0},{"km":35.0,"p10_s":9546.0,"p25_s":10764.0,"p50_s":12234.0,"p75_s":14121.0,"p90_s":16095.0},{"km":40.0,"p10_s":11048.0,"p25_s":12487.0,"p50_s":14250.0,"p75_s":16455.0,"p90_s":18771.0},{"km":42.195,"p10_s":11688.0,"p25_s":13214.0,"p50_s":15093.0,"p75_s":17407.0,"p90_s":19850.0}],"stretch":{"editions":[{"city":"Amsterdam","year":2012,"n":9986,"stretch":1.0839},{"city":"Amsterdam","year":2013,"n":10871,"stretch":1.1089},{"city":"Amsterdam","year":2014,"n":11959,"stretch":1.0974},{"city":"Amsterdam","year":2015,"n":12201,"stretch":1.0887},{"city":"Amsterdam","year":2016,"n":12113,"stretch":1.1138},{"city":"Amsterdam","year":2017,"n":10942,"stretch":1.1204},{"city":"Amsterdam","year":2018,"n":11985,"stretch":1.1049},{"city":"Amsterdam","year":2019,"n":13253,"stretch":1.0968},{"city":"Amsterdam","year":2021,"n":6491,"stretch":1.1057},{"city":"Amsterdam","year":2022,"n":12458,"stretch":1.1037},{"city":"Amsterdam","year":2024,"n":16735,"stretch":1.0823},{"city":"Amsterdam","year":2025,"n":23220,"stretch":1.0836},{"city":"Auckland","year":2016,"n":1541,"stretch":1.1474},{"city":"Auckland","year":2019,"n":1560,"stretch":1.1508},{"city":"Austin","year":2017,"n":2568,"stretch":1.0973},{"city":"Austin","year":2018,"n":2439,"stretch":1.1196},{"city":"Austin","year":2019,"n":2614,"stretch":1.1266},{"city":"Barcelona","year":2025,"n":20716,"stretch":1.1124},{"city":"Barcelona","year":2026,"n":23955,"stretch":1.118},{"city":"Berlin","year":2005,"n":30211,"stretch":1.0818},{"city":"Berlin","year":2006,"n":30026,"stretch":1.0963},{"city":"Berlin","year":2007,"n":32344,"stretch":1.0787},{"city":"Berlin","year":2008,"n":35500,"stretch":1.0813},{"city":"Berlin","year":2009,"n":34704,"stretch":1.1067},{"city":"Berlin","year":2010,"n":33816,"stretch":1.0643},{"city":"Berlin","year":2011,"n":27208,"stretch":1.1027},{"city":"Berlin","year":2012,"n":34074,"stretch":1.0917},{"city":"Berlin","year":2013,"n":36283,"stretch":1.0784},{"city":"Berlin","year":2014,"n":28819,"stretch":1.1042},{"city":"Berlin","year":2015,"n":36545,"stretch":1.0936},{"city":"Berlin","year":2016,"n":35821,"stretch":1.1188},{"city":"Berlin","year":2017,"n":38815,"stretch":1.0898},{"city":"Berlin","year":2018,"n":40362,"stretch":1.1294},{"city":"Berlin","year":2019,"n":43691,"stretch":1.1091},{"city":"Berlin","year":2021,"n":22985,"stretch":1.1263},{"city":"Berlin","year":2022,"n":34666,"stretch":1.1332},{"city":"Berlin","year":2023,"n":42182,"stretch":1.1205},{"city":"Berlin","year":2024,"n":53417,"stretch":1.1179},{"city":"Berlin","year":2025,"n":47851,"stretch":1.0554},{"city":"Berlin","year":2026,"n":49953,"stretch":1.1191},{"city":"Boston","year":2014,"n":31735,"stretch":1.1743},{"city":"Boston","year":2015,"n":26432,"stretch":1.0934},{"city":"Boston","year":2018,"n":25121,"stretch":1.1206},{"city":"Boston","year":2019,"n":24999,"stretch":1.1433},{"city":"Boston","year":2021,"n":15288,"stretch":1.1545},{"city":"Boston","year":2022,"n":24763,"stretch":1.117},{"city":"Boston","year":2023,"n":26429,"stretch":1.0918},{"city":"Boston","year":2024,"n":25460,"stretch":1.1229},{"city":"Boston","year":2025,"n":28340,"stretch":1.1031},{"city":"Boston","year":2026,"n":28702,"stretch":1.0881},{"city":"Chicago","year":2006,"n":32798,"stretch":1.0785},{"city":"Chicago","year":2008,"n":31115,"stretch":1.1034},{"city":"Chicago","year":2009,"n":29201,"stretch":1.098},{"city":"Chicago","year":2010,"n":35272,"stretch":1.1108},{"city":"Chicago","year":2011,"n":34952,"stretch":1.1044},{"city":"Chicago","year":2012,"n":37242,"stretch":1.1314},{"city":"Chicago","year":2013,"n":37497,"stretch":1.1253},{"city":"Chicago","year":2014,"n":40430,"stretch":1.1281},{"city":"Chicago","year":2015,"n":37367,"stretch":1.1577},{"city":"Chicago","year":2016,"n":40416,"stretch":1.1333},{"city":"Chicago","year":2017,"n":44009,"stretch":1.1397},{"city":"Chicago","year":2018,"n":44224,"stretch":1.1261},{"city":"Chicago","year":2019,"n":45722,"stretch":1.1453},{"city":"Chicago","year":2021,"n":25969,"stretch":1.0933},{"city":"Chicago","year":2022,"n":39051,"stretch":1.1529},{"city":"Chicago","year":2023,"n":48228,"stretch":1.1323},{"city":"Chicago","year":2024,"n":51863,"stretch":1.1165},{"city":"Chicago","year":2025,"n":53619,"stretch":1.1258},{"city":"Chicago","year":2026,"n":54275,"stretch":1.1277},{"city":"Copenhagen","year":2014,"n":9528,"stretch":1.0836},{"city":"Copenhagen","year":2015,"n":9097,"stretch":1.1096},{"city":"Copenhagen","year":2016,"n":8171,"stretch":1.1269},{"city":"Copenhagen","year":2017,"n":7960,"stretch":1.1139},{"city":"Copenhagen","year":2018,"n":7338,"stretch":1.1328},{"city":"Copenhagen","year":2019,"n":10707,"stretch":1.1408},{"city":"Copenhagen","year":2022,"n":8461,"stretch":1.11},{"city":"Copenhagen","year":2023,"n":10109,"stretch":1.1164},{"city":"Copenhagen","year":2024,"n":14404,"stretch":1.0775},{"city":"Copenhagen","year":2025,"n":18409,"stretch":1.0868},{"city":"Copenhagen","year":2026,"n":21511,"stretch":1.0892},{"city":"Dubai","year":2016,"n":1852,"stretch":1.1623},{"city":"Dubai","year":2019,"n":1688,"stretch":1.2011},{"city":"Dubai","year":2020,"n":1824,"stretch":1.1613},{"city":"Dubai","year":2023,"n":3742,"stretch":1.1683},{"city":"Dubai","year":2024,"n":1245,"stretch":1.109},{"city":"Eindhoven","year":2011,"n":1268,"stretch":1.0544},{"city":"Eindhoven","year":2012,"n":1264,"stretch":1.0622},{"city":"Eindhoven","year":2013,"n":1277,"stretch":1.0757},{"city":"Eindhoven","year":2014,"n":1154,"stretch":1.0704},{"city":"Eindhoven","year":2015,"n":1839,"stretch":1.0963},{"city":"Eindhoven","year":2016,"n":2123,"stretch":1.0817},{"city":"Eindhoven","year":2018,"n":2012,"stretch":1.1301},{"city":"Eindhoven","year":2019,"n":2386,"stretch":1.1209},{"city":"Eindhoven","year":2021,"n":1377,"stretch":1.0929},{"city":"Eindhoven","year":2022,"n":2459,"stretch":1.1022},{"city":"Eindhoven","year":2023,"n":2866,"stretch":1.1157},{"city":"Eindhoven","year":2024,"n":4728,"stretch":1.0978},{"city":"Eindhoven","year":2025,"n":4305,"stretch":1.106},{"city":"Frankfurt","year":2018,"n":10569,"stretch":1.1001},{"city":"Frankfurt","year":2019,"n":10484,"stretch":1.0913},{"city":"Frankfurt","year":2022,"n":6729,"stretch":1.1504},{"city":"Frankfurt","year":2023,"n":8286,"stretch":1.1113},{"city":"Frankfurt","year":2024,"n":8789,"stretch":1.1224},{"city":"Frankfurt","year":2025,"n":10604,"stretch":1.1054},{"city":"Gold Coast","year":2016,"n":5331,"stretch":1.1663},{"city":"Gold Coast","year":2017,"n":5111,"stretch":1.1761},{"city":"Gold Coast","year":2018,"n":5712,"stretch":1.1639},{"city":"Gold Coast","year":2019,"n":5620,"stretch":1.1328},{"city":"Gold Coast","year":2022,"n":3959,"stretch":1.1823},{"city":"Gold Coast","year":2023,"n":5811,"stretch":1.1696},{"city":"Hamburg","year":2013,"n":11355,"stretch":1.0733},{"city":"Hamburg","year":2014,"n":12806,"stretch":1.0724},{"city":"Hamburg","year":2015,"n":14663,"stretch":1.0688},{"city":"Hamburg","year":2016,"n":12019,"stretch":1.0743},{"city":"Hamburg","year":2017,"n":11884,"stretch":1.077},{"city":"Hamburg","year":2018,"n":9953,"stretch":1.1024},{"city":"Hamburg","year":2019,"n":10010,"stretch":1.0719},{"city":"Hamburg","year":2022,"n":5460,"stretch":1.0726},{"city":"Hamburg","year":2023,"n":8343,"stretch":1.1101},{"city":"Hamburg","year":2024,"n":10481,"stretch":1.0913},{"city":"Hamburg","year":2025,"n":10595,"stretch":1.088},{"city":"Helsinki","year":2015,"n":3356,"stretch":1.0594},{"city":"Helsinki","year":2016,"n":2716,"stretch":1.072},{"city":"Helsinki","year":2017,"n":1781,"stretch":1.0499},{"city":"London","year":2019,"n":41765,"stretch":1.1314},{"city":"London","year":2025,"n":53796,"stretch":1.1082},{"city":"London","year":2026,"n":56762,"stretch":1.1189},{"city":"Madrid","year":2019,"n":7677,"stretch":1.1182},{"city":"Madrid","year":2021,"n":2978,"stretch":1.14},{"city":"Madrid","year":2022,"n":4152,"stretch":1.0983},{"city":"Madrid","year":2024,"n":8495,"stretch":1.1086},{"city":"Madrid","year":2025,"n":9910,"stretch":1.124},{"city":"Madrid","year":2026,"n":10813,"stretch":1.1373},{"city":"New York","year":2009,"n":42364,"stretch":1.1108},{"city":"New York","year":2010,"n":43854,"stretch":1.1104},{"city":"New York","year":2011,"n":45929,"stretch":1.1038},{"city":"New York","year":2013,"n":48583,"stretch":1.1157},{"city":"New York","year":2014,"n":42792,"stretch":1.1155},{"city":"New York","year":2015,"n":48685,"stretch":1.1063},{"city":"New York","year":2016,"n":50546,"stretch":1.1064},{"city":"New York","year":2017,"n":49354,"stretch":1.114},{"city":"New York","year":2018,"n":51928,"stretch":1.116},{"city":"New York","year":2019,"n":52752,"stretch":1.1199},{"city":"New York","year":2021,"n":24617,"stretch":1.128},{"city":"New York","year":2022,"n":46935,"stretch":1.0602},{"city":"New York","year":2023,"n":50436,"stretch":1.1032},{"city":"New York","year":2024,"n":55064,"stretch":1.121},{"city":"New York","year":2025,"n":58339,"stretch":1.1037},{"city":"Oslo","year":2016,"n":2384,"stretch":1.1211},{"city":"Oslo","year":2017,"n":1975,"stretch":1.0188},{"city":"Oslo","year":2018,"n":2204,"stretch":1.1171},{"city":"Oslo","year":2022,"n":1788,"stretch":1.0647},{"city":"Oslo","year":2023,"n":2490,"stretch":1.1057},{"city":"Oslo","year":2024,"n":3958,"stretch":1.1222},{"city":"Oslo","year":2025,"n":4112,"stretch":1.0988},{"city":"Oslo","year":2026,"n":3423,"stretch":1.0809},{"city":"Paris","year":2019,"n":46903,"stretch":1.1333},{"city":"Paris","year":2024,"n":53067,"stretch":1.1487},{"city":"Rotterdam","year":2013,"n":8281,"stretch":1.1003},{"city":"Rotterdam","year":2014,"n":10601,"stretch":1.078},{"city":"Rotterdam","year":2015,"n":11756,"stretch":1.0891},{"city":"Rotterdam","year":2016,"n":12740,"stretch":1.1027},{"city":"Rotterdam","year":2017,"n":12693,"stretch":1.1176},{"city":"Rotterdam","year":2018,"n":13790,"stretch":1.1077},{"city":"Rotterdam","year":2019,"n":14269,"stretch":1.1041},{"city":"Rotterdam","year":2021,"n":10632,"stretch":1.1048},{"city":"Rotterdam","year":2022,"n":11613,"stretch":1.0941},{"city":"Rotterdam","year":2023,"n":16543,"stretch":1.0701},{"city":"Rotterdam","year":2024,"n":17005,"stretch":1.0812},{"city":"Singapore","year":2025,"n":8877,"stretch":1.1868},{"city":"Stockholm","year":2011,"n":9924,"stretch":1.0499},{"city":"Stockholm","year":2021,"n":6952,"stretch":1.0992},{"city":"Stockholm","year":2024,"n":16949,"stretch":1.0692},{"city":"Sydney","year":2017,"n":3461,"stretch":1.1547},{"city":"Sydney","year":2018,"n":3552,"stretch":1.1594},{"city":"Sydney","year":2019,"n":4332,"stretch":1.1795},{"city":"Valencia","year":2021,"n":12410,"stretch":1.0849},{"city":"Valencia","year":2022,"n":21306,"stretch":1.1016},{"city":"Valencia","year":2023,"n":24578,"stretch":1.0954},{"city":"Valencia","year":2024,"n":27515,"stretch":1.1223},{"city":"Valencia","year":2025,"n":29964,"stretch":1.1328},{"city":"Warsaw","year":2015,"n":6883,"stretch":1.1085},{"city":"Warsaw","year":2016,"n":6512,"stretch":1.0853},{"city":"Warsaw","year":2017,"n":5467,"stretch":1.1086},{"city":"Warsaw","year":2018,"n":4290,"stretch":1.1053},{"city":"Warsaw","year":2021,"n":2640,"stretch":1.1195},{"city":"Warsaw","year":2022,"n":3699,"stretch":1.111},{"city":"Warsaw","year":2026,"n":10680,"stretch":1.1357},{"city":"Washington","year":2008,"n":17385,"stretch":1.1059},{"city":"Washington","year":2009,"n":19593,"stretch":1.1165},{"city":"Washington","year":2010,"n":20820,"stretch":1.1224},{"city":"Washington","year":2011,"n":19708,"stretch":1.1146},{"city":"Washington","year":2012,"n":21771,"stretch":1.1083},{"city":"Washington","year":2013,"n":19737,"stretch":1.132},{"city":"Washington","year":2014,"n":18995,"stretch":1.1254},{"city":"Washington","year":2015,"n":21776,"stretch":1.1397},{"city":"Washington","year":2016,"n":18866,"stretch":1.1386},{"city":"Washington","year":2017,"n":16195,"stretch":1.1182},{"city":"Washington","year":2018,"n":18994,"stretch":1.123}],"wider_after_20":199,"mean":1.1105,"min":{"city":"Oslo","year":2017,"n":1975,"stretch":1.0188},"max":{"city":"Dubai","year":2019,"n":1688,"stretch":1.2011},"start_offset_excluded":15},"method":"Each replay is a stratified sample of up to 1,500 eligible finishes from one race edition, chosen at evenly spaced finish-time ranks. Everyone starts together at elapsed time zero because wave and start offsets are not recorded, and each runner moves at a constant speed within each recorded section. Colours compare the current section with that runner's own 5–20 km pace."}
