{
  "aoi": "phase2",
  "bbox_27700": [
    470000,
    95000,
    565000,
    140000
  ],
  "candidates": 3853,
  "structures": 676,
  "class_counts": {
    "structure": 650,
    "covered": 19,
    "tunnel": 7
  },
  "crossing_counts": {
    "unknown": 337,
    "road": 218,
    "rail": 100,
    "water": 21
  },
  "low_clearance": 348,
  "low_clearance_structure_class": 337,
  "nr_in_aoi": 67,
  "nr_underline_in_aoi": 65,
  "recall_all": {
    "15.0": 0.866,
    "30.0": 0.866,
    "n": 67
  },
  "recall_underline": {
    "15.0": 0.877,
    "30.0": 0.877,
    "n": 65
  },
  "dist_hist_underline": [
    52,
    4,
    1,
    0,
    0,
    0,
    0,
    2,
    6
  ],
  "chips": [
    {
      "n": 1,
      "idx": 1589,
      "path": "chip01_idx1589.png"
    },
    {
      "n": 2,
      "idx": 2417,
      "path": "chip02_idx2417.png"
    },
    {
      "n": 3,
      "idx": 1166,
      "path": "chip03_idx1166.png"
    },
    {
      "n": 4,
      "idx": 2004,
      "path": "chip04_idx2004.png"
    },
    {
      "n": 5,
      "idx": 3307,
      "path": "chip05_idx3307.png"
    },
    {
      "n": 6,
      "idx": 2029,
      "path": "chip06_idx2029.png"
    },
    {
      "n": 7,
      "idx": 541,
      "path": "chip07_idx541.png"
    },
    {
      "n": 8,
      "idx": 3180,
      "path": "chip08_idx3180.png"
    },
    {
      "n": 9,
      "idx": 3534,
      "path": "chip09_idx3534.png"
    },
    {
      "n": 10,
      "idx": 1647,
      "path": "chip10_idx1647.png"
    },
    {
      "n": 11,
      "idx": 3088,
      "path": "chip11_idx3088.png"
    },
    {
      "n": 12,
      "idx": 3427,
      "path": "chip12_idx3427.png"
    },
    {
      "n": 13,
      "idx": 3208,
      "path": "chip13_idx3208.png"
    },
    {
      "n": 14,
      "idx": 1407,
      "path": "chip14_idx1407.png"
    },
    {
      "n": 15,
      "idx": 698,
      "path": "chip15_idx698.png"
    },
    {
      "n": 16,
      "idx": 2916,
      "path": "chip16_idx2916.png"
    },
    {
      "n": 17,
      "idx": 1778,
      "path": "chip17_idx1778.png"
    },
    {
      "n": 18,
      "idx": 1961,
      "path": "chip18_idx1961.png"
    },
    {
      "n": 19,
      "idx": 364,
      "path": "chip19_idx364.png"
    },
    {
      "n": 20,
      "idx": 3645,
      "path": "chip20_idx3645.png"
    },
    {
      "n": 21,
      "idx": 1721,
      "path": "chip21_idx1721.png"
    },
    {
      "n": 22,
      "idx": 2032,
      "path": "chip22_idx2032.png"
    },
    {
      "n": 23,
      "idx": 160,
      "path": "chip23_idx160.png"
    },
    {
      "n": 24,
      "idx": 3020,
      "path": "chip24_idx3020.png"
    },
    {
      "n": 25,
      "idx": 1539,
      "path": "chip25_idx1539.png"
    },
    {
      "n": 26,
      "idx": 868,
      "path": "chip26_idx868.png"
    },
    {
      "n": 27,
      "idx": 2706,
      "path": "chip27_idx2706.png"
    },
    {
      "n": 28,
      "idx": 2134,
      "path": "chip28_idx2134.png"
    },
    {
      "n": 29,
      "idx": 2718,
      "path": "chip29_idx2718.png"
    },
    {
      "n": 30,
      "idx": 2686,
      "path": "chip30_idx2686.png"
    },
    {
      "n": 31,
      "idx": 1849,
      "path": "chip31_idx1849.png"
    },
    {
      "n": 32,
      "idx": 1523,
      "path": "chip32_idx1523.png"
    },
    {
      "n": 33,
      "idx": 3175,
      "path": "chip33_idx3175.png"
    },
    {
      "n": 34,
      "idx": 882,
      "path": "chip34_idx882.png"
    },
    {
      "n": 35,
      "idx": 375,
      "path": "chip35_idx375.png"
    },
    {
      "n": 36,
      "idx": 1195,
      "path": "chip36_idx1195.png"
    },
    {
      "n": 37,
      "idx": 1666,
      "path": "chip37_idx1666.png"
    },
    {
      "n": 38,
      "idx": 1380,
      "path": "chip38_idx1380.png"
    },
    {
      "n": 39,
      "idx": 1320,
      "path": "chip39_idx1320.png"
    },
    {
      "n": 40,
      "idx": 2106,
      "path": "chip40_idx2106.png"
    }
  ],
  "thresholds": {
    "h_min": 2.3,
    "h_max": 14.0,
    "veg_delta": 1.0,
    "min_run_m": 5.0,
    "structure_max_m": 60.0,
    "sample_step": 1.0,
    "deck_depth_nominal": 1.2,
    "signing_allowance": 0.8,
    "deck_offset": 2.0,
    "offset_basis": "nominal_plus_allowance",
    "offset_source": "Construction depth: SCI half-through bridges guide (definition); New Steel Construction, Short Span Railway Underbridges (0.80-0.85 m modern minimum, 300 mm ballast); modified MEXE scope, total crown thickness 0.25-1.8 m. Signing allowance: derived, see qa_report.md.",
    "validation_n": 15,
    "band": 1.5,
    "cluster_m": 25.0,
    "nr_match_m": 30.0,
    "cross_min": 0.6,
    "max_approach_h": 3.0,
    "min_wide": 0.5,
    "max_dtm_drop": 2.5
  },
  "osm": {
    "bridge_ways": 4778,
    "maxheight_elements": 433
  },
  "chip_pool": "kept",
  "chip_dir": "chips_phase2",
  "tier_counts": {
    "low": 337,
    "medium": 217,
    "high": 122
  },
  "low_clearance_by_tier": {
    "low": 163,
    "high": 93,
    "medium": 92
  },
  "raw_detector_recall_underline": 0.9692307692307692,
  "misses": {
    "filtered_as_sidelobe": 6,
    "never_detected": 2,
    "coverage_gaps": 0
  },
  "chip_review": {
    "sampled": 45,
    "stratified": "15 per tier",
    "precision": {
      "high": 0.8,
      "medium": 0.13,
      "low": 0.13,
      "all": 0.36
    }
  },
  "clearance_validation": {
    "n": 57,
    "1.0": {
      "bias": 0.52,
      "mae": 0.75,
      "above_signed": "37 of 57"
    },
    "1.2": {
      "bias": 0.32,
      "mae": 0.72,
      "above_signed": "30 of 57"
    },
    "2.0": {
      "bias": -0.48,
      "mae": 0.91,
      "above_signed": "9 of 57"
    },
    "note": "2.0 m inherited from phase 1 is 0.48 m too large on this set; ~1.5 m would centre it"
  },
  "display_tier": {
    "verified": 104,
    "candidate": 572,
    "verified_under_4_5": 75
  },
  "suspect": {
    "total": 91,
    "high_tier": 18,
    "with_chip_verdict": 10,
    "rule": "est_clearance_m < 2.0 and chip_verdict != 'bridge'"
  },
  "offset_decision": "2.0 m kept for both phases, deliberately conservative: reads 0.48 m below the plate on average over 57 signed heights, 9 of 57 above; published 1.2 m alone would put 30 of 57 above"
}