{
  "schemaVersion": "corpus-construction-protocol.v1",
  "protocolId": "road-risk-republic-of-ireland-corpus-v1",
  "frozenAt": "2026-09-04T00:00:00Z",
  "relationship": "Companion construction protocol; study-protocol.v2.yaml and its lock remain immutable.",
  "source": {
    "osmSnapshotDate": "2026-08-31",
    "url": "https://download.geofabrik.de/europe/ireland-and-northern-ireland-260831.osm.pbf",
    "licence": "OpenStreetMap contributors, ODbL 1.0",
    "jurisdiction": "Republic of Ireland",
    "boundary": "Hash-registered WGS84 polygon and 26-county features derived from the same frozen OSM administrative relations. Clipped source-road parts, never a bounding-box approximation.",
    "networkAccessDuringBuild": false
  },
  "units": {
    "scoring": "Complete continuous source-road part with consistent material tags",
    "analysis": "Canonical App Model 3.2 sections including final tails below 25 m merged into previous section",
    "grouping": "Connected corridor component",
    "stationing": "Unbranched linear-reference chain within corridor; do not share a scalar station axis across branches",
    "travelDirection": "Undirected centreline; retain separate carriageways",
    "maxBinGuard": "App cap 160 preserved; sections enlarged by that cap are flagged and excluded from exact-100m primary analysis"
  },
  "roadClasses": [
    "motorway",
    "motorway_link",
    "trunk",
    "trunk_link",
    "primary",
    "primary_link",
    "secondary",
    "secondary_link",
    "tertiary",
    "tertiary_link",
    "unclassified",
    "residential",
    "living_street",
    "service",
    "road"
  ],
  "exclusions": [
    "Outside Republic boundary",
    "Non-motor-road highway types",
    "Private or no motor vehicle access",
    "Invalid or zero-length geometry",
    "Unresolved boundary or county assignment",
    "Unavailable canonical model output",
    "App cap prevents exact-section primary interpretation"
  ],
  "scenario": {
    "id": "neutral-infrastructure",
    "model": "3.2.0",
    "comparator": "3.1.0",
    "publicDefault": "2.0.0",
    "weather": "baseline",
    "overspeedPercent": 0,
    "vehicle": "unspecified",
    "outcomeAwareTuning": false
  },
  "years": {
    "development": [
      2016,
      2017,
      2018,
      2019
    ],
    "pandemicSensitivity": [
      2020
    ],
    "retrospective": [
      2021
    ],
    "surveillance": [
      2022,
      2023,
      2024
    ],
    "untouchedHoldout": null
  },
  "exposure": {
    "primary": "A",
    "exploratory": "B",
    "missing": "C",
    "minimumTemporalCoverage": 0.8,
    "equipmentGap": "No unresolved gap",
    "matching": "Reviewed route, direction, site metadata and linear reference",
    "coverage": "Midpoints between adjacent reviewed counters; no extrapolation beyond endpoint counters unless official reviewed bounds exist; break at branches",
    "replacementDevices": "Explicit reviewed physical-site mapping only",
    "overlapPolicy": "Reject overlapping contradictory ranges"
  },
  "collisionMatching": {
    "minimumReviewedRows": 300,
    "threshold": "Reviewed P95 capped at 35m, frozen before fitting",
    "outcomeUsedForMatching": false,
    "oneCollisionToOneSection": true,
    "ambiguousJunctions": "Excluded from primary",
    "zeroCollisionRows": "Retain all eligible section-years"
  },
  "validation": {
    "spatialFolds": 5,
    "grouping": "Connected corridor and 10km spatial block component",
    "bootstrapReplicates": 1000,
    "bootstrapSeed": 32082026
  },
  "pilot": {
    "minimumCorridors": 100,
    "minimumSections": 10000,
    "countyCount": 26,
    "strata": [
      "county",
      "road_class",
      "urban_rural",
      "geometry_support",
      "exposure_tier"
    ],
    "twoCleanBuildsRequired": true,
    "reviewRequiredBeforeFullRun": true,
    "publicStatisticsAllowed": false
  },
  "statistics": {
    "population": "Eligible scored Republic of Ireland network",
    "mean": "sum(section ACI * section length) / sum(section length)",
    "quantiles": "Length-weighted inverse empirical CDF; first value whose cumulative length reaches quantile",
    "corridorMedian": "Unweighted median of length-weighted corridor means",
    "exposureShare": "Section-length-years by A/B/C divided by total study section-length-years",
    "displayMaximum": 0.02,
    "maximumPublic": false,
    "publicRoadNames": false
  },
  "privacy": {
    "rawRowsPublic": false,
    "minimumFailureCell": 10,
    "complementarySuppression": "Suppress all failure cell counts if any cell below ten; no revealing subtotals",
    "breakdownDimensions": [
      "road-class",
      "region"
    ],
    "noExactLocations": true
  },
  "publication": {
    "require": [
      "sources",
      "construction",
      "scoring-parity",
      "data-quality",
      "collision-matching",
      "exposure-matching",
      "empirical-evaluation",
      "uncertainty",
      "statistical-review",
      "transport-review",
      "privacy",
      "terminology"
    ],
    "ownerApproval": "Exact aggregate artifact SHA-256; manual approval record",
    "promotionSeparate": true,
    "missingHoldoutDoesNotBlockHonestInconclusivePublication": true
  },
  "temporalBoundary": "The frozen OpenStreetMap source represents the mapped road network on 31 August 2026. It is not a year-by-year reconstruction of 2016–2021 road conditions. Comparisons with historical collision and traffic observations retain this temporal limitation.",
  "changeControl": "Any method change after outcome inspection requires a new version and review. Never silently amend the locked construction or Model 3.2 study protocol."
}
