{
  "schema_version": 1,
  "id": "ext_personalized_guide",
  "presentation": "personalized-guide",
  "status": "ready",
  "question_id": "personalized_guide",
  "title": "Twelve questions for your marathon",
  "as_of": "2026-09-11T16:28:51Z",
  "input_as_of": "2026-09-11T15:10:45Z",
  "input_export_id": "private-20260911-1107",
  "live_json_as_of": "2026-09-07T04:44:53Z",
  "n": 3328159,
  "cohort": {
    "deduplicated": 4207456,
    "complete": 3591032,
    "increasing": 3373737,
    "timing_eligible": 3369060,
    "eligible": 3328159,
    "source_quality_excluded": 40901,
    "raw": 4207456,
    "duplicates_removed": 0,
    "missing_or_unparsed": 616424,
    "non_increasing": 217295,
    "outside_quality_bounds": 4677
  },
  "corpus": {
    "n_records": 4207456,
    "n_cities": 34,
    "n_race_years": 240
  },
  "input_asset_sha256": "ffe901857c2603ac4305d9376a194eed171052d9835223c8ba5b19b59067a656",
  "input_manifest_sha256": "4aa3d330cb567ea02aa8c78d0f02015ac0fec35f3c8000215fbc8933ede398e2",
  "analysis_script_sha256": "40fcf17074b3acc90a008134f8732975fa8daf1ec86a36ee4ad7abfa2fd6249d",
  "supporting_script_sha256": "46c3c611af86c4ed9d6fc12aa5517ce157fd127470359b89c7f3c1fac6a99600",
  "linkage_audit": {
    "feature_rows": 4207456,
    "safe_identity_groups": 2715330,
    "record_join_method": "canonical_record_id",
    "canonical_id_contract_verified": true,
    "candidate_link_rows": 3008457,
    "natural_key_candidate_rows": 0,
    "canonical_id_candidate_rows": 3008457,
    "ambiguous_cross_export_matches": 0,
    "linked_eligible_finishes": 3008457,
    "recent_benchmark_finishes": 524323,
    "consecutive_cross_year_pairs": 546847,
    "linked_with_supplied_date": 3006219
  },
  "minimum_public_cell": 100,
  "analysis_count": 12,
  "target_min": 90,
  "target_max": 720,
  "coverage": {
    "profiles": 1253,
    "openings": 1767,
    "near": 746,
    "weather": 1360,
    "repeat": 1845,
    "gains": 860,
    "performance": 1952,
    "checkpoints": 80895
  },
  "methodology_prose": [
    "All twelve personalized questions use the complete public export. Visitor targets are chosen thresholds, never inferred historical intentions. Targets from 90 to 720 whole minutes are evaluated with strict finish < target. Sparse achieved-time and comparison groups remain unavailable rather than being estimated.",
    "Exact ages define 18\u201324 then five-year bands through 85\u201389. Age-group-only labels are not converted into exact ages. Optional recorded gender is Women, Men or all available records. Previous performance selects a 15-minute band of best times in the two strictly earlier calendar years.",
    "Every public result has at least 100 finishes or linked pairs. Age, gender and prior-performance rollups are computed directly from the same records, not by averaging subgroup medians. The site labels any broader comparison used when a narrow combination is unavailable. Availability is not statistical certainty.",
    "Section paces use actual elapsed differences divided by 5 km or 2.195 km at the finish. Quantile ranges describe variation between finishes, not confidence intervals. Higher time per distance means slower. Every complete cohort uses the same runners at all nine checkpoints.",
    "The comparison is observational. Historical route changes and declared goals are absent. Supplied elevation and start-hour weather remain proxies. Current and same-year performances are excluded from prior benchmarks. Individual identity checks follow the linked-history pipeline.",
    "Preparing, choosing a course and reviewing a past result reorder the same twelve questions. Preference changes do not change the underlying evidence. Checkpoint comparisons use current elapsed progress instead of a previous-marathon filter.",
    "Apply the reviewed source-quality edition exclusions for this exact export after the timing checks. Known invalid split grids, incomplete ingestion, unreconciled HOLD editions and a selected top-finisher field do not contribute to the analyses or prior benchmarks. Report source exclusions separately; an already invalid timing row is not counted twice. Missing age or recorded gender alone does not exclude an otherwise eligible finish from the overall cohort. Other sparse editions are not declared incomplete merely from their size."
  ],
  "source_quality": {
    "version": 1,
    "release_tag": "private-export-20260911-1107",
    "reviewed_edition_policy": true,
    "editions": [
      {
        "city": "Honolulu",
        "year": 2016,
        "category": "invalid_split_grid",
        "reason": "Producer explicitly force-dropped this incomplete 5 km grid.",
        "raw_records": 20118,
        "deduplicated_records": 20118,
        "timing_eligible_excluded": 0
      },
      {
        "city": "Rotterdam",
        "year": 2012,
        "category": "invalid_split_grid",
        "reason": "Producer explicitly force-dropped this incomplete 5 km grid.",
        "raw_records": 7542,
        "deduplicated_records": 7542,
        "timing_eligible_excluded": 0
      },
      {
        "city": "Eindhoven",
        "year": 2009,
        "category": "invalid_split_grid",
        "reason": "Producer explicitly force-dropped this incomplete 5 km grid.",
        "raw_records": 1407,
        "deduplicated_records": 1407,
        "timing_eligible_excluded": 0
      },
      {
        "city": "Eindhoven",
        "year": 2010,
        "category": "invalid_split_grid",
        "reason": "Producer explicitly force-dropped this incomplete 5 km grid.",
        "raw_records": 1462,
        "deduplicated_records": 1462,
        "timing_eligible_excluded": 0
      },
      {
        "city": "Frankfurt",
        "year": 2019,
        "category": "invalid_split_grid",
        "reason": "Producer explicitly force-dropped this 5 km grid; numerically plausible rows are not reinstated.",
        "raw_records": 12513,
        "deduplicated_records": 12513,
        "timing_eligible_excluded": 10624
      },
      {
        "city": "New York",
        "year": 2008,
        "category": "incomplete_ingestion",
        "reason": "Release notes identify a partial live-ingestion snapshot of only 200 records.",
        "raw_records": 200,
        "deduplicated_records": 200,
        "timing_eligible_excluded": 198
      },
      {
        "city": "Chicago",
        "year": 2016,
        "category": "incomplete_ingestion",
        "reason": "Producer handoff identifies this 6,512-record edition as incomplete and on HOLD.",
        "raw_records": 6512,
        "deduplicated_records": 6512,
        "timing_eligible_excluded": 6506
      },
      {
        "city": "Tokyo",
        "year": 2026,
        "category": "selected_field",
        "reason": "Source notes identify top-500 PDFs, not a representative full marathon field.",
        "raw_records": 353,
        "deduplicated_records": 353,
        "timing_eligible_excluded": 353
      },
      {
        "city": "Amsterdam",
        "year": 2025,
        "category": "unreconciled_hold",
        "reason": "Source audit marks HOLD: 23,328 listed versus 23,325 retrieved. This conservative hold does not establish a large bias from the three missing records.",
        "raw_records": 23325,
        "deduplicated_records": 23325,
        "timing_eligible_excluded": 23220
      },
      {
        "city": "Valencia",
        "year": 2017,
        "category": "incomplete_ingestion",
        "reason": "Source audit marks HOLD: 3,373 listed detail pages missing; the observed records also lack 20 km.",
        "raw_records": 12485,
        "deduplicated_records": 12485,
        "timing_eligible_excluded": 0
      }
    ],
    "policy_sha256": "c638b6c0abe3167a2d3d51aee485eae54fd6175761ef9d26d5914c9671eb15b0",
    "script_sha256": "cf1e6b359008087cf3bf9f241be13412af84358d9e808255f42bc2c292e243e6"
  },
  "source_quality_script_sha256": "cf1e6b359008087cf3bf9f241be13412af84358d9e808255f42bc2c292e243e6",
  "pacing_script_sha256": "7c6959b427fa1b06bb9600bb3377ecb226257d14aa0ec61a71a63f42bc87a3dd",
  "transport_encoding": "json",
  "transport_script_sha256": "662a7ae29021f9e529e61a48ba9dae7079f3f650c87d95231ae4760dd8077d6f",
  "transport_shards_sha256": {
    "checkpoint_00.json": "10c9fce0794020c6e294de6d2ce6186abf8665a8eebafaa1b410704a6239db99",
    "checkpoint_01.json": "bb43a9348ab31609fd0339abf920b0639139757e845b69659d3a9fc8ecdc3bcd",
    "checkpoint_02.json": "8ca3f19c6a8415598549b52bb370103bbe564599dd0136d7fb7101fe3e453407",
    "checkpoint_04.json": "0eba5d1c7a5ae10a5d5f1f0aba8cc299e4432223a9210f2c13fbc99bbf1bf465",
    "checkpoint_03.json": "ca5b81bf89efbe7752b4638fdac3536c70b38b40c30f11607b9ea7bffed17b92",
    "checkpoint_05.json": "1bb228fa810a0a634fa1691f5aa9e19d3e0abdc4a656a40704979ee81de07e13",
    "checkpoint_06.json": "435a2be5f8221b1ace921f4208796317be3b605e2e9e8fed219b01d87fab8ef3",
    "checkpoint_07.json": "6829abaa870d9297729ccd17d24df7e28a3ca480257674a8be6c76f0a8a78ebf",
    "checkpoint_08.json": "44e3722f71d4d2df0fc30373765731e2cfa6c851922c948ce586c9bd96a25995",
    "checkpoint_09.json": "733a6f233e79ca238d2bc73565d2269d51eefea8f3d012963d3ad3eb746ed595",
    "checkpoint_10.json": "1b7cdfe9d5e4c7b0483975fcfd130011067f472a3389b4284f8e896b1bd37da4",
    "checkpoint_11.json": "3b425c4242de0a7373845d82c1d95ac0901856fccdb479f901de3c043ec468cc",
    "checkpoint_12.json": "307dca078823c628bf8080ca77adf4f039c01c2dfc4ce29cf0e30e2dd1ca5f8d",
    "checkpoint_13.json": "517ca8dc124f2df74a48d1bc01a0100f80cac4665867dc32c1ea83b90d023649",
    "checkpoint_14.json": "c7701229213fef11433cd1c39c92d246c56144351942c486b55a2789e5761064",
    "checkpoint_15.json": "84de7a9167547ab2d17fd541911e27a9395f9309f0e3aa8c078aac33dc00404d",
    "checkpoint_16.json": "c87b0c74fc2a58d86551356ad9b6338f724a4d026427b920080e38515f491758",
    "checkpoint_17.json": "a78189d3ef366b02a875e922d048d4d4ad6c31b185e4300888d82469ceed3523",
    "checkpoint_18.json": "a841a92f5162f90b76b6e7633c51315f543e5692df377bb0bfe5087b8809f348",
    "checkpoint_19.json": "f687495c0a30cf134bc7b1890a2234dbb3266ef8ecd45e87409c3a3f6241f12b",
    "checkpoint_20.json": "52b0d33e7da443ce97e9c0e06496866d56da078ef339030e7ae263058fb2b088",
    "checkpoint_22.json": "becb8659ca1e67692f6dd56b36d4b363bda25dd072fb7d4049ed1e1fdd81fed3",
    "checkpoint_21.json": "a2e506dda2c14cc068af9b7a096d0f5571346b2b376a6c9fc3f05a56493f6d55",
    "checkpoint_23.json": "7ecae70e4632fd47089e145f08f23d60f19a01c447fe5b87703b7f056ec4c540",
    "checkpoint_24.json": "1fb032bfae1f85d87195c80eac322af317ade0cffd79d56d0a33f013090d4c00",
    "checkpoint_25.json": "779e3420dc85231b8184f03fb1d1737d38189da238e206296e979070b2fb47ba",
    "checkpoint_26.json": "ca10db5f3b6ec6f45c9ab04b6736552c8eea6ae69bb1fe0970039b03c3e27a95",
    "checkpoint_28.json": "f24e0df5ec0ff4408736fb78e6a11a09c464372ec88d0df0890886729101adb4",
    "city_00.json": "559d4eb6c959f9555505a11ca957117b1a58a62caa76bc22b18ed6807f5e7fdb",
    "city_01.json": "c10ebc9b6983e6ea874ec2d506388937136000954331fce3efdb369323269d2d",
    "checkpoint_27.json": "32146096e397ebf99f6582036c16d084c8bc6169d4e5dbfbf59d9755730cda8b",
    "city_02.json": "a4e4ba7c42e099e3f559a16d666a64d4da0f8bcc03d247571149eabc0531687f",
    "city_03.json": "3ed0c9a900012df514c13ba060f8bbfa87651cc7aae0bf972bc931cdc5b737af",
    "city_04.json": "0e4286146496042f8ac9eae84068adb420009a51d06b7af12d9cb6644b8b6172",
    "city_05.json": "502837e82e854adc1aa062110ac1da1a7d2320d0beca5686abc9cd7ddbc15677",
    "city_06.json": "f0aaef6111dfe5c14c699a6d0f91575d0a7cb619d2672fb1edbc78e8396c8868",
    "city_07.json": "10e2b4182f08e427393ecbc755b3382daef8f79d25af5d972a8c52df0e78efe7",
    "city_08.json": "06779693003eb2bf780967aa647e4e20bde80750d774ad2089840d7d81be459d",
    "city_09.json": "82635db7f3192a3e082315034f657646d00f186da4ec1bb26f7589abceb2f2f2",
    "city_10.json": "f8d1b768eca53d2bc22f28cc1cd95ccb1548f6225aac4bcf3488a0122f191c4c",
    "city_12.json": "d7dd2c0433d50e1e00dd73acd70d7ad7a239af40a6bc2dbc872db37da2bd15cd",
    "city_13.json": "205bb375c475cba51d4e6f61036b75863a685025d1f6a7d138f93ce2c482b9f3",
    "city_11.json": "4a5500d7b41140c8a8e1fa2cb89da896f79641330e527e55c729f385782bc320",
    "city_14.json": "bbe1518fee73223cd206842eda542c5c8081792d10747cc8614a6af2c8b29ad7",
    "city_15.json": "cde3a5b4dabd3f815ea336f7ab6b590b80fa4b2c3c941fe2d48b75053886735d",
    "city_16.json": "17310691c36032d23c63c16c0648f95811a6319e0d2f73584a61bfc0019ea8ea",
    "city_17.json": "9906e537df017e8a05e0961b6609a65abd559bb3574b684694a77a18f98de51e",
    "city_18.json": "c438cc39d25eaceab4e3100c87a71026302fa690e54935ba2d29333901732f55",
    "city_19.json": "0f53dfb9a3ef338737bcfd3d3d7ddee7ea4192ddb46300ace4f4744ad5f6c936",
    "city_20.json": "cca858012535f3b774d54d2ab39e8efe6b01d86dac2960144cdc318da6291bc5",
    "city_21.json": "d565f195479fe63244fc509a9a087821b16055f17723777bc855f1fb48375c8e",
    "city_22.json": "5fdfc2f02ef6d59f50ba765b987d10c43862a570deb3aa4a19158b9ec8ae499d",
    "city_23.json": "694ae4009bcc9934c90d557937176ece176b40192774ee83398a9c6fa632de54",
    "city_24.json": "096a12b36b150e21b0725cd40006fcf5b31e5db4ef7218fa8613ce55f76e2fab",
    "city_25.json": "c663695ed0a1dc8135672493f04441f7576c1dd031a6329995e15c2f83252c4b",
    "city_26.json": "e1aa9d2a6c732de0742b7e7491617cab3a6594de27054070f00afe971f7f9999",
    "city_27.json": "2232521d76212ecc345cd91699870ff85ad16a2480ebd73be0258ed374f51ab4",
    "city_28.json": "a249a3519e3016d12a214462b6fcbcd87bdcc4fc2cf15a34bd54aed609cbd595"
  }
}
