{
  "_integrity": {
    "version": "1",
    "content_hash": "sha256:b7e972c9931b673fc593f75b0748200191a49dc8e60e73876c7a06b132e5cf38",
    "signature": "ed25519:984d3f64e01c3ae98babe372f27ba8344114ca9cbe09444094b9ecf5a42e50673950d5a3ae52b8661217fb60bf0a4bcb0a1ddc48c2cae106186630c138ff7300",
    "signer": {
      "id": "fibercad-engine/0.1.0",
      "public_key": "ed25519:dde22c0ae6a5c4b101b62bc6778938e1f513298df51f1892c63279b0f2c41092"
    },
    "timestamp": "2026-04-17T15:32:12Z",
    "provenance": {
      "previous_layer": "L3_physical.fiberjson",
      "previous_hash": "sha256:6a0ef76a090e0e0ba08040a28997c783d66b19d5631ee763283df07526a29879"
    },
    "generation": {
      "tool": "fibercad",
      "tool_version": "0.1.0"
    }
  },
  "schema": "fibercad/compliance/v1",
  "layer": 4,
  "provenance": {
    "previous_layer": "L3_physical.fiberjson"
  },
  "profile": "lumos_v6",
  "result": "pass",
  "violations": [
    {
      "rule_id": "LUMOS-13.1-SPARE-PORTS",
      "rule_name": "Minimum spare ports on 1x8 splitter",
      "severity": "warning",
      "element": "spl-1x8-BG-01",
      "message": "Splitter 'spl-1x8-BG-01' (1x8) has only 1 spare port(s) (Lumos planning standard: ~4 spare per 1x8).",
      "guidance": "Reserve approximately 4 ports on each 1x8 splitter per Lumos planning standard. Reassign drops to another splitter if capacity allows."
    },
    {
      "rule_id": "LUMOS-13.1-SPARE-PORTS",
      "rule_name": "Minimum spare ports on 1x8 splitter",
      "severity": "warning",
      "element": "spl-1x8-BG-02",
      "message": "Splitter 'spl-1x8-BG-02' (1x8) has only 1 spare port(s) (Lumos planning standard: ~4 spare per 1x8).",
      "guidance": "Reserve approximately 4 ports on each 1x8 splitter per Lumos planning standard. Reassign drops to another splitter if capacity allows."
    },
    {
      "rule_id": "LUMOS-13.1-SPARE-PORTS",
      "rule_name": "Minimum spare ports on 1x8 splitter",
      "severity": "warning",
      "element": "spl-1x8-BG-03",
      "message": "Splitter 'spl-1x8-BG-03' (1x8) has only 1 spare port(s) (Lumos planning standard: ~4 spare per 1x8).",
      "guidance": "Reserve approximately 4 ports on each 1x8 splitter per Lumos planning standard. Reassign drops to another splitter if capacity allows."
    },
    {
      "rule_id": "LUMOS-13.1-SPARE-PORTS",
      "rule_name": "Minimum spare ports on 1x8 splitter",
      "severity": "warning",
      "element": "spl-1x8-BG-04",
      "message": "Splitter 'spl-1x8-BG-04' (1x8) has only 1 spare port(s) (Lumos planning standard: ~4 spare per 1x8).",
      "guidance": "Reserve approximately 4 ports on each 1x8 splitter per Lumos planning standard. Reassign drops to another splitter if capacity allows."
    },
    {
      "rule_id": "LUMOS-13.1-SPARE-PORTS",
      "rule_name": "Minimum spare ports on 1x8 splitter",
      "severity": "warning",
      "element": "spl-1x8-BG-05",
      "message": "Splitter 'spl-1x8-BG-05' (1x8) has only 1 spare port(s) (Lumos planning standard: ~4 spare per 1x8).",
      "guidance": "Reserve approximately 4 ports on each 1x8 splitter per Lumos planning standard. Reassign drops to another splitter if capacity allows."
    },
    {
      "rule_id": "LUMOS-13.1-SPARE-PORTS",
      "rule_name": "Minimum spare ports on 1x8 splitter",
      "severity": "warning",
      "element": "spl-1x8-BG-06",
      "message": "Splitter 'spl-1x8-BG-06' (1x8) has only 1 spare port(s) (Lumos planning standard: ~4 spare per 1x8).",
      "guidance": "Reserve approximately 4 ports on each 1x8 splitter per Lumos planning standard. Reassign drops to another splitter if capacity allows."
    },
    {
      "rule_id": "LUMOS-13.1-SPARE-PORTS",
      "rule_name": "Minimum spare ports on 1x8 splitter",
      "severity": "warning",
      "element": "spl-1x8-BG-07",
      "message": "Splitter 'spl-1x8-BG-07' (1x8) has only 1 spare port(s) (Lumos planning standard: ~4 spare per 1x8).",
      "guidance": "Reserve approximately 4 ports on each 1x8 splitter per Lumos planning standard. Reassign drops to another splitter if capacity allows."
    },
    {
      "rule_id": "LUMOS-13.1-SPARE-PORTS",
      "rule_name": "Minimum spare ports on 1x8 splitter",
      "severity": "warning",
      "element": "spl-1x8-BG-08",
      "message": "Splitter 'spl-1x8-BG-08' (1x8) has only 1 spare port(s) (Lumos planning standard: ~4 spare per 1x8).",
      "guidance": "Reserve approximately 4 ports on each 1x8 splitter per Lumos planning standard. Reassign drops to another splitter if capacity allows."
    },
    {
      "rule_id": "LUMOS-13.1-SPARE-PORTS",
      "rule_name": "Minimum spare ports on 1x8 splitter",
      "severity": "warning",
      "element": "spl-1x8-BG-09",
      "message": "Splitter 'spl-1x8-BG-09' (1x8) has only 1 spare port(s) (Lumos planning standard: ~4 spare per 1x8).",
      "guidance": "Reserve approximately 4 ports on each 1x8 splitter per Lumos planning standard. Reassign drops to another splitter if capacity allows."
    },
    {
      "rule_id": "LUMOS-13.1-SPARE-PORTS",
      "rule_name": "Minimum spare ports on 1x8 splitter",
      "severity": "warning",
      "element": "spl-1x8-BG-10",
      "message": "Splitter 'spl-1x8-BG-10' (1x8) has only 1 spare port(s) (Lumos planning standard: ~4 spare per 1x8).",
      "guidance": "Reserve approximately 4 ports on each 1x8 splitter per Lumos planning standard. Reassign drops to another splitter if capacity allows."
    },
    {
      "rule_id": "LUMOS-13.1-SPARE-PORTS",
      "rule_name": "Minimum spare ports on 1x8 splitter",
      "severity": "warning",
      "element": "spl-1x8-BG-11",
      "message": "Splitter 'spl-1x8-BG-11' (1x8) has only 1 spare port(s) (Lumos planning standard: ~4 spare per 1x8).",
      "guidance": "Reserve approximately 4 ports on each 1x8 splitter per Lumos planning standard. Reassign drops to another splitter if capacity allows."
    },
    {
      "rule_id": "LUMOS-13.1-SPARE-PORTS",
      "rule_name": "Minimum spare ports on 1x8 splitter",
      "severity": "warning",
      "element": "spl-1x8-BG-12",
      "message": "Splitter 'spl-1x8-BG-12' (1x8) has only 1 spare port(s) (Lumos planning standard: ~4 spare per 1x8).",
      "guidance": "Reserve approximately 4 ports on each 1x8 splitter per Lumos planning standard. Reassign drops to another splitter if capacity allows."
    },
    {
      "rule_id": "LUMOS-13.1-SPARE-PORTS",
      "rule_name": "Minimum spare ports on 1x8 splitter",
      "severity": "warning",
      "element": "spl-1x8-BG-13",
      "message": "Splitter 'spl-1x8-BG-13' (1x8) has only 1 spare port(s) (Lumos planning standard: ~4 spare per 1x8).",
      "guidance": "Reserve approximately 4 ports on each 1x8 splitter per Lumos planning standard. Reassign drops to another splitter if capacity allows."
    },
    {
      "rule_id": "LUMOS-13.1-SPARE-PORTS",
      "rule_name": "Minimum spare ports on 1x8 splitter",
      "severity": "warning",
      "element": "spl-1x8-BG-14",
      "message": "Splitter 'spl-1x8-BG-14' (1x8) has only 1 spare port(s) (Lumos planning standard: ~4 spare per 1x8).",
      "guidance": "Reserve approximately 4 ports on each 1x8 splitter per Lumos planning standard. Reassign drops to another splitter if capacity allows."
    },
    {
      "rule_id": "LUMOS-13.1-SPARE-PORTS",
      "rule_name": "Minimum spare ports on 1x8 splitter",
      "severity": "warning",
      "element": "spl-1x8-BG-15",
      "message": "Splitter 'spl-1x8-BG-15' (1x8) has only 1 spare port(s) (Lumos planning standard: ~4 spare per 1x8).",
      "guidance": "Reserve approximately 4 ports on each 1x8 splitter per Lumos planning standard. Reassign drops to another splitter if capacity allows."
    },
    {
      "rule_id": "LUMOS-13.1-SPARE-PORTS",
      "rule_name": "Minimum spare ports on 1x8 splitter",
      "severity": "warning",
      "element": "spl-1x8-BG-16",
      "message": "Splitter 'spl-1x8-BG-16' (1x8) has only 1 spare port(s) (Lumos planning standard: ~4 spare per 1x8).",
      "guidance": "Reserve approximately 4 ports on each 1x8 splitter per Lumos planning standard. Reassign drops to another splitter if capacity allows."
    },
    {
      "rule_id": "LUMOS-18-BEND-RULE",
      "rule_name": "bend_without_equipment",
      "severity": "warning",
      "element": "hh-068",
      "message": "Bend at hh-068: both adjacent segments exceed 150ft (275ft, 275ft)",
      "guidance": "Place a handhole or flowerpot at this bend, or shorten one adjacent segment to \u2264150ft"
    },
    {
      "rule_id": "LUMOS-18-BEND-RULE",
      "rule_name": "bend_without_equipment",
      "severity": "warning",
      "element": "hh-069",
      "message": "Bend at hh-069: both adjacent segments exceed 150ft (284ft, 284ft)",
      "guidance": "Place a handhole or flowerpot at this bend, or shorten one adjacent segment to \u2264150ft"
    },
    {
      "rule_id": "LUMOS-18-BEND-RULE",
      "rule_name": "bend_without_equipment",
      "severity": "warning",
      "element": "hh-012",
      "message": "Bend at hh-012: both adjacent segments exceed 150ft (431ft, 464ft)",
      "guidance": "Place a handhole or flowerpot at this bend, or shorten one adjacent segment to \u2264150ft"
    },
    {
      "rule_id": "LUMOS-18-BEND-RULE",
      "rule_name": "bend_without_equipment",
      "severity": "warning",
      "element": "hh-039",
      "message": "Bend at hh-039: both adjacent segments exceed 150ft (153ft, 287ft)",
      "guidance": "Place a handhole or flowerpot at this bend, or shorten one adjacent segment to \u2264150ft"
    },
    {
      "rule_id": "LUMOS-18-BEND-RULE",
      "rule_name": "bend_without_equipment",
      "severity": "warning",
      "element": "hh-052",
      "message": "Bend at hh-052: both adjacent segments exceed 150ft (218ft, 235ft)",
      "guidance": "Place a handhole or flowerpot at this bend, or shorten one adjacent segment to \u2264150ft"
    },
    {
      "rule_id": "LUMOS-18-BEND-RULE",
      "rule_name": "bend_without_equipment",
      "severity": "warning",
      "element": "hh-056",
      "message": "Bend at hh-056: both adjacent segments exceed 150ft (235ft, 395ft)",
      "guidance": "Place a handhole or flowerpot at this bend, or shorten one adjacent segment to \u2264150ft"
    },
    {
      "rule_id": "LUMOS-18-BEND-RULE",
      "rule_name": "bend_without_equipment",
      "severity": "warning",
      "element": "hh-053",
      "message": "Bend at hh-053: both adjacent segments exceed 150ft (265ft, 223ft)",
      "guidance": "Place a handhole or flowerpot at this bend, or shorten one adjacent segment to \u2264150ft"
    },
    {
      "rule_id": "LUMOS-18-BEND-RULE",
      "rule_name": "bend_without_equipment",
      "severity": "warning",
      "element": "hh-055",
      "message": "Bend at hh-055: both adjacent segments exceed 150ft (185ft, 302ft)",
      "guidance": "Place a handhole or flowerpot at this bend, or shorten one adjacent segment to \u2264150ft"
    },
    {
      "rule_id": "LUMOS-18-BEND-RULE",
      "rule_name": "bend_without_equipment",
      "severity": "warning",
      "element": "hh-054",
      "message": "Bend at hh-054: both adjacent segments exceed 150ft (235ft, 328ft)",
      "guidance": "Place a handhole or flowerpot at this bend, or shorten one adjacent segment to \u2264150ft"
    },
    {
      "rule_id": "LUMOS-18-BEND-RULE",
      "rule_name": "bend_without_equipment",
      "severity": "warning",
      "element": "hh-036",
      "message": "Bend at hh-036: both adjacent segments exceed 150ft (333ft, 354ft)",
      "guidance": "Place a handhole or flowerpot at this bend, or shorten one adjacent segment to \u2264150ft"
    },
    {
      "rule_id": "LUMOS-18-BEND-RULE",
      "rule_name": "bend_without_equipment",
      "severity": "warning",
      "element": "hh-033",
      "message": "Bend at hh-033: both adjacent segments exceed 150ft (354ft, 348ft)",
      "guidance": "Place a handhole or flowerpot at this bend, or shorten one adjacent segment to \u2264150ft"
    },
    {
      "rule_id": "LUMOS-18-BEND-RULE",
      "rule_name": "bend_without_equipment",
      "severity": "warning",
      "element": "hh-018",
      "message": "Bend at hh-018: both adjacent segments exceed 150ft (446ft, 433ft)",
      "guidance": "Place a handhole or flowerpot at this bend, or shorten one adjacent segment to \u2264150ft"
    },
    {
      "rule_id": "LUMOS-18-BEND-RULE",
      "rule_name": "bend_without_equipment",
      "severity": "warning",
      "element": "hh-070",
      "message": "Bend at hh-070: both adjacent segments exceed 150ft (260ft, 260ft)",
      "guidance": "Place a handhole or flowerpot at this bend, or shorten one adjacent segment to \u2264150ft"
    },
    {
      "rule_id": "LUMOS-18-BEND-RULE",
      "rule_name": "bend_without_equipment",
      "severity": "warning",
      "element": "hh-071",
      "message": "Bend at hh-071: both adjacent segments exceed 150ft (363ft, 363ft)",
      "guidance": "Place a handhole or flowerpot at this bend, or shorten one adjacent segment to \u2264150ft"
    },
    {
      "rule_id": "LUMOS-12-HH-SIZING-3WAY",
      "rule_name": "handhole_sizing_for_three_way",
      "severity": "warning",
      "element": "hh-011",
      "message": "Handhole hh-011 is a three-way splice but is SPLT (recommend SM or MED)",
      "guidance": "Three-way splices should use SM (17x24) or larger handholes"
    },
    {
      "rule_id": "LUMOS-12-HH-SIZING-3WAY",
      "rule_name": "handhole_sizing_for_three_way",
      "severity": "warning",
      "element": "hh-016",
      "message": "Handhole hh-016 is a three-way splice but is SPLT (recommend SM or MED)",
      "guidance": "Three-way splices should use SM (17x24) or larger handholes"
    },
    {
      "rule_id": "LUMOS-12-HH-SIZING-3WAY",
      "rule_name": "handhole_sizing_for_three_way",
      "severity": "warning",
      "element": "hh-024",
      "message": "Handhole hh-024 is a three-way splice but is SPLT (recommend SM or MED)",
      "guidance": "Three-way splices should use SM (17x24) or larger handholes"
    },
    {
      "rule_id": "LUMOS-12-HH-SIZING-3WAY",
      "rule_name": "handhole_sizing_for_three_way",
      "severity": "warning",
      "element": "hh-025",
      "message": "Handhole hh-025 is a three-way splice but is SPLT (recommend SM or MED)",
      "guidance": "Three-way splices should use SM (17x24) or larger handholes"
    },
    {
      "rule_id": "LUMOS-12-HH-SIZING-3WAY",
      "rule_name": "handhole_sizing_for_three_way",
      "severity": "warning",
      "element": "hh-030",
      "message": "Handhole hh-030 is a three-way splice but is SPLT (recommend SM or MED)",
      "guidance": "Three-way splices should use SM (17x24) or larger handholes"
    },
    {
      "rule_id": "LUMOS-12-HH-SIZING-3WAY",
      "rule_name": "handhole_sizing_for_three_way",
      "severity": "warning",
      "element": "hh-042",
      "message": "Handhole hh-042 is a three-way splice but is SPLT (recommend SM or MED)",
      "guidance": "Three-way splices should use SM (17x24) or larger handholes"
    },
    {
      "rule_id": "LUMOS-12-HH-SIZING-3WAY",
      "rule_name": "handhole_sizing_for_three_way",
      "severity": "warning",
      "element": "hh-043",
      "message": "Handhole hh-043 is a three-way splice but is SPLT (recommend SM or MED)",
      "guidance": "Three-way splices should use SM (17x24) or larger handholes"
    },
    {
      "rule_id": "LUMOS-12-HH-SIZING-3WAY",
      "rule_name": "handhole_sizing_for_three_way",
      "severity": "warning",
      "element": "hh-045",
      "message": "Handhole hh-045 is a three-way splice but is SPLT (recommend SM or MED)",
      "guidance": "Three-way splices should use SM (17x24) or larger handholes"
    },
    {
      "rule_id": "LUMOS-12-HH-SIZING-3WAY",
      "rule_name": "handhole_sizing_for_three_way",
      "severity": "warning",
      "element": "hh-047",
      "message": "Handhole hh-047 is a three-way splice but is SPLT (recommend SM or MED)",
      "guidance": "Three-way splices should use SM (17x24) or larger handholes"
    },
    {
      "rule_id": "LUMOS-12-HH-SIZING-3WAY",
      "rule_name": "handhole_sizing_for_three_way",
      "severity": "warning",
      "element": "hh-057",
      "message": "Handhole hh-057 is a three-way splice but is SPLT (recommend SM or MED)",
      "guidance": "Three-way splices should use SM (17x24) or larger handholes"
    },
    {
      "rule_id": "LUMOS-12-HH-SIZING-3WAY",
      "rule_name": "handhole_sizing_for_three_way",
      "severity": "warning",
      "element": "hh-059",
      "message": "Handhole hh-059 is a three-way splice but is SPLT (recommend SM or MED)",
      "guidance": "Three-way splices should use SM (17x24) or larger handholes"
    }
  ],
  "stats": {
    "total_conduit_ft": 15496.391322523861,
    "splitters_1x8": 16,
    "splitters_1x4": 112,
    "handholes": 71,
    "violations_count": 0,
    "warnings_count": 41,
    "total_addresses": 445,
    "boundary_groups": 16,
    "avg_homes_per_group": 27.81
  }
}