{
  "studyId": "frost-lsoa-deciles-v1",
  "version": "1.0.0",
  "startedAtUtc": "2026-10-11T06:19:39.905757+00:00",
  "completedAtUtc": "2026-10-11T06:20:03.371940+00:00",
  "protocolFrozenAtUtc": "2026-10-11T06:12:10.618804+00:00",
  "protocolFileSha256": "48097c23fe5946fb9f46d120e552c3fc64948defa5e743e09623b0d9da04917b",
  "protocolCanonicalSha256": "4cc088d79939dfd1a55bb157f23f98c91ad896542e541ce6bcc76b0b0fc5a3c2",
  "preparationScriptSha256": "d246f2e756980b99a26287c9a74c0294813d67e5899c274abf915a56319e1198",
  "frostScoresRead": false,
  "frostOutcomeJoinPerformed": false,
  "modelsFitted": false,
  "modelPerformance": null,
  "phaseStatus": "Collision/exposure base preparation only; no frost predictiveness tested",
  "verifiedSources": [
    {
      "id": "guide",
      "title": "STATS19 codebook and historical mappings",
      "url": "https://www.gov.uk/government/statistical-data-sets/road-safety-open-data",
      "assetUrl": "https://assets.publishing.service.gov.uk/media/6ab2a71d997a4b2950cced58/dft-road-casualty-statistics-road-safety-open-dataset-data-guide-2025.xlsx",
      "archivePath": "/stats19-evidence/51b08606ef3dad1ae5d4c8726241b022fc8e4bbdc910ef0e5cc2fb92b054fc12.xlsx.gz",
      "rawSha256": "51b08606ef3dad1ae5d4c8726241b022fc8e4bbdc910ef0e5cc2fb92b054fc12",
      "gzipSha256": "48a4ec6540bfbd11f0969829ff2eebea337d8e4721470d822d12db49af0a3abd",
      "rawBytes": 85112,
      "gzipBytes": 70150,
      "originalAccessedAt": "2026-09-25T20:31:38.795037+00:00",
      "hashesVerified": true
    },
    {
      "id": "collision",
      "title": "STATS19 collision records, latest five final years",
      "url": "https://www.gov.uk/government/statistical-data-sets/road-safety-open-data",
      "assetUrl": "https://data.dft.gov.uk/road-accidents-safety-data/dft-road-casualty-statistics-collision-last-5-years.csv",
      "archivePath": "/stats19-evidence/06a03c0e5504175e23ed98e3e0b4767ac61d396c073405a1bddab9339c18f948.csv.gz",
      "rawSha256": "06a03c0e5504175e23ed98e3e0b4767ac61d396c073405a1bddab9339c18f948",
      "gzipSha256": "1c9a2acd170756f75771b12b29eac95220dbd8cb8c97a0299408a99c9b7aa604",
      "rawBytes": 97669586,
      "gzipBytes": 25763702,
      "originalAccessedAt": "2026-09-25T20:31:38.795037+00:00",
      "hashesVerified": true
    },
    {
      "id": "vehicle",
      "title": "STATS19 vehicle records, latest five final years",
      "url": "https://www.gov.uk/government/statistical-data-sets/road-safety-open-data",
      "assetUrl": "https://data.dft.gov.uk/road-accidents-safety-data/dft-road-casualty-statistics-vehicle-last-5-years.csv",
      "archivePath": "/stats19-evidence/05453dca2651ad8a27b4ac0e6a0450a852c506e4d495111ffca398f3d311e26a.csv.gz",
      "rawSha256": "05453dca2651ad8a27b4ac0e6a0450a852c506e4d495111ffca398f3d311e26a",
      "gzipSha256": "c2894e8309444fdba421198de4559a6f8d18b7a7d152d6f72f2ccfe51e3d61f7",
      "rawBytes": 103741631,
      "gzipBytes": 20828372,
      "originalAccessedAt": "2026-09-25T20:31:38.795037+00:00",
      "hashesVerified": true
    }
  ],
  "sourceManifest": {
    "path": "db/stats19/initial.json",
    "sha256": "32a977b309f084f2b303f531aec5ad1164cc6e42fbc465e6ff5c7342b423aca3"
  },
  "inheritedContext": {
    "path": "public/research/parking/v3/inputs/authority-context.json",
    "sha256": "b8b58e796df4a0e450dc00d9180e68a9cc77d36c3bd53d2d4360a4ccbf6fa9ac",
    "sources": [
      {
        "id": "ras0403",
        "title": "RAS0403: collisions and casualties by local authority",
        "publisher": "Department for Transport",
        "url": "https://assets.publishing.service.gov.uk/media/6a873ca186d9b627c475bfd8/ras0403.ods",
        "assetUrl": "https://assets.publishing.service.gov.uk/media/6a873ca186d9b627c475bfd8/ras0403.ods",
        "sha256": "ac551fbf73f4b8ccb11dbfbdbf8bc312be2f897d3103260c1552483d602259d2",
        "archivePath": "/geo-evidence/ac551fbf73f4b8ccb11dbfbdbf8bc312be2f897d3103260c1552483d602259d2.ods",
        "period": "2016–2025",
        "accessedAt": "2026-09-23T09:08:25.331310+00:00",
        "cadenceHours": 168,
        "status": "Source data imported; human review not recorded",
        "licence": "Open Government Licence v3.0",
        "notes": "All roads; latest geography in the workbook. Severity-adjusted FSC and KSI. Reporting warnings for Avon and Somerset and Staffordshire in 2022–2023 are excluded from persistence tests."
      },
      {
        "id": "traffic",
        "title": "Local authority motor vehicle mileage",
        "publisher": "Department for Transport",
        "url": "https://storage.googleapis.com/dft-statistics/road-traffic/downloads/data-gov-uk/local_authority_traffic.csv",
        "assetUrl": "https://storage.googleapis.com/dft-statistics/road-traffic/downloads/data-gov-uk/local_authority_traffic.csv",
        "sha256": "058a61b9f6f7d07a9363c339829c6723fdecc4270f500611d1790eae6da7b9fc",
        "archivePath": "/geo-evidence/058a61b9f6f7d07a9363c339829c6723fdecc4270f500611d1790eae6da7b9fc.csv",
        "period": "2016–2025",
        "accessedAt": "2026-09-23T09:08:25.331310+00:00",
        "cadenceHours": 168,
        "status": "Source data imported; human review not recorded",
        "licence": "Open Government Licence v3.0",
        "notes": "Motor vehicle miles; pedal cycles excluded. Exact authority code and year join. Independent rate reconciliation against RAS0403; mismatches are suppressed."
      }
    ],
    "lookup": {
      "id": "lsoa21-utla23.csv",
      "url": "https://open-geography-portalx-ons.hub.arcgis.com/api/download/v1/items/1c727fa44989421dbe2dff1a9f5fb25e/csv?layers=0",
      "retrievedAt": "2026-10-10",
      "sha256": "ed9df54f94c0c21f4a2b7e637e418d131a2230abc14ddaa048a28f37bf44f976",
      "bytes": 2052205,
      "archiveSha256": "7675ffff3aa43a68884e8762af2bb76929a668b50eb180f7aaa231a781f6b9a7",
      "archiveBytes": 306615,
      "archivePath": "/social-factors-evidence/ed9df54f94c0c21f4a2b7e637e418d131a2230abc14ddaa048a28f37bf44f976.csv.gz"
    },
    "qualityRule": "Any inherited reason withholds both rate bounds; quality reasons are never cleared."
  },
  "officialVehicleCodeLabels": {
    "-1": "Data missing or out of range",
    "1": "Pedal cycle",
    "2": "Motorcycle 50cc and under",
    "3": "Motorcycle 125cc and under",
    "4": "Motorcycle over 125cc and up to 500cc",
    "5": "Motorcycle over 500cc",
    "8": "Taxi/Private hire car",
    "9": "Car",
    "10": "Minibus (8 - 16 passenger seats)",
    "11": "Bus or coach (17 or more pass seats)",
    "16": "Ridden horse",
    "17": "Agricultural vehicle",
    "18": "Tram",
    "19": "Van / Goods 3.5 tonnes mgw or under",
    "20": "Goods over 3.5t. and under 7.5t",
    "21": "Goods 7.5 tonnes mgw and over",
    "22": "Mobility scooter",
    "23": "Electric motorcycle",
    "33": "Personal powered transporter",
    "90": "Other vehicle",
    "97": "Motorcycle - unknown cc",
    "98": "Goods vehicle - unknown weight",
    "99": "Unknown vehicle type (self rep only)",
    "103": "Motorcycle - Scooter (1979-1998)",
    "104": "Motorcycle (1979-1998)",
    "105": "Motorcycle - Combination (1979-1998)",
    "106": "Motorcycle over 125cc (1999-2004)",
    "108": "Taxi (excluding private hire cars) (1979-2004)",
    "109": "Car (including private hire cars) (1979-2004)",
    "110": "Minibus/Motor caravan (1979-1998)",
    "113": "Goods over 3.5 tonnes (1979-1998)"
  },
  "officialEventCodeLabels": {
    "first_road_class": {
      "1": "Motorway",
      "2": "A(M)",
      "3": "A",
      "4": "B",
      "5": "C",
      "6": "Unclassified",
      "-1": "Data missing or out of range"
    },
    "collision_severity": {
      "1": "Fatal",
      "2": "Serious",
      "3": "Slight"
    },
    "road_surface_conditions": {
      "1": "Dry",
      "2": "Wet or damp",
      "3": "Snow",
      "4": "Frost or ice",
      "5": "Flood over 3cm. deep",
      "6": "Oil or diesel",
      "7": "Mud",
      "-1": "Data missing or out of range",
      "9": "unknown (self reported)"
    }
  },
  "vehicleCodingByYear": {
    "2021": {
      "class:covered": 166503,
      "class:out_of_scope": 18872,
      "class:unknown": 1068,
      "code:-1": 51,
      "code:1": 17101,
      "code:10": 266,
      "code:11": 2744,
      "code:16": 83,
      "code:17": 419,
      "code:18": 23,
      "code:19": 12463,
      "code:2": 1236,
      "code:20": 821,
      "code:21": 2728,
      "code:22": 300,
      "code:23": 217,
      "code:3": 8967,
      "code:33": 1365,
      "code:4": 1821,
      "code:5": 4333,
      "code:8": 2811,
      "code:9": 126256,
      "code:90": 1017,
      "code:97": 506,
      "code:98": 915,
      "escooterFlag:0": 185078,
      "escooterFlag:1": 1365,
      "escooterFlagOverridesCoveredCode": 0,
      "escooterFlagTypeConflicts": 0,
      "rows": 186443
    },
    "2022": {
      "class:covered": 173849,
      "class:out_of_scope": 18179,
      "class:unknown": 1517,
      "code:-1": 271,
      "code:1": 16335,
      "code:10": 327,
      "code:11": 3017,
      "code:16": 79,
      "code:17": 407,
      "code:18": 17,
      "code:19": 12329,
      "code:2": 1091,
      "code:20": 777,
      "code:21": 2756,
      "code:22": 334,
      "code:23": 328,
      "code:3": 9377,
      "code:33": 1414,
      "code:4": 2111,
      "code:5": 4721,
      "code:8": 2950,
      "code:9": 132285,
      "code:90": 1216,
      "code:97": 552,
      "code:98": 821,
      "code:99": 30,
      "escooterFlag:0": 192131,
      "escooterFlag:1": 1414,
      "escooterFlagOverridesCoveredCode": 0,
      "escooterFlagTypeConflicts": 0,
      "rows": 193545
    },
    "2023": {
      "class:covered": 171196,
      "class:out_of_scope": 17368,
      "class:unknown": 1251,
      "code:-1": 324,
      "code:1": 15667,
      "code:10": 314,
      "code:11": 3171,
      "code:16": 56,
      "code:17": 349,
      "code:18": 18,
      "code:19": 11727,
      "code:2": 1013,
      "code:20": 791,
      "code:21": 2647,
      "code:22": 328,
      "code:23": 335,
      "code:3": 9710,
      "code:33": 1299,
      "code:4": 1975,
      "code:5": 4473,
      "code:8": 3073,
      "code:9": 130164,
      "code:90": 901,
      "code:97": 667,
      "code:98": 787,
      "code:99": 26,
      "escooterFlag:0": 188516,
      "escooterFlag:1": 1299,
      "escooterFlagOverridesCoveredCode": 0,
      "escooterFlagTypeConflicts": 0,
      "rows": 189815
    },
    "2024": {
      "class:covered": 164912,
      "class:out_of_scope": 17130,
      "class:unknown": 1472,
      "code:-1": 6,
      "code:1": 15362,
      "code:10": 303,
      "code:11": 3145,
      "code:16": 71,
      "code:17": 405,
      "code:18": 23,
      "code:19": 11235,
      "code:2": 855,
      "code:20": 773,
      "code:21": 2483,
      "code:22": 320,
      "code:23": 420,
      "code:3": 8865,
      "code:33": 1354,
      "code:4": 1891,
      "code:5": 4508,
      "code:8": 2914,
      "code:9": 125764,
      "code:90": 1190,
      "code:97": 627,
      "code:98": 724,
      "code:99": 276,
      "escooterFlag:0": 182192,
      "escooterFlag:1": 1322,
      "escooterFlagOverridesCoveredCode": 0,
      "escooterFlagTypeConflicts": 0,
      "rows": 183514
    },
    "2025": {
      "class:covered": 163942,
      "class:out_of_scope": 18942,
      "class:unknown": 1064,
      "code:-1": 9,
      "code:1": 17021,
      "code:10": 296,
      "code:11": 3023,
      "code:16": 78,
      "code:17": 357,
      "code:18": 28,
      "code:19": 12555,
      "code:2": 813,
      "code:20": 884,
      "code:21": 2633,
      "code:22": 346,
      "code:23": 602,
      "code:3": 7876,
      "code:33": 1469,
      "code:4": 1792,
      "code:5": 4976,
      "code:8": 3614,
      "code:9": 123212,
      "code:90": 770,
      "code:97": 636,
      "code:98": 673,
      "code:99": 285,
      "escooterFlag:0": 182562,
      "escooterFlag:1": 1386,
      "escooterFlagOverridesCoveredCode": 0,
      "escooterFlagTypeConflicts": 0,
      "rows": 183948
    }
  },
  "escooterFlagTypeConflictExamples": [],
  "counts": {
    "allGbCollisions": 513801,
    "allGbVehicleRecords": 937265,
    "uniqueCollisionKeys": 513801,
    "duplicateCollisionKeys": 0,
    "duplicateVehicleKeys": 0,
    "orphanVehicleCollisionGroups": 0,
    "orphanVehicleRecords": 0,
    "matchedVehicleRecords": 937265
  },
  "gbCollisionCountsByYear": {
    "2021": {
      "allInjuryCollisions": 101087,
      "motor_confirmed": 99003,
      "vehicleRecords": 186443,
      "definiteMotorVehicleRecords": 166503,
      "unknownVehicleRecords": 1068,
      "outOfScopeVehicleRecords": 18872,
      "escooterFlaggedVehicleRecords": 1365,
      "vehicleCountMismatchCollisions": 0,
      "motor_out_of_scope_only": 1734,
      "motor_unknown_only": 350
    },
    "2022": {
      "allInjuryCollisions": 106004,
      "motor_confirmed": 103957,
      "vehicleRecords": 193545,
      "definiteMotorVehicleRecords": 173849,
      "unknownVehicleRecords": 1517,
      "outOfScopeVehicleRecords": 18179,
      "escooterFlaggedVehicleRecords": 1414,
      "vehicleCountMismatchCollisions": 0,
      "motor_out_of_scope_only": 1623,
      "motor_unknown_only": 424
    },
    "2023": {
      "allInjuryCollisions": 104258,
      "motor_confirmed": 102235,
      "vehicleRecords": 189815,
      "definiteMotorVehicleRecords": 171196,
      "unknownVehicleRecords": 1251,
      "outOfScopeVehicleRecords": 17368,
      "escooterFlaggedVehicleRecords": 1299,
      "vehicleCountMismatchCollisions": 0,
      "motor_out_of_scope_only": 1592,
      "motor_unknown_only": 431
    },
    "2024": {
      "allInjuryCollisions": 100927,
      "motor_confirmed": 98726,
      "vehicleRecords": 183514,
      "definiteMotorVehicleRecords": 164912,
      "unknownVehicleRecords": 1472,
      "outOfScopeVehicleRecords": 17130,
      "escooterFlaggedVehicleRecords": 1322,
      "vehicleCountMismatchCollisions": 0,
      "motor_out_of_scope_only": 1752,
      "motor_unknown_only": 449
    },
    "2025": {
      "allInjuryCollisions": 101525,
      "motor_confirmed": 99023,
      "vehicleRecords": 183948,
      "definiteMotorVehicleRecords": 163942,
      "unknownVehicleRecords": 1064,
      "outOfScopeVehicleRecords": 18942,
      "escooterFlaggedVehicleRecords": 1386,
      "vehicleCountMismatchCollisions": 0,
      "motor_out_of_scope_only": 2136,
      "motor_unknown_only": 366
    }
  },
  "coordinateStatusCounts": {
    "valid_bng": 513748,
    "missing_or_nonpositive_bng": 53
  },
  "outsideInheritedAuthorityUniverse": {
    "-1": {
      "2021": 17,
      "2023": 12,
      "2022": 22,
      "2025": 2
    },
    "S12000005": {
      "2024": 22,
      "2025": 23,
      "2021": 19,
      "2022": 25,
      "2023": 22
    },
    "S12000006": {
      "2024": 192,
      "2025": 222,
      "2023": 187,
      "2021": 150,
      "2022": 190
    },
    "S12000008": {
      "2024": 70,
      "2025": 86,
      "2021": 71,
      "2023": 103,
      "2022": 88
    },
    "S12000010": {
      "2025": 69,
      "2024": 61,
      "2022": 103,
      "2021": 90,
      "2023": 83
    },
    "S12000011": {
      "2025": 63,
      "2024": 56,
      "2021": 56,
      "2023": 68,
      "2022": 57
    },
    "S12000013": {
      "2025": 12,
      "2024": 17,
      "2021": 20,
      "2023": 14,
      "2022": 9
    },
    "S12000014": {
      "2024": 93,
      "2025": 79,
      "2023": 117,
      "2021": 109,
      "2022": 82
    },
    "S12000017": {
      "2024": 273,
      "2025": 245,
      "2022": 206,
      "2021": 207,
      "2023": 259
    },
    "S12000018": {
      "2024": 48,
      "2025": 39,
      "2021": 35,
      "2023": 33,
      "2022": 33
    },
    "S12000019": {
      "2024": 68,
      "2025": 59,
      "2021": 95,
      "2022": 106,
      "2023": 79
    },
    "S12000020": {
      "2025": 46,
      "2024": 50,
      "2023": 37,
      "2021": 28,
      "2022": 37
    },
    "S12000021": {
      "2025": 80,
      "2024": 87,
      "2021": 92,
      "2022": 95,
      "2023": 98
    },
    "S12000023": {
      "2025": 8,
      "2024": 13,
      "2022": 11,
      "2023": 10,
      "2021": 13
    },
    "S12000026": {
      "2025": 74,
      "2024": 87,
      "2022": 94,
      "2021": 102,
      "2023": 107
    },
    "S12000027": {
      "2025": 8,
      "2024": 12,
      "2022": 6,
      "2023": 18,
      "2021": 8
    },
    "S12000028": {
      "2024": 65,
      "2025": 86,
      "2023": 66,
      "2022": 71,
      "2021": 69
    },
    "S12000029": {
      "2024": 253,
      "2025": 220,
      "2022": 217,
      "2023": 262,
      "2021": 184
    },
    "S12000030": {
      "2024": 94,
      "2025": 82,
      "2021": 75,
      "2023": 86,
      "2022": 92
    },
    "S12000033": {
      "2025": 65,
      "2024": 67,
      "2021": 59,
      "2022": 67,
      "2023": 91
    },
    "S12000034": {
      "2024": 153,
      "2025": 123,
      "2022": 143,
      "2023": 143,
      "2021": 140
    },
    "S12000035": {
      "2025": 82,
      "2024": 97,
      "2023": 105,
      "2022": 78,
      "2021": 93
    },
    "S12000036": {
      "2024": 481,
      "2025": 470,
      "2021": 482,
      "2022": 506,
      "2023": 450
    },
    "S12000038": {
      "2024": 137,
      "2025": 126,
      "2021": 106,
      "2022": 120,
      "2023": 111
    },
    "S12000039": {
      "2025": 56,
      "2024": 43,
      "2022": 39,
      "2021": 43,
      "2023": 55
    },
    "S12000040": {
      "2024": 133,
      "2025": 165,
      "2021": 169,
      "2022": 175,
      "2023": 141
    },
    "S12000041": {
      "2025": 88,
      "2024": 89,
      "2022": 95,
      "2021": 120,
      "2023": 102
    },
    "S12000042": {
      "2024": 126,
      "2025": 138,
      "2021": 113,
      "2022": 136,
      "2023": 139
    },
    "S12000045": {
      "2025": 40,
      "2024": 43,
      "2023": 35,
      "2022": 31,
      "2021": 36
    },
    "S12000047": {
      "2024": 268,
      "2025": 275,
      "2021": 217,
      "2022": 233,
      "2023": 261
    },
    "S12000048": {
      "2025": 167,
      "2024": 141,
      "2021": 149,
      "2023": 140,
      "2022": 156
    },
    "S12000049": {
      "2024": 622,
      "2025": 600,
      "2023": 567,
      "2021": 552,
      "2022": 606
    },
    "S12000050": {
      "2024": 206,
      "2025": 208,
      "2023": 243,
      "2021": 200,
      "2022": 218
    },
    "W06000001": {
      "2022": 54,
      "2024": 47,
      "2025": 33,
      "2021": 61,
      "2023": 53
    },
    "W06000002": {
      "2025": 105,
      "2024": 87,
      "2022": 164,
      "2023": 146,
      "2021": 134
    },
    "W06000003": {
      "2025": 97,
      "2022": 146,
      "2021": 143,
      "2023": 112,
      "2024": 79
    },
    "W06000004": {
      "2022": 127,
      "2025": 85,
      "2021": 134,
      "2024": 90,
      "2023": 146
    },
    "W06000005": {
      "2025": 113,
      "2022": 157,
      "2024": 122,
      "2023": 189,
      "2021": 160
    },
    "W06000006": {
      "2022": 153,
      "2023": 129,
      "2024": 96,
      "2021": 148,
      "2025": 102
    },
    "W06000008": {
      "2024": 167,
      "2025": 142,
      "2021": 152,
      "2022": 138,
      "2023": 168
    },
    "W06000009": {
      "2024": 211,
      "2025": 250,
      "2021": 206,
      "2023": 193,
      "2022": 231
    },
    "W06000010": {
      "2024": 317,
      "2025": 375,
      "2021": 299,
      "2022": 296,
      "2023": 322
    },
    "W06000011": {
      "2025": 106,
      "2021": 157,
      "2023": 158,
      "2022": 144,
      "2024": 138
    },
    "W06000012": {
      "2025": 58,
      "2023": 92,
      "2021": 111,
      "2022": 82,
      "2024": 77
    },
    "W06000013": {
      "2025": 66,
      "2021": 98,
      "2023": 85,
      "2024": 72,
      "2022": 100
    },
    "W06000014": {
      "2025": 102,
      "2021": 87,
      "2024": 90,
      "2022": 102,
      "2023": 95
    },
    "W06000015": {
      "2025": 272,
      "2021": 265,
      "2022": 276,
      "2023": 292,
      "2024": 240
    },
    "W06000016": {
      "2025": 146,
      "2021": 190,
      "2023": 184,
      "2024": 144,
      "2022": 198
    },
    "W06000018": {
      "2022": 153,
      "2024": 155,
      "2025": 145,
      "2023": 147,
      "2021": 169
    },
    "W06000019": {
      "2023": 48,
      "2025": 65,
      "2022": 60,
      "2024": 53,
      "2021": 70
    },
    "W06000020": {
      "2023": 79,
      "2025": 86,
      "2024": 89,
      "2022": 83,
      "2021": 71
    },
    "W06000021": {
      "2022": 102,
      "2025": 112,
      "2023": 88,
      "2024": 113,
      "2021": 121
    },
    "W06000022": {
      "2021": 176,
      "2024": 159,
      "2023": 140,
      "2025": 172,
      "2022": 187
    },
    "W06000023": {
      "2024": 329,
      "2025": 322,
      "2022": 315,
      "2021": 297,
      "2023": 338
    },
    "W06000024": {
      "2025": 47,
      "2021": 46,
      "2024": 38,
      "2022": 43,
      "2023": 46
    }
  },
  "vehicleCountMismatchExamples": [],
  "authorityPanel": {
    "authorities": 153,
    "rows": 765,
    "years": [
      2021,
      2022,
      2023,
      2024,
      2025
    ],
    "rateEligibleRows": 729,
    "qualityGatedRows": 36,
    "rowsWithInheritedQualityReasons": 36,
    "allCollisionReconciliationMismatchRows": [],
    "positiveMileageZeroConfirmedCollisionRows": 1,
    "rateEligibleZeroConfirmedCollisionRows": 1,
    "qualityReasonCounts": {
      "DfT warning: Avon and Somerset / Staffordshire reporting may be incomplete": 14,
      "Traffic denominator differs by over 0.5% from the official rate; mileage rate withheld": 3,
      "Missing or non-finite motor-vehicle mileage": 17,
      "Official comparison rate unavailable; independent reconciliation not possible": 5,
      "No matching traffic authority code and year; mileage rate withheld": 14
    },
    "allInjuryCollisions": 477448,
    "definiteMotorCollisions": 467078,
    "unresolvedMotorCollisions": 1833,
    "outOfScopeOnlyCollisions": 8537
  },
  "warnings": [
    {
      "areaId": "E06000001",
      "year": 2024,
      "type": "unresolved_motor_share_above_1_percent",
      "unresolvedCount": 1,
      "share": 0.013513513513513514
    },
    {
      "areaId": "E06000006",
      "year": 2022,
      "type": "unresolved_motor_share_above_1_percent",
      "unresolvedCount": 2,
      "share": 0.012738853503184714
    },
    {
      "areaId": "E06000006",
      "year": 2024,
      "type": "unresolved_motor_share_above_1_percent",
      "unresolvedCount": 2,
      "share": 0.016260162601626018
    },
    {
      "areaId": "E06000017",
      "year": 2021,
      "type": "unresolved_motor_share_above_1_percent",
      "unresolvedCount": 1,
      "share": 0.024390243902439025
    },
    {
      "areaId": "E06000018",
      "year": 2022,
      "type": "unresolved_motor_share_above_1_percent",
      "unresolvedCount": 9,
      "share": 0.013254786450662739
    },
    {
      "areaId": "E06000018",
      "year": 2025,
      "type": "unresolved_motor_share_above_1_percent",
      "unresolvedCount": 9,
      "share": 0.011538461538461539
    },
    {
      "areaId": "E06000021",
      "year": 2024,
      "type": "unresolved_motor_share_above_1_percent",
      "unresolvedCount": 7,
      "share": 0.020833333333333332
    },
    {
      "areaId": "E06000032",
      "year": 2022,
      "type": "unresolved_motor_share_above_1_percent",
      "unresolvedCount": 7,
      "share": 0.016317016317016316
    },
    {
      "areaId": "E06000032",
      "year": 2023,
      "type": "unresolved_motor_share_above_1_percent",
      "unresolvedCount": 5,
      "share": 0.012987012987012988
    },
    {
      "areaId": "E06000032",
      "year": 2024,
      "type": "unresolved_motor_share_above_1_percent",
      "unresolvedCount": 5,
      "share": 0.013333333333333334
    },
    {
      "areaId": "E06000032",
      "year": 2025,
      "type": "unresolved_motor_share_above_1_percent",
      "unresolvedCount": 5,
      "share": 0.014124293785310734
    },
    {
      "areaId": "E06000034",
      "year": 2024,
      "type": "unresolved_motor_share_above_1_percent",
      "unresolvedCount": 3,
      "share": 0.013761467889908258
    },
    {
      "areaId": "E06000039",
      "year": 2022,
      "type": "unresolved_motor_share_above_1_percent",
      "unresolvedCount": 3,
      "share": 0.01282051282051282
    },
    {
      "areaId": "E06000042",
      "year": 2024,
      "type": "unresolved_motor_share_above_1_percent",
      "unresolvedCount": 4,
      "share": 0.012618296529968454
    },
    {
      "areaId": "E06000049",
      "year": 2025,
      "type": "unresolved_motor_share_above_1_percent",
      "unresolvedCount": 10,
      "share": 0.017271157167530225
    },
    {
      "areaId": "E06000055",
      "year": 2023,
      "type": "unresolved_motor_share_above_1_percent",
      "unresolvedCount": 6,
      "share": 0.018072289156626505
    },
    {
      "areaId": "E06000056",
      "year": 2021,
      "type": "unresolved_motor_share_above_1_percent",
      "unresolvedCount": 6,
      "share": 0.012738853503184714
    },
    {
      "areaId": "E06000056",
      "year": 2023,
      "type": "unresolved_motor_share_above_1_percent",
      "unresolvedCount": 7,
      "share": 0.01206896551724138
    },
    {
      "areaId": "E06000058",
      "year": 2025,
      "type": "unresolved_motor_share_above_1_percent",
      "unresolvedCount": 10,
      "share": 0.014771048744460856
    },
    {
      "areaId": "E06000064",
      "year": 2024,
      "type": "unresolved_motor_share_above_1_percent",
      "unresolvedCount": 4,
      "share": 0.010443864229765013
    },
    {
      "areaId": "E08000001",
      "year": 2022,
      "type": "unresolved_motor_share_above_1_percent",
      "unresolvedCount": 4,
      "share": 0.01238390092879257
    },
    {
      "areaId": "E08000002",
      "year": 2022,
      "type": "unresolved_motor_share_above_1_percent",
      "unresolvedCount": 3,
      "share": 0.015789473684210527
    },
    {
      "areaId": "E08000003",
      "year": 2021,
      "type": "unresolved_motor_share_above_1_percent",
      "unresolvedCount": 18,
      "share": 0.025210084033613446
    },
    {
      "areaId": "E08000003",
      "year": 2022,
      "type": "unresolved_motor_share_above_1_percent",
      "unresolvedCount": 9,
      "share": 0.012857142857142857
    },
    {
      "areaId": "E08000004",
      "year": 2021,
      "type": "unresolved_motor_share_above_1_percent",
      "unresolvedCount": 3,
      "share": 0.01282051282051282
    },
    {
      "areaId": "E08000004",
      "year": 2022,
      "type": "unresolved_motor_share_above_1_percent",
      "unresolvedCount": 4,
      "share": 0.020100502512562814
    },
    {
      "areaId": "E08000004",
      "year": 2024,
      "type": "unresolved_motor_share_above_1_percent",
      "unresolvedCount": 3,
      "share": 0.013888888888888888
    },
    {
      "areaId": "E08000005",
      "year": 2021,
      "type": "unresolved_motor_share_above_1_percent",
      "unresolvedCount": 3,
      "share": 0.013043478260869565
    },
    {
      "areaId": "E08000006",
      "year": 2021,
      "type": "unresolved_motor_share_above_1_percent",
      "unresolvedCount": 8,
      "share": 0.025236593059936908
    },
    {
      "areaId": "E08000007",
      "year": 2023,
      "type": "unresolved_motor_share_above_1_percent",
      "unresolvedCount": 2,
      "share": 0.01015228426395939
    },
    {
      "areaId": "E08000008",
      "year": 2021,
      "type": "unresolved_motor_share_above_1_percent",
      "unresolvedCount": 4,
      "share": 0.020100502512562814
    },
    {
      "areaId": "E08000008",
      "year": 2022,
      "type": "unresolved_motor_share_above_1_percent",
      "unresolvedCount": 3,
      "share": 0.013100436681222707
    },
    {
      "areaId": "E08000010",
      "year": 2021,
      "type": "unresolved_motor_share_above_1_percent",
      "unresolvedCount": 4,
      "share": 0.015748031496062992
    },
    {
      "areaId": "E08000010",
      "year": 2022,
      "type": "unresolved_motor_share_above_1_percent",
      "unresolvedCount": 3,
      "share": 0.012605042016806723
    },
    {
      "areaId": "E08000018",
      "year": 2022,
      "type": "unresolved_motor_share_above_1_percent",
      "unresolvedCount": 6,
      "share": 0.014742014742014743
    },
    {
      "areaId": "E08000024",
      "year": 2022,
      "type": "unresolved_motor_share_above_1_percent",
      "unresolvedCount": 5,
      "share": 0.015527950310559006
    },
    {
      "areaId": "E08000025",
      "year": 2022,
      "type": "unresolved_motor_share_above_1_percent",
      "unresolvedCount": 24,
      "share": 0.010075566750629723
    },
    {
      "areaId": "E08000025",
      "year": 2023,
      "type": "unresolved_motor_share_above_1_percent",
      "unresolvedCount": 33,
      "share": 0.015013648771610554
    },
    {
      "areaId": "E08000026",
      "year": 2023,
      "type": "unresolved_motor_share_above_1_percent",
      "unresolvedCount": 5,
      "share": 0.01272264631043257
    },
    {
      "areaId": "E08000027",
      "year": 2022,
      "type": "unresolved_motor_share_above_1_percent",
      "unresolvedCount": 5,
      "share": 0.012468827930174564
    },
    {
      "areaId": "E08000027",
      "year": 2025,
      "type": "unresolved_motor_share_above_1_percent",
      "unresolvedCount": 4,
      "share": 0.01020408163265306
    },
    {
      "areaId": "E08000028",
      "year": 2023,
      "type": "unresolved_motor_share_above_1_percent",
      "unresolvedCount": 11,
      "share": 0.01916376306620209
    },
    {
      "areaId": "E08000028",
      "year": 2024,
      "type": "unresolved_motor_share_above_1_percent",
      "unresolvedCount": 9,
      "share": 0.014657980456026058
    },
    {
      "areaId": "E08000029",
      "year": 2023,
      "type": "unresolved_motor_share_above_1_percent",
      "unresolvedCount": 4,
      "share": 0.01532567049808429
    },
    {
      "areaId": "E08000030",
      "year": 2021,
      "type": "unresolved_motor_share_above_1_percent",
      "unresolvedCount": 5,
      "share": 0.011389521640091117
    },
    {
      "areaId": "E08000030",
      "year": 2022,
      "type": "unresolved_motor_share_above_1_percent",
      "unresolvedCount": 7,
      "share": 0.016129032258064516
    },
    {
      "areaId": "E08000031",
      "year": 2023,
      "type": "unresolved_motor_share_above_1_percent",
      "unresolvedCount": 10,
      "share": 0.02197802197802198
    },
    {
      "areaId": "E08000031",
      "year": 2024,
      "type": "unresolved_motor_share_above_1_percent",
      "unresolvedCount": 5,
      "share": 0.013966480446927373
    },
    {
      "areaId": "E08000033",
      "year": 2025,
      "type": "unresolved_motor_share_above_1_percent",
      "unresolvedCount": 5,
      "share": 0.014005602240896359
    },
    {
      "areaId": "E08000036",
      "year": 2023,
      "type": "unresolved_motor_share_above_1_percent",
      "unresolvedCount": 9,
      "share": 0.013888888888888888
    },
    {
      "areaId": "E08000036",
      "year": 2024,
      "type": "unresolved_motor_share_above_1_percent",
      "unresolvedCount": 8,
      "share": 0.013605442176870748
    },
    {
      "areaId": "E08000036",
      "year": 2025,
      "type": "unresolved_motor_share_above_1_percent",
      "unresolvedCount": 8,
      "share": 0.014414414414414415
    },
    {
      "areaId": "E08000038",
      "year": 2024,
      "type": "unresolved_motor_share_above_1_percent",
      "unresolvedCount": 5,
      "share": 0.012531328320802004
    },
    {
      "areaId": "E09000007",
      "year": 2024,
      "type": "unresolved_motor_share_above_1_percent",
      "unresolvedCount": 7,
      "share": 0.010752688172043012
    },
    {
      "areaId": "E09000019",
      "year": 2024,
      "type": "unresolved_motor_share_above_1_percent",
      "unresolvedCount": 7,
      "share": 0.012477718360071301
    },
    {
      "areaId": "E09000022",
      "year": 2024,
      "type": "unresolved_motor_share_above_1_percent",
      "unresolvedCount": 11,
      "share": 0.012585812356979404
    },
    {
      "areaId": "E10000003",
      "year": 2023,
      "type": "unresolved_motor_share_above_1_percent",
      "unresolvedCount": 12,
      "share": 0.010434782608695653
    },
    {
      "areaId": "E10000029",
      "year": 2021,
      "type": "unresolved_motor_share_above_1_percent",
      "unresolvedCount": 11,
      "share": 0.010328638497652582
    }
  ],
  "acceptanceChecks": [
    {
      "id": "car_and_cycle_count_once",
      "passed": true
    },
    {
      "id": "two_cars_count_once",
      "passed": true
    },
    {
      "id": "cycle_only_outside_scope",
      "passed": true
    },
    {
      "id": "horse_only_outside_scope",
      "passed": true
    },
    {
      "id": "other_vehicle_is_unknown",
      "passed": true
    },
    {
      "id": "missing_vehicles_not_zero",
      "passed": true
    },
    {
      "id": "escooter_flag_precedes_motor_code",
      "passed": true
    },
    {
      "id": "another_car_confirms_motor",
      "passed": true
    },
    {
      "id": "powered_transporter_only_outside_scope",
      "passed": true
    },
    {
      "id": "electric_motorcycle_covered",
      "passed": true
    },
    {
      "id": "rate_scale",
      "passed": true
    },
    {
      "id": "genuine_zero_retained",
      "passed": true
    },
    {
      "id": "missing_mileage_no_rate",
      "passed": true
    },
    {
      "id": "zero_mileage_no_rate",
      "passed": true
    },
    {
      "id": "inherited_quality_suppresses_rate",
      "passed": true
    },
    {
      "id": "missing_outcome_no_rate",
      "passed": true
    },
    {
      "id": "unmapped_vehicle_code_fails_closed",
      "passed": true
    },
    {
      "id": "protocol_frozen_before_preparation",
      "passed": true
    },
    {
      "id": "all_raw_and_gzip_source_hashes_verified",
      "passed": true
    },
    {
      "id": "all_vehicle_codes_in_frozen_mapping_and_official_guide",
      "passed": true
    },
    {
      "id": "unique_collision_and_vehicle_keys",
      "passed": true
    },
    {
      "id": "all_vehicle_records_joined_once",
      "passed": true
    },
    {
      "id": "all_gb_collision_eligibility_classes_reconcile",
      "passed": true
    },
    {
      "id": "complete_153_by_5_authority_matrix_retained",
      "passed": true
    },
    {
      "id": "all_inherited_quality_gates_preserved",
      "passed": true
    },
    {
      "id": "all_collision_authority_totals_reconcile",
      "passed": true,
      "failureAction": "Affected rows retained; rates withheld"
    },
    {
      "id": "all_declared_vehicle_counts_reconcile",
      "passed": true,
      "failureAction": "Affected authority-years retained; rates withheld"
    },
    {
      "id": "frost_join_and_model_claims_absent",
      "passed": true
    }
  ],
  "variables": {
    "nullEncoding": "CSV empty cell means missing/not eligible; zero is an observed zero. JSON uses null.",
    "events": {
      "eventId": "Unique source collision_index; one row per collision, not per casualty or vehicle.",
      "year": "Source collision_year, calendar year 2021 to 2025.",
      "easting/northing": "Unmodified source British National Grid coordinates, metres (EPSG:27700).",
      "longitude/latitude": "Unmodified source longitude/latitude, decimal degrees; not a substitute for missing BNG.",
      "recordedLsoa": "Unmodified lsoa_of_accident_location; vintage not assumed to be LSOA2021.",
      "authority": "Unmodified local_authority_highway_current; exact code used for authority panel.",
      "authorityDistrict": "Unmodified local_authority_ons_district, retained for audit.",
      "roadClass/roadNumber": "Source first_road_class and first_road_number; not inferred nearest road.",
      "severity": "Source collision_severity, unadjusted coded value; total collision eligibility does not depend on severity adjustment.",
      "surface": "Source road_surface_conditions coded value; descriptive field, not a measure of exposure to icy roads.",
      "motorEligibility": "included, unknown, or out_of_scope under the frozen conventional-motor definition.",
      "motorState": "motor_confirmed; motor_unknown_only; motor_missing_vehicle_records; motor_out_of_scope_only.",
      "vehicleRecords": "Number of unique joined vehicle records for this collision.",
      "definiteMotorVehicleRecords": "Covered vehicle-code records after e-scooter-flag precedence.",
      "unknownVehicleRecords": "Joined records with missing/other/unknown vehicle_type and no e-scooter confirmation.",
      "outOfScopeVehicleRecords": "Known non-motor vehicles, declared out-of-scope types, and e-scooter-flagged vehicles.",
      "escooterFlaggedVehicleRecords": "Records with escooter_flag=1; included within outOfScopeVehicleRecords, not added again.",
      "recordedVehicleCount": "Collision source number_of_vehicles for reconciliation.",
      "vehicleCountMatches": "Whether joined vehicle records equal number_of_vehicles.",
      "coordinateStatus": "valid_bng, missing_or_nonpositive_bng, or outside_broad_gb_bng_bounds. This is not an LSOA containment result."
    },
    "authorityPanel": {
      "areaId/areaName/region/regionId": "Exact inherited authority universe and labels; no name-based code matching.",
      "year/split": "Frozen training 2021-23, validation 2024, reserved frost assessment 2025; not a claim that prior project outcomes are unseen.",
      "roadScope/vehicleScope": "All roads; collisions involving at least one definite covered motor vehicle.",
      "motorMiles": "Inherited official annual all-motor-vehicle miles (already annual vehicle miles, not millions); missing remains blank.",
      "allInjuryCollisions": "All unique original collision records for the exact current-highway-authority code and year.",
      "officialAllInjuryCollisions": "Inherited RAS0403 all-collision count, used only for count/exposure quality reconciliation.",
      "definiteMotorCollisions": "Unique collisions classified motor_confirmed; primary numerator.",
      "motorUnknownOnlyCollisions": "No definite covered motor, but at least one unresolved vehicle; may also contain non-motor vehicles.",
      "motorMissingVehicleRecordsCollisions": "No joined vehicle records; unresolved and never silently zero.",
      "motorOutOfScopeOnlyCollisions": "All joined vehicles outside the declared traffic scope; no covered or unknown vehicle.",
      "motorEligibilityLowerBound/motorEligibilityUpperBound": "Confirmed count and confirmed+unresolved count. These are classification bounds within the declared scope, not statistical confidence limits or bounds on unreported collisions.",
      "unresolvedMotorShare": "Unresolved collision count divided by all injury collisions; zero when the all-collision count is zero.",
      "vehicleRecords/definiteMotorVehicleRecords/unknownVehicleRecords/outOfScopeVehicleRecords/escooterFlaggedVehicleRecords": "Sums of the corresponding event fields, with e-scooters a subset of out-of-scope vehicles.",
      "vehicleCountMismatchCollisions": "Events for which joined and declared vehicle counts disagree; suppresses rates.",
      "sourceCountReconciles": "Exact equality of original all-collision count and inherited official all-collision count.",
      "exposurePositive": "Mileage is finite and strictly positive.",
      "inheritedQualityReasonCount": "Number of inherited exact-code, reporting and independent-mileage-reconciliation warnings; every such warning suppresses rates.",
      "qualityReasonCount/qualityReasons": "All applicable inherited and newly observed blocking quality reasons; JSON array inside CSV.",
      "rateEligible": "Positive finite mileage, reconciled complete counts and no blocking quality reason.",
      "definiteMotorRatePer100k": "100000 * definiteMotorCollisions / motorMiles, only when rateEligible.",
      "unknownInclusiveRateUpperBoundPer100k": "100000 * (confirmed+unresolved) / motorMiles under the same gate; classification sensitivity, not a confidence interval."
    }
  },
  "outputs": {
    "authorityPanel": {
      "path": "public/research/frost/v1/authority-base-panel.csv",
      "sha256": "14e2e34342d042be1bd20d2789e1aa468c899a6f86b20dd6af37eb91a4739e9c",
      "bytes": 190523,
      "fields": [
        "areaId",
        "areaName",
        "region",
        "regionId",
        "year",
        "split",
        "roadScope",
        "vehicleScope",
        "motorMiles",
        "allInjuryCollisions",
        "officialAllInjuryCollisions",
        "definiteMotorCollisions",
        "motorUnknownOnlyCollisions",
        "motorMissingVehicleRecordsCollisions",
        "motorOutOfScopeOnlyCollisions",
        "motorEligibilityLowerBound",
        "motorEligibilityUpperBound",
        "unresolvedMotorShare",
        "vehicleRecords",
        "definiteMotorVehicleRecords",
        "unknownVehicleRecords",
        "outOfScopeVehicleRecords",
        "escooterFlaggedVehicleRecords",
        "vehicleCountMismatchCollisions",
        "sourceCountReconciles",
        "exposurePositive",
        "inheritedQualityReasonCount",
        "qualityReasonCount",
        "qualityReasons",
        "rateEligible",
        "definiteMotorRatePer100k",
        "unknownInclusiveRateUpperBoundPer100k"
      ]
    },
    "collisionEvents": {
      "path": "collisionevents.csv.gz",
      "location": "Caller-provided intermediate directory; not a published asset URL",
      "gzipSha256": "8edd64de7627cd8dfc670c8a30a3b56e0a1c24ebf3c7a01da080f5a827d1480a",
      "rawSha256": "85b2da8fbb14f1d0c4589dee88abfb07227b1c4447f809167c6b3245d651f9bb",
      "gzipBytes": 17203506,
      "rawBytes": 73945293,
      "rows": 513801,
      "fields": [
        "eventId",
        "year",
        "easting",
        "northing",
        "longitude",
        "latitude",
        "recordedLsoa",
        "authority",
        "authorityDistrict",
        "roadClass",
        "roadNumber",
        "severity",
        "surface",
        "motorEligibility",
        "motorState",
        "vehicleRecords",
        "definiteMotorVehicleRecords",
        "unknownVehicleRecords",
        "outOfScopeVehicleRecords",
        "escooterFlaggedVehicleRecords",
        "recordedVehicleCount",
        "vehicleCountMatches",
        "coordinateStatus"
      ],
      "geographicScope": "All GB source collisions, including authorities outside England"
    }
  },
  "instructions": [
    "Reproduce with the command in the script docstring; no network or non-standard Python dependency is needed.",
    "Use original easting/northing for the separate exact full-polygon assignment; retain unmatched/border ambiguity and source-authority discrepancies.",
    "Never use the recorded LSOA or nearest polygon as a silent substitute for the declared geometry assignment.",
    "A later frost join must preserve all quality reasons and row counts; calculate grouped rates from summed counts and matched miles, not mean individual rates.",
    "The upper classification bound includes unresolved vehicle types but not declared out-of-scope vehicles; it is not an insurance claims estimate.",
    "All-road LSOA mileage remains blocked, and major-road endpoint chords must not be treated as road-centreline geometry.",
    "2025 is reserved for the later frost-model assessment; prior project outcome knowledge and retrospective climate/road vintages are disclosed."
  ]
}
