{
 "id": "outlets-64",
 "version": "v1",
 "frozenOn": "2026-10-14",
 "rateYear": 2026,
 "basis": "Direct job cost: labor and materials, no overhead or profit, at the median U.S. rate baseline.",
 "method": "Each description was read once by the Clamp estimator (probe outlets-2026-10, rerun; five surface-conduit jobs from outlets-conduit-2026-10) and priced through the estimator after C46 (2026-10-14).",
 "jobs": [
  {
   "key": "wall-outlet",
   "name": "Add a wall outlet",
   "description": "Add one new 120V duplex outlet on a living room wall where there isn't one, on the existing circuit. Tie into a suitable existing circuit about 25 feet away through an unfinished basement. Include the permit and inspection. No wall repair beyond the box cutout.",
   "assemblies": [
    {
     "assembly_id": "outlet_add",
     "parameters": {
      "outlet_count": 1,
      "source": "existing_circuit",
      "wire_run_ft": 25,
      "wall_condition": "drop_from_unfinished",
      "outlet_type": "standard",
      "substrate": "drywall",
      "paint_blend": "spot",
      "permit_required": true,
      "troubleshoot_hours": 0,
      "wiring_method": "concealed",
      "panel_space": "available",
      "raceway_ft": 0,
      "underground_ft": 0
     }
    }
   ],
   "lines": [
    {
     "templateId": "outlet_rough_add_labor",
     "name": "Add Outlet or Switch Box (rough-in)",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 18500,
     "totalCents": 18500,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 1.25,
     "hoursSpread": 0.44,
     "hoursSource": "catalog"
    },
    {
     "templateId": "electrical_box_device_materials",
     "name": "Electrical Box and Device Materials",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 850,
     "totalCents": 850,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "Add Outlet or Switch Box (rough-in)"
    },
    {
     "templateId": "outlet_unit_allowance",
     "name": "Outlet Unit Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 263,
     "totalCents": 263,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances"
    },
    {
     "templateId": "romex_wire_materials",
     "name": "Romex Wire Materials",
     "quantity": 28.75,
     "unit": "lf",
     "unitPriceCents": 80,
     "totalCents": 2300,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "Add Outlet or Switch Box (rough-in)"
    }
   ],
   "totalCents": 21913,
   "permits": null
  },
  {
   "key": "own-circuit",
   "name": "Add an outlet on its own circuit",
   "description": "Add one new 120V 20 amp outlet in a bedroom on its own new circuit from the panel, about 50 feet of 12 gauge wire through the basement, AFCI breaker. No wall repair beyond the box cutout. The panel is in an unfinished basement with space for a new breaker, and the house has capacity for the added load. Include the permit and inspection.",
   "assemblies": [
    {
     "assembly_id": "outlet_add",
     "parameters": {
      "outlet_count": 1,
      "outlet_type": "standard",
      "source": "new_circuit",
      "wire_run_ft": 50,
      "wall_condition": "drop_from_unfinished",
      "paint_blend": "none",
      "permit_required": true,
      "panel_space": "available",
      "substrate": "drywall",
      "troubleshoot_hours": 0,
      "wiring_method": "concealed",
      "raceway_ft": 0,
      "underground_ft": 0
     }
    }
   ],
   "lines": [
    {
     "templateId": "electrical_box_device_materials",
     "name": "Electrical Box and Device Materials",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 850,
     "totalCents": 850,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials"
    },
    {
     "templateId": "outlet_unit_allowance",
     "name": "Outlet Unit Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 263,
     "totalCents": 263,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances"
    },
    {
     "templateId": "romex_wire_materials",
     "name": "Romex Wire Materials",
     "quantity": 57.5,
     "unit": "lf",
     "unitPriceCents": 80,
     "totalCents": 4600,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials"
    },
    {
     "templateId": "circuit_install_labor",
     "name": "New Branch Circuit (labor)",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 42500,
     "totalCents": 42500,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 3,
     "hoursSpread": 1.05,
     "hoursSource": "catalog"
    },
    {
     "templateId": "dedicated_circuit_breaker_allowance",
     "name": "Dedicated Circuit Breaker Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 1250,
     "totalCents": 1250,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances",
     "installedBy": "New Branch Circuit (labor)"
    }
   ],
   "totalCents": 49463,
   "permits": {
    "note": "Permits and inspections: Electrical Permit and Inspection",
    "lines": [
     {
      "templateId": "electrical_permit_inspection",
      "name": "Electrical Permit and Inspection",
      "quantity": 1,
      "unit": "ea",
      "unitPriceCents": 22500,
      "totalCents": 22500,
      "flagged": false,
      "trade": "Electrical",
      "costType": "Permits & fees"
     }
    ],
    "totalCents": 22500,
    "lowCents": 8750,
    "highCents": 50000
   }
  },
  {
   "key": "kitchen-countertop",
   "name": "Kitchen countertop outlet",
   "description": "Add one 20 amp GFCI outlet above the kitchen countertop in the backsplash, tied into the existing small-appliance circuit about 25 feet away through the basement. Include the permit and inspection. No backsplash tile repair.",
   "assemblies": [
    {
     "assembly_id": "outlet_add",
     "parameters": {
      "outlet_count": 1,
      "outlet_type": "gfci",
      "source": "existing_circuit",
      "wire_run_ft": 25,
      "permit_required": true,
      "substrate": "drywall",
      "wall_condition": "drop_from_unfinished",
      "paint_blend": "spot",
      "troubleshoot_hours": 0,
      "wiring_method": "concealed",
      "panel_space": "available",
      "raceway_ft": 0,
      "underground_ft": 0
     }
    }
   ],
   "lines": [
    {
     "templateId": "outlet_rough_add_labor",
     "name": "Add Outlet or Switch Box (rough-in)",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 18500,
     "totalCents": 18500,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 1.25,
     "hoursSpread": 0.44,
     "hoursSource": "catalog"
    },
    {
     "templateId": "electrical_box_device_materials",
     "name": "Electrical Box and Device Materials",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 850,
     "totalCents": 850,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "Add Outlet or Switch Box (rough-in)"
    },
    {
     "templateId": "outlet_unit_allowance",
     "name": "Outlet Unit Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 2400,
     "totalCents": 2400,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances"
    },
    {
     "templateId": "romex_wire_materials",
     "name": "Romex Wire Materials",
     "quantity": 28.75,
     "unit": "lf",
     "unitPriceCents": 80,
     "totalCents": 2300,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "Add Outlet or Switch Box (rough-in)"
    }
   ],
   "totalCents": 24050,
   "permits": null
  },
  {
   "key": "kitchen-island",
   "name": "Kitchen island or pop-up outlet",
   "description": "Add a listed pop-up countertop outlet in an existing kitchen island, fed from the existing small-appliance circuit about 25 feet away through the basement under the island, dual-function protection. Cut the countertop hole for the pop-up. Include the permit and inspection.",
   "assemblies": [
    {
     "assembly_id": "outlet_add",
     "parameters": {
      "outlet_count": 1,
      "outlet_type": "gfci",
      "source": "existing_circuit",
      "wire_run_ft": 25,
      "wall_condition": "drop_from_unfinished",
      "substrate": "drywall",
      "paint_blend": "spot",
      "permit_required": true,
      "troubleshoot_hours": 0,
      "wiring_method": "concealed",
      "panel_space": "available",
      "raceway_ft": 0,
      "underground_ft": 0
     }
    }
   ],
   "lines": [
    {
     "templateId": "outlet_rough_add_labor",
     "name": "Add Outlet or Switch Box (rough-in)",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 18500,
     "totalCents": 18500,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 1.25,
     "hoursSpread": 0.44,
     "hoursSource": "catalog"
    },
    {
     "templateId": "electrical_box_device_materials",
     "name": "Electrical Box and Device Materials",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 850,
     "totalCents": 850,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "Add Outlet or Switch Box (rough-in)"
    },
    {
     "templateId": "outlet_unit_allowance",
     "name": "Outlet Unit Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 2400,
     "totalCents": 2400,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances"
    },
    {
     "templateId": "romex_wire_materials",
     "name": "Romex Wire Materials",
     "quantity": 28.75,
     "unit": "lf",
     "unitPriceCents": 80,
     "totalCents": 2300,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "Add Outlet or Switch Box (rough-in)"
    }
   ],
   "totalCents": 24050,
   "permits": null
  },
  {
   "key": "bathroom-gfci",
   "name": "Bathroom GFCI outlet",
   "description": "Add one 20 amp GFCI outlet beside the bathroom vanity on the existing bathroom circuit about 25 feet away, fished from the basement. Include the permit and inspection. No wall repair beyond the box cutout.",
   "assemblies": [
    {
     "assembly_id": "outlet_add",
     "parameters": {
      "outlet_count": 1,
      "outlet_type": "gfci",
      "source": "existing_circuit",
      "wire_run_ft": 25,
      "wall_condition": "drop_from_unfinished",
      "paint_blend": "none",
      "substrate": "drywall",
      "permit_required": true,
      "troubleshoot_hours": 0,
      "wiring_method": "concealed",
      "panel_space": "available",
      "raceway_ft": 0,
      "underground_ft": 0
     }
    }
   ],
   "lines": [
    {
     "templateId": "outlet_rough_add_labor",
     "name": "Add Outlet or Switch Box (rough-in)",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 18500,
     "totalCents": 18500,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 1.25,
     "hoursSpread": 0.44,
     "hoursSource": "catalog"
    },
    {
     "templateId": "electrical_box_device_materials",
     "name": "Electrical Box and Device Materials",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 850,
     "totalCents": 850,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "Add Outlet or Switch Box (rough-in)"
    },
    {
     "templateId": "outlet_unit_allowance",
     "name": "Outlet Unit Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 2400,
     "totalCents": 2400,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances"
    },
    {
     "templateId": "romex_wire_materials",
     "name": "Romex Wire Materials",
     "quantity": 28.75,
     "unit": "lf",
     "unitPriceCents": 80,
     "totalCents": 2300,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "Add Outlet or Switch Box (rough-in)"
    }
   ],
   "totalCents": 24050,
   "permits": null
  },
  {
   "key": "bidet",
   "name": "Bidet or smart toilet outlet",
   "description": "Add a 20 amp GFCI outlet behind the toilet for a smart bidet seat, tied into the bathroom circuit about 25 feet away, fished from the basement. Include the permit and inspection. No wall repair beyond the box cutout.",
   "assemblies": [
    {
     "assembly_id": "outlet_add",
     "parameters": {
      "outlet_count": 1,
      "outlet_type": "gfci",
      "source": "existing_circuit",
      "wire_run_ft": 25,
      "wall_condition": "drop_from_unfinished",
      "paint_blend": "none",
      "substrate": "drywall",
      "permit_required": true,
      "troubleshoot_hours": 0,
      "wiring_method": "concealed",
      "panel_space": "available",
      "raceway_ft": 0,
      "underground_ft": 0
     }
    }
   ],
   "lines": [
    {
     "templateId": "outlet_rough_add_labor",
     "name": "Add Outlet or Switch Box (rough-in)",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 18500,
     "totalCents": 18500,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 1.25,
     "hoursSpread": 0.44,
     "hoursSource": "catalog"
    },
    {
     "templateId": "electrical_box_device_materials",
     "name": "Electrical Box and Device Materials",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 850,
     "totalCents": 850,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "Add Outlet or Switch Box (rough-in)"
    },
    {
     "templateId": "outlet_unit_allowance",
     "name": "Outlet Unit Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 2400,
     "totalCents": 2400,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances"
    },
    {
     "templateId": "romex_wire_materials",
     "name": "Romex Wire Materials",
     "quantity": 28.75,
     "unit": "lf",
     "unitPriceCents": 80,
     "totalCents": 2300,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "Add Outlet or Switch Box (rough-in)"
    }
   ],
   "totalCents": 24050,
   "permits": null
  },
  {
   "key": "garage",
   "name": "Garage outlet",
   "description": "Add one 20 amp GFCI outlet on an unfinished garage wall, extended from an existing circuit about 25 feet away: 12/2 NM cable through the unfinished basement ceiling, then 6 feet of EMT conduit down the garage wall to a surface box. Include the permit and inspection.",
   "assemblies": [
    {
     "assembly_id": "outlet_add",
     "parameters": {
      "outlet_count": 1,
      "outlet_type": "gfci",
      "source": "existing_circuit",
      "wire_run_ft": 31,
      "wiring_method": "surface_raceway",
      "permit_required": true,
      "substrate": "drywall",
      "wall_condition": "fishable",
      "paint_blend": "spot",
      "troubleshoot_hours": 0,
      "panel_space": "available",
      "raceway_ft": 6,
      "underground_ft": 0
     }
    }
   ],
   "lines": [
    {
     "templateId": "outlet_unit_allowance",
     "name": "Outlet Unit Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 2400,
     "totalCents": 2400,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances",
     "installedBy": "Outlet/Switch Install"
    },
    {
     "templateId": "romex_wire_materials",
     "name": "Romex Wire Materials",
     "quantity": 28.75,
     "unit": "lf",
     "unitPriceCents": 80,
     "totalCents": 2300,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials"
    },
    {
     "templateId": "electrical_rough_in_per_device",
     "name": "Electrical Rough-In Per Device",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 5500,
     "totalCents": 5500,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 0.63,
     "hoursSpread": 0.22,
     "hoursSource": "catalog"
    },
    {
     "templateId": "outlet_switch_install_labor",
     "name": "Outlet/Switch Install",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 6500,
     "totalCents": 6500,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 0.38,
     "hoursSpread": 0.13,
     "hoursSource": "catalog"
    },
    {
     "templateId": "surface_box_materials",
     "name": "Surface-Mount Device Box",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 950,
     "totalCents": 950,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "Surface Raceway Install Labor"
    },
    {
     "templateId": "surface_raceway_materials",
     "name": "Surface Raceway and Conductors",
     "quantity": 6.6,
     "unit": "lf",
     "unitPriceCents": 275,
     "totalCents": 1815,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "Surface Raceway Install Labor"
    },
    {
     "templateId": "surface_raceway_install_labor",
     "name": "Surface Raceway Install Labor",
     "quantity": 6,
     "unit": "lf",
     "unitPriceCents": 950,
     "totalCents": 5700,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 0.75,
     "hoursSpread": 0.26,
     "hoursSource": "catalog"
    }
   ],
   "totalCents": 25165,
   "permits": null
  },
  {
   "key": "basement",
   "name": "Basement outlet",
   "description": "Add one 20 amp GFCI outlet on the unfinished basement foundation wall, tied into an existing basement circuit about 25 feet away: 12/2 NM cable stapled along the joists, then 6 feet of EMT conduit down the foundation wall to a surface box. Include the permit and inspection.",
   "assemblies": [
    {
     "assembly_id": "outlet_add",
     "parameters": {
      "outlet_count": 1,
      "outlet_type": "gfci",
      "source": "existing_circuit",
      "wire_run_ft": 31,
      "substrate": "masonry",
      "wiring_method": "surface_raceway",
      "paint_blend": "none",
      "permit_required": true,
      "wall_condition": "fishable",
      "troubleshoot_hours": 0,
      "panel_space": "available",
      "raceway_ft": 6,
      "underground_ft": 0
     }
    }
   ],
   "lines": [
    {
     "templateId": "outlet_unit_allowance",
     "name": "Outlet Unit Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 2400,
     "totalCents": 2400,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances",
     "installedBy": "Outlet/Switch Install"
    },
    {
     "templateId": "romex_wire_materials",
     "name": "Romex Wire Materials",
     "quantity": 28.75,
     "unit": "lf",
     "unitPriceCents": 80,
     "totalCents": 2300,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials"
    },
    {
     "templateId": "electrical_rough_in_per_device",
     "name": "Electrical Rough-In Per Device",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 8250,
     "totalCents": 8250,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 0.94,
     "hoursSpread": 0.33,
     "hoursSource": "catalog"
    },
    {
     "templateId": "outlet_switch_install_labor",
     "name": "Outlet/Switch Install",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 6500,
     "totalCents": 6500,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 0.38,
     "hoursSpread": 0.13,
     "hoursSource": "catalog"
    },
    {
     "templateId": "surface_box_materials",
     "name": "Surface-Mount Device Box",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 950,
     "totalCents": 950,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "Surface Raceway Install Labor"
    },
    {
     "templateId": "surface_raceway_materials",
     "name": "Surface Raceway and Conductors",
     "quantity": 6.6,
     "unit": "lf",
     "unitPriceCents": 275,
     "totalCents": 1815,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "Surface Raceway Install Labor"
    },
    {
     "templateId": "surface_raceway_install_labor",
     "name": "Surface Raceway Install Labor",
     "quantity": 6,
     "unit": "lf",
     "unitPriceCents": 1425,
     "totalCents": 8550,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 1.13,
     "hoursSpread": 0.39,
     "hoursSource": "catalog"
    }
   ],
   "totalCents": 30765,
   "permits": null
  },
  {
   "key": "usb-c",
   "name": "USB or USB-C wall outlet",
   "description": "Add one new outlet with built-in USB-A and USB-C ports in a home office wall, on the existing circuit about 25 feet away fished from the basement. Include the permit and inspection. No wall repair beyond the box cutout.",
   "assemblies": [
    {
     "assembly_id": "outlet_add",
     "parameters": {
      "outlet_count": 1,
      "outlet_type": "usb",
      "source": "existing_circuit",
      "wire_run_ft": 25,
      "wall_condition": "drop_from_unfinished",
      "paint_blend": "none",
      "substrate": "drywall",
      "permit_required": true,
      "troubleshoot_hours": 0,
      "wiring_method": "concealed",
      "panel_space": "available",
      "raceway_ft": 0,
      "underground_ft": 0
     }
    }
   ],
   "lines": [
    {
     "templateId": "outlet_rough_add_labor",
     "name": "Add Outlet or Switch Box (rough-in)",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 18500,
     "totalCents": 18500,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 1.25,
     "hoursSpread": 0.44,
     "hoursSource": "catalog"
    },
    {
     "templateId": "electrical_box_device_materials",
     "name": "Electrical Box and Device Materials",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 850,
     "totalCents": 850,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "Add Outlet or Switch Box (rough-in)"
    },
    {
     "templateId": "outlet_unit_allowance",
     "name": "Outlet Unit Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 800,
     "totalCents": 800,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances"
    },
    {
     "templateId": "romex_wire_materials",
     "name": "Romex Wire Materials",
     "quantity": 28.75,
     "unit": "lf",
     "unitPriceCents": 80,
     "totalCents": 2300,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "Add Outlet or Switch Box (rough-in)"
    }
   ],
   "totalCents": 22450,
   "permits": null
  },
  {
   "key": "floor",
   "name": "Floor outlet",
   "description": "Add a listed floor outlet box in the middle of a living room with a wood floor over an unfinished basement, fed from an existing circuit about 25 feet away. Include the permit and inspection.",
   "assemblies": [
    {
     "assembly_id": "outlet_add",
     "parameters": {
      "outlet_count": 1,
      "source": "existing_circuit",
      "wire_run_ft": 25,
      "wall_condition": "drop_from_unfinished",
      "outlet_type": "standard",
      "substrate": "drywall",
      "paint_blend": "spot",
      "permit_required": true,
      "troubleshoot_hours": 0,
      "wiring_method": "concealed",
      "panel_space": "available",
      "raceway_ft": 0,
      "underground_ft": 0
     }
    }
   ],
   "lines": [
    {
     "templateId": "outlet_rough_add_labor",
     "name": "Add Outlet or Switch Box (rough-in)",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 18500,
     "totalCents": 18500,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 1.25,
     "hoursSpread": 0.44,
     "hoursSource": "catalog"
    },
    {
     "templateId": "electrical_box_device_materials",
     "name": "Electrical Box and Device Materials",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 850,
     "totalCents": 850,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "Add Outlet or Switch Box (rough-in)"
    },
    {
     "templateId": "outlet_unit_allowance",
     "name": "Outlet Unit Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 263,
     "totalCents": 263,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances"
    },
    {
     "templateId": "romex_wire_materials",
     "name": "Romex Wire Materials",
     "quantity": 28.75,
     "unit": "lf",
     "unitPriceCents": 80,
     "totalCents": 2300,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "Add Outlet or Switch Box (rough-in)"
    }
   ],
   "totalCents": 21913,
   "permits": null
  },
  {
   "key": "garage-door-opener",
   "name": "Garage door opener ceiling outlet",
   "description": "Add one 120V ceiling outlet for a garage door opener in an attached garage with an unfinished ceiling, extended from an existing garage GFCI circuit about 25 feet away, with the GFCI reset where it can be reached. Include the permit and inspection.",
   "assemblies": [
    {
     "assembly_id": "outlet_add",
     "parameters": {
      "outlet_count": 1,
      "outlet_type": "gfci",
      "source": "existing_circuit",
      "wire_run_ft": 25,
      "wall_condition": "open_cavity",
      "paint_blend": "none",
      "permit_required": true,
      "substrate": "drywall",
      "troubleshoot_hours": 0,
      "wiring_method": "concealed",
      "panel_space": "available",
      "raceway_ft": 0,
      "underground_ft": 0
     }
    }
   ],
   "lines": [
    {
     "templateId": "electrical_box_device_materials",
     "name": "Electrical Box and Device Materials",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 850,
     "totalCents": 850,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials"
    },
    {
     "templateId": "outlet_unit_allowance",
     "name": "Outlet Unit Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 2400,
     "totalCents": 2400,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances",
     "installedBy": "Outlet/Switch Install"
    },
    {
     "templateId": "romex_wire_materials",
     "name": "Romex Wire Materials",
     "quantity": 28.75,
     "unit": "lf",
     "unitPriceCents": 80,
     "totalCents": 2300,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials"
    },
    {
     "templateId": "electrical_rough_in_per_device",
     "name": "Electrical Rough-In Per Device",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 5500,
     "totalCents": 5500,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 0.63,
     "hoursSpread": 0.22,
     "hoursSource": "catalog"
    },
    {
     "templateId": "outlet_switch_install_labor",
     "name": "Outlet/Switch Install",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 6500,
     "totalCents": 6500,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 0.38,
     "hoursSpread": 0.13,
     "hoursSource": "catalog"
    }
   ],
   "totalCents": 17550,
   "permits": null
  },
  {
   "key": "projector",
   "name": "Projector ceiling outlet",
   "description": "Add one 120V outlet in a finished living room ceiling for a projector, fed from an existing circuit about 25 feet away through the attic above. Include the permit and inspection. No ceiling repair beyond the box cutout.",
   "assemblies": [
    {
     "assembly_id": "outlet_add",
     "parameters": {
      "outlet_count": 1,
      "outlet_type": "standard",
      "source": "existing_circuit",
      "wire_run_ft": 25,
      "wall_condition": "drop_from_unfinished",
      "paint_blend": "none",
      "permit_required": true,
      "substrate": "drywall",
      "troubleshoot_hours": 0,
      "wiring_method": "concealed",
      "panel_space": "available",
      "raceway_ft": 0,
      "underground_ft": 0
     }
    }
   ],
   "lines": [
    {
     "templateId": "outlet_rough_add_labor",
     "name": "Add Outlet or Switch Box (rough-in)",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 18500,
     "totalCents": 18500,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 1.25,
     "hoursSpread": 0.44,
     "hoursSource": "catalog"
    },
    {
     "templateId": "electrical_box_device_materials",
     "name": "Electrical Box and Device Materials",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 850,
     "totalCents": 850,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "Add Outlet or Switch Box (rough-in)"
    },
    {
     "templateId": "outlet_unit_allowance",
     "name": "Outlet Unit Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 263,
     "totalCents": 263,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances"
    },
    {
     "templateId": "romex_wire_materials",
     "name": "Romex Wire Materials",
     "quantity": 28.75,
     "unit": "lf",
     "unitPriceCents": 80,
     "totalCents": 2300,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "Add Outlet or Switch Box (rough-in)"
    }
   ],
   "totalCents": 21913,
   "permits": null
  },
  {
   "key": "tv-wall",
   "name": "Outlet behind a wall-mounted TV",
   "description": "Add a recessed outlet behind a wall-mounted TV about 5 feet up, fed from the outlet below it about 15 feet of wire in the same stud bay, plus a recessed low-voltage pass-through for the cables. Include the permit and inspection. No wall repair beyond the box cutouts.",
   "assemblies": [
    {
     "assembly_id": "outlet_add",
     "parameters": {
      "outlet_count": 1,
      "outlet_type": "standard",
      "source": "existing_circuit",
      "wire_run_ft": 15,
      "wall_condition": "same_bay",
      "paint_blend": "none",
      "substrate": "drywall",
      "permit_required": true,
      "troubleshoot_hours": 0,
      "wiring_method": "concealed",
      "panel_space": "available",
      "raceway_ft": 0,
      "underground_ft": 0
     }
    },
    {
     "assembly_id": "data_outlet_add",
     "parameters": {
      "drop_count": 1,
      "run_ft": 1,
      "wall_condition": "same_bay",
      "paint_blend": "none"
     }
    }
   ],
   "lines": [
    {
     "templateId": "outlet_rough_add_labor",
     "name": "Add Outlet or Switch Box (rough-in)",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 18500,
     "totalCents": 18500,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 1.25,
     "hoursSpread": 0.44,
     "hoursSource": "catalog"
    },
    {
     "templateId": "electrical_box_device_materials",
     "name": "Electrical Box and Device Materials",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 850,
     "totalCents": 850,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "Add Outlet or Switch Box (rough-in)"
    },
    {
     "templateId": "outlet_unit_allowance",
     "name": "Outlet Unit Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 263,
     "totalCents": 263,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances"
    },
    {
     "templateId": "romex_wire_materials",
     "name": "Romex Wire Materials",
     "quantity": 17.25,
     "unit": "lf",
     "unitPriceCents": 80,
     "totalCents": 1380,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "Add Outlet or Switch Box (rough-in)"
    },
    {
     "templateId": "low_voltage_rough_in_per_device",
     "name": "Low Voltage Rough-In Per Device",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 10500,
     "totalCents": 10500,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 1.25,
     "hoursSpread": 0.44,
     "hoursSource": "catalog"
    },
    {
     "templateId": "low_voltage_cable_materials",
     "name": "Low Voltage Cable Materials",
     "quantity": 1,
     "unit": "lf",
     "unitPriceCents": 85,
     "totalCents": 85,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "Low Voltage Rough-In Per Device"
    }
   ],
   "totalCents": 31578,
   "permits": null
  },
  {
   "key": "washer",
   "name": "Washing machine outlet",
   "description": "Add a 20 amp outlet for a washing machine on its own new laundry circuit, about 50 feet of 12 gauge from the panel through the basement, dual-function AFCI/GFCI breaker. The panel is in an unfinished basement with space for a new breaker, and the house has capacity for the added load. Include the permit and inspection.",
   "assemblies": [
    {
     "assembly_id": "dedicated_circuit_install",
     "parameters": {
      "circuit_count": 1,
      "circuit_type": "120v_20",
      "endpoint": "receptacle",
      "run_ft": 50,
      "route": "accessible",
      "afci_required": true,
      "permit_required": true,
      "panel_space": "available",
      "underground_ft": 0
     }
    }
   ],
   "lines": [
    {
     "templateId": "circuit_install_labor",
     "name": "New Branch Circuit (labor)",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 42500,
     "totalCents": 42500,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 3,
     "hoursSpread": 1.05,
     "hoursSource": "catalog"
    },
    {
     "templateId": "romex_wire_materials",
     "name": "Romex Wire Materials",
     "quantity": 57.5,
     "unit": "lf",
     "unitPriceCents": 80,
     "totalCents": 4600,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "New Branch Circuit (labor)"
    },
    {
     "templateId": "electrical_box_device_materials",
     "name": "Electrical Box and Device Materials",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 850,
     "totalCents": 850,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials"
    },
    {
     "templateId": "outlet_unit_allowance",
     "name": "Outlet Unit Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 800,
     "totalCents": 800,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances"
    },
    {
     "templateId": "dedicated_circuit_breaker_allowance",
     "name": "Dedicated Circuit Breaker Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 6250,
     "totalCents": 6250,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances",
     "installedBy": "New Branch Circuit (labor)"
    }
   ],
   "totalCents": 55000,
   "permits": {
    "note": "Permits and inspections: Electrical Permit and Inspection",
    "lines": [
     {
      "templateId": "electrical_permit_inspection",
      "name": "Electrical Permit and Inspection",
      "quantity": 1,
      "unit": "ea",
      "unitPriceCents": 22500,
      "totalCents": 22500,
      "flagged": false,
      "trade": "Electrical",
      "costType": "Permits & fees"
     }
    ],
    "totalCents": 22500,
    "lowCents": 8750,
    "highCents": 50000
   }
  },
  {
   "key": "outdoor-gfci",
   "name": "Outdoor GFCI outlet",
   "description": "Add one 20 amp weather-resistant GFCI outlet on the back wall of the house with an in-use cover, through the rim joist from the basement, tied into an existing circuit about 25 feet away. Vinyl siding. Include the permit and inspection.",
   "assemblies": [
    {
     "assembly_id": "exterior_outlet_add",
     "parameters": {
      "outlet_count": 1,
      "is_gfci_required": true,
      "is_weather_resistant_in_use": true,
      "assembly_difficulty": 1.25,
      "permit_required": true
     }
    }
   ],
   "lines": [
    {
     "templateId": "outdoor_outlet_install_labor",
     "name": "Outdoor Outlet Install",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 35625,
     "totalCents": 35625,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 2.81,
     "hoursSpread": 0.98,
     "hoursSource": "catalog"
    },
    {
     "templateId": "gfci_afci_device_install_labor",
     "name": "GFCI/AFCI Device Install",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 8500,
     "totalCents": 8500,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 0.5,
     "hoursSpread": 0.18,
     "hoursSource": "catalog"
    },
    {
     "templateId": "electrical_box_device_materials",
     "name": "Electrical Box and Device Materials",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 850,
     "totalCents": 850,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "GFCI/AFCI Device Install"
    },
    {
     "templateId": "romex_wire_materials",
     "name": "Romex Wire Materials",
     "quantity": 20,
     "unit": "lf",
     "unitPriceCents": 80,
     "totalCents": 1600,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "Outdoor Outlet Install"
    },
    {
     "templateId": "weatherproof_box_allowance",
     "name": "Weatherproof Box Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 3800,
     "totalCents": 3800,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances",
     "installedBy": "Outdoor Outlet Install"
    },
    {
     "templateId": "gfci_unit_allowance",
     "name": "Gfci Unit Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 2200,
     "totalCents": 2200,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances",
     "installedBy": "GFCI/AFCI Device Install"
    }
   ],
   "totalCents": 52575,
   "permits": {
    "note": "Permits and inspections: Electrical Permit and Inspection",
    "lines": [
     {
      "templateId": "electrical_permit_inspection",
      "name": "Electrical Permit and Inspection",
      "quantity": 1,
      "unit": "ea",
      "unitPriceCents": 22500,
      "totalCents": 22500,
      "flagged": false,
      "trade": "Electrical",
      "costType": "Permits & fees"
     }
    ],
    "totalCents": 22500,
    "lowCents": 8750,
    "highCents": 50000
   }
  },
  {
   "key": "eave",
   "name": "Christmas light or eave outlet",
   "description": "Add a switched weather-resistant outlet under the front eave for holiday lights, about 50 feet from an existing circuit through the attic, with a switch inside by the front door and an in-use cover. Two-story house, ladder access. Include the permit and inspection.",
   "assemblies": [
    {
     "assembly_id": "exterior_outlet_add",
     "parameters": {
      "outlet_count": 1,
      "is_gfci_required": true,
      "is_weather_resistant_in_use": true,
      "assembly_difficulty": 1.5,
      "permit_required": true
     }
    }
   ],
   "lines": [
    {
     "templateId": "outdoor_outlet_install_labor",
     "name": "Outdoor Outlet Install",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 42750,
     "totalCents": 42750,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 3.38,
     "hoursSpread": 1.18,
     "hoursSource": "catalog"
    },
    {
     "templateId": "gfci_afci_device_install_labor",
     "name": "GFCI/AFCI Device Install",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 8500,
     "totalCents": 8500,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 0.5,
     "hoursSpread": 0.18,
     "hoursSource": "catalog"
    },
    {
     "templateId": "electrical_box_device_materials",
     "name": "Electrical Box and Device Materials",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 850,
     "totalCents": 850,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "GFCI/AFCI Device Install"
    },
    {
     "templateId": "romex_wire_materials",
     "name": "Romex Wire Materials",
     "quantity": 20,
     "unit": "lf",
     "unitPriceCents": 80,
     "totalCents": 1600,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "Outdoor Outlet Install"
    },
    {
     "templateId": "weatherproof_box_allowance",
     "name": "Weatherproof Box Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 3800,
     "totalCents": 3800,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances",
     "installedBy": "Outdoor Outlet Install"
    },
    {
     "templateId": "gfci_unit_allowance",
     "name": "Gfci Unit Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 2200,
     "totalCents": 2200,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances",
     "installedBy": "GFCI/AFCI Device Install"
    }
   ],
   "totalCents": 59700,
   "permits": {
    "note": "Permits and inspections: Electrical Permit and Inspection",
    "lines": [
     {
      "templateId": "electrical_permit_inspection",
      "name": "Electrical Permit and Inspection",
      "quantity": 1,
      "unit": "ea",
      "unitPriceCents": 22500,
      "totalCents": 22500,
      "flagged": false,
      "trade": "Electrical",
      "costType": "Permits & fees"
     }
    ],
    "totalCents": 22500,
    "lowCents": 8750,
    "highCents": 50000
   }
  },
  {
   "key": "yard-pedestal",
   "name": "Yard outlet or power pedestal",
   "description": "Add a 20 amp GFCI outlet on a post in the back yard 40 feet from the house, on a new circuit from the panel: about 35 feet inside and 40 feet underground in a trench through lawn, with an in-use cover. Include the permit and inspection.",
   "assemblies": [
    {
     "assembly_id": "dedicated_circuit_install",
     "parameters": {
      "circuit_count": 1,
      "circuit_type": "120v_20",
      "endpoint": "receptacle",
      "run_ft": 75,
      "permit_required": true,
      "route": "accessible",
      "afci_required": false,
      "panel_space": "available",
      "underground_ft": 40
     }
    }
   ],
   "lines": [
    {
     "templateId": "circuit_install_labor",
     "name": "New Branch Circuit (labor)",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 42500,
     "totalCents": 42500,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 3,
     "hoursSpread": 1.05,
     "hoursSource": "catalog"
    },
    {
     "templateId": "dedicated_circuit_breaker_allowance",
     "name": "Dedicated Circuit Breaker Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 1250,
     "totalCents": 1250,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances",
     "installedBy": "New Branch Circuit (labor)"
    },
    {
     "templateId": "romex_wire_materials",
     "name": "Romex Wire Materials",
     "quantity": 40.25,
     "unit": "lf",
     "unitPriceCents": 80,
     "totalCents": 3220,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "New Branch Circuit (labor)"
    },
    {
     "templateId": "electrical_box_device_materials",
     "name": "Electrical Box and Device Materials",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 850,
     "totalCents": 850,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials"
    },
    {
     "templateId": "outlet_unit_allowance",
     "name": "Outlet Unit Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 800,
     "totalCents": 800,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances"
    },
    {
     "templateId": "underground_branch_wire_materials",
     "name": "Underground Branch Circuit Wire Materials",
     "quantity": 46,
     "unit": "lf",
     "unitPriceCents": 110,
     "totalCents": 5060,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials"
    },
    {
     "templateId": "trenching_labor",
     "name": "Trenching Labor",
     "quantity": 40,
     "unit": "lf",
     "unitPriceCents": 650,
     "totalCents": 26000,
     "flagged": false,
     "trade": "Sitework",
     "costType": "Labor",
     "hoursTypical": 1.07,
     "hoursSpread": 0.37,
     "hoursSource": "catalog"
    },
    {
     "templateId": "underground_conduit_materials",
     "name": "Underground Electrical Conduit (per lf)",
     "quantity": 42,
     "unit": "lf",
     "unitPriceCents": 275,
     "totalCents": 11550,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials"
    }
   ],
   "totalCents": 91230,
   "permits": {
    "note": "Permits and inspections: Electrical Permit and Inspection",
    "lines": [
     {
      "templateId": "electrical_permit_inspection",
      "name": "Electrical Permit and Inspection",
      "quantity": 1,
      "unit": "ea",
      "unitPriceCents": 22500,
      "totalCents": 22500,
      "flagged": false,
      "trade": "Electrical",
      "costType": "Permits & fees"
     }
    ],
    "totalCents": 22500,
    "lowCents": 8750,
    "highCents": 50000
   }
  },
  {
   "key": "outdoor-kitchen",
   "name": "Outdoor kitchen outlet",
   "description": "Add two 20 amp GFCI outlets in an existing outdoor kitchen island on a patio, on a new circuit from the panel: about 30 feet inside and 20 feet underground under lawn, with in-use covers. Include the permit and inspection.",
   "assemblies": [
    {
     "assembly_id": "dedicated_circuit_install",
     "parameters": {
      "circuit_count": 1,
      "circuit_type": "120v_20",
      "endpoint": "receptacle",
      "run_ft": 50,
      "permit_required": true,
      "route": "accessible",
      "afci_required": false,
      "panel_space": "available",
      "underground_ft": 20
     }
    },
    {
     "assembly_id": "exterior_outlet_add",
     "parameters": {
      "outlet_count": 2,
      "is_gfci_required": true,
      "is_weather_resistant_in_use": true,
      "assembly_difficulty": 1,
      "permit_required": true
     }
    }
   ],
   "lines": [
    {
     "templateId": "circuit_install_labor",
     "name": "New Branch Circuit (labor)",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 42500,
     "totalCents": 42500,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 3,
     "hoursSpread": 1.05,
     "hoursSource": "catalog"
    },
    {
     "templateId": "dedicated_circuit_breaker_allowance",
     "name": "Dedicated Circuit Breaker Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 1250,
     "totalCents": 1250,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances",
     "installedBy": "New Branch Circuit (labor)"
    },
    {
     "templateId": "romex_wire_materials",
     "name": "Romex Wire Materials",
     "quantity": 74.5,
     "unit": "lf",
     "unitPriceCents": 80,
     "totalCents": 5960,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "New Branch Circuit (labor)"
    },
    {
     "templateId": "electrical_box_device_materials",
     "name": "Electrical Box and Device Materials",
     "quantity": 3,
     "unit": "ea",
     "unitPriceCents": 850,
     "totalCents": 2550,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "GFCI/AFCI Device Install"
    },
    {
     "templateId": "outlet_unit_allowance",
     "name": "Outlet Unit Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 800,
     "totalCents": 800,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances"
    },
    {
     "templateId": "underground_branch_wire_materials",
     "name": "Underground Branch Circuit Wire Materials",
     "quantity": 23,
     "unit": "lf",
     "unitPriceCents": 110,
     "totalCents": 2530,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials"
    },
    {
     "templateId": "trenching_labor",
     "name": "Trenching Labor",
     "quantity": 20,
     "unit": "lf",
     "unitPriceCents": 650,
     "totalCents": 13000,
     "flagged": false,
     "trade": "Sitework",
     "costType": "Labor",
     "hoursTypical": 0.53,
     "hoursSpread": 0.19,
     "hoursSource": "catalog"
    },
    {
     "templateId": "underground_conduit_materials",
     "name": "Underground Electrical Conduit (per lf)",
     "quantity": 21,
     "unit": "lf",
     "unitPriceCents": 275,
     "totalCents": 5775,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials"
    },
    {
     "templateId": "outdoor_outlet_install_labor",
     "name": "Outdoor Outlet Install",
     "quantity": 2,
     "unit": "ea",
     "unitPriceCents": 28500,
     "totalCents": 57000,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 4.5,
     "hoursSpread": 1.58,
     "hoursSource": "catalog"
    },
    {
     "templateId": "gfci_afci_device_install_labor",
     "name": "GFCI/AFCI Device Install",
     "quantity": 2,
     "unit": "ea",
     "unitPriceCents": 8500,
     "totalCents": 17000,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 1,
     "hoursSpread": 0.35,
     "hoursSource": "catalog"
    },
    {
     "templateId": "weatherproof_box_allowance",
     "name": "Weatherproof Box Allowance",
     "quantity": 2,
     "unit": "ea",
     "unitPriceCents": 3800,
     "totalCents": 7600,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances",
     "installedBy": "Outdoor Outlet Install"
    },
    {
     "templateId": "gfci_unit_allowance",
     "name": "Gfci Unit Allowance",
     "quantity": 2,
     "unit": "ea",
     "unitPriceCents": 2200,
     "totalCents": 4400,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances",
     "installedBy": "GFCI/AFCI Device Install"
    }
   ],
   "totalCents": 160365,
   "permits": {
    "note": "Permits and inspections: Electrical Permit and Inspection",
    "lines": [
     {
      "templateId": "electrical_permit_inspection",
      "name": "Electrical Permit and Inspection",
      "quantity": 1,
      "unit": "ea",
      "unitPriceCents": 22500,
      "totalCents": 22500,
      "flagged": false,
      "trade": "Electrical",
      "costType": "Permits & fees"
     }
    ],
    "totalCents": 22500,
    "lowCents": 8750,
    "highCents": 50000
   }
  },
  {
   "key": "gate",
   "name": "Driveway gate circuit",
   "description": "Run a new 20 amp circuit to an automatic driveway gate operator 100 feet from the house: about 25 feet inside and 75 feet underground in a trench along the driveway edge, with a weatherproof disconnect at the gate. Include the permit and inspection.",
   "assemblies": [
    {
     "assembly_id": "dedicated_circuit_install",
     "parameters": {
      "circuit_count": 1,
      "circuit_type": "120v_20",
      "endpoint": "hardwired_appliance",
      "run_ft": 100,
      "permit_required": true,
      "route": "accessible",
      "afci_required": false,
      "panel_space": "available",
      "underground_ft": 75
     }
    }
   ],
   "lines": [
    {
     "templateId": "circuit_install_labor",
     "name": "New Branch Circuit (labor)",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 42500,
     "totalCents": 42500,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 3,
     "hoursSpread": 1.05,
     "hoursSource": "catalog"
    },
    {
     "templateId": "dedicated_circuit_breaker_allowance",
     "name": "Dedicated Circuit Breaker Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 1250,
     "totalCents": 1250,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances",
     "installedBy": "New Branch Circuit (labor)"
    },
    {
     "templateId": "romex_wire_materials",
     "name": "Romex Wire Materials",
     "quantity": 28.75,
     "unit": "lf",
     "unitPriceCents": 80,
     "totalCents": 2300,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "New Branch Circuit (labor)"
    },
    {
     "templateId": "electrical_box_device_materials",
     "name": "Electrical Box and Device Materials",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 850,
     "totalCents": 850,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials"
    },
    {
     "templateId": "underground_branch_wire_materials",
     "name": "Underground Branch Circuit Wire Materials",
     "quantity": 86.25,
     "unit": "lf",
     "unitPriceCents": 110,
     "totalCents": 9488,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials"
    },
    {
     "templateId": "trenching_labor",
     "name": "Trenching Labor",
     "quantity": 75,
     "unit": "lf",
     "unitPriceCents": 650,
     "totalCents": 48750,
     "flagged": false,
     "trade": "Sitework",
     "costType": "Labor",
     "hoursTypical": 2,
     "hoursSpread": 0.7,
     "hoursSource": "catalog"
    },
    {
     "templateId": "underground_conduit_materials",
     "name": "Underground Electrical Conduit (per lf)",
     "quantity": 78.75,
     "unit": "lf",
     "unitPriceCents": 275,
     "totalCents": 21656,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials"
    }
   ],
   "totalCents": 126794,
   "permits": {
    "note": "Permits and inspections: Electrical Permit and Inspection",
    "lines": [
     {
      "templateId": "electrical_permit_inspection",
      "name": "Electrical Permit and Inspection",
      "quantity": 1,
      "unit": "ea",
      "unitPriceCents": 22500,
      "totalCents": 22500,
      "flagged": false,
      "trade": "Electrical",
      "costType": "Permits & fees"
     }
    ],
    "totalCents": 22500,
    "lowCents": 8750,
    "highCents": 50000
   }
  },
  {
   "key": "fountain",
   "name": "Pond or fountain pump outlet",
   "description": "Add a 20 amp GFCI outlet for a garden fountain pump 40 feet from the house, on a new circuit: about 35 feet inside and 40 feet underground through lawn, with an in-use cover on a post. Include the permit and inspection.",
   "assemblies": [
    {
     "assembly_id": "dedicated_circuit_install",
     "parameters": {
      "circuit_count": 1,
      "circuit_type": "120v_20",
      "endpoint": "receptacle",
      "run_ft": 75,
      "permit_required": true,
      "route": "accessible",
      "afci_required": false,
      "panel_space": "available",
      "underground_ft": 40
     }
    },
    {
     "assembly_id": "exterior_outlet_add",
     "parameters": {
      "outlet_count": 1,
      "is_gfci_required": true,
      "is_weather_resistant_in_use": true,
      "assembly_difficulty": 1,
      "permit_required": true
     }
    }
   ],
   "lines": [
    {
     "templateId": "circuit_install_labor",
     "name": "New Branch Circuit (labor)",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 42500,
     "totalCents": 42500,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 3,
     "hoursSpread": 1.05,
     "hoursSource": "catalog"
    },
    {
     "templateId": "dedicated_circuit_breaker_allowance",
     "name": "Dedicated Circuit Breaker Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 1250,
     "totalCents": 1250,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances",
     "installedBy": "New Branch Circuit (labor)"
    },
    {
     "templateId": "romex_wire_materials",
     "name": "Romex Wire Materials",
     "quantity": 60.25,
     "unit": "lf",
     "unitPriceCents": 80,
     "totalCents": 4820,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "New Branch Circuit (labor)"
    },
    {
     "templateId": "electrical_box_device_materials",
     "name": "Electrical Box and Device Materials",
     "quantity": 2,
     "unit": "ea",
     "unitPriceCents": 850,
     "totalCents": 1700,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "GFCI/AFCI Device Install"
    },
    {
     "templateId": "outlet_unit_allowance",
     "name": "Outlet Unit Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 800,
     "totalCents": 800,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances"
    },
    {
     "templateId": "underground_branch_wire_materials",
     "name": "Underground Branch Circuit Wire Materials",
     "quantity": 46,
     "unit": "lf",
     "unitPriceCents": 110,
     "totalCents": 5060,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials"
    },
    {
     "templateId": "trenching_labor",
     "name": "Trenching Labor",
     "quantity": 40,
     "unit": "lf",
     "unitPriceCents": 650,
     "totalCents": 26000,
     "flagged": false,
     "trade": "Sitework",
     "costType": "Labor",
     "hoursTypical": 1.07,
     "hoursSpread": 0.37,
     "hoursSource": "catalog"
    },
    {
     "templateId": "underground_conduit_materials",
     "name": "Underground Electrical Conduit (per lf)",
     "quantity": 42,
     "unit": "lf",
     "unitPriceCents": 275,
     "totalCents": 11550,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials"
    },
    {
     "templateId": "outdoor_outlet_install_labor",
     "name": "Outdoor Outlet Install",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 28500,
     "totalCents": 28500,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 2.25,
     "hoursSpread": 0.79,
     "hoursSource": "catalog"
    },
    {
     "templateId": "gfci_afci_device_install_labor",
     "name": "GFCI/AFCI Device Install",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 8500,
     "totalCents": 8500,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 0.5,
     "hoursSpread": 0.18,
     "hoursSource": "catalog"
    },
    {
     "templateId": "weatherproof_box_allowance",
     "name": "Weatherproof Box Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 3800,
     "totalCents": 3800,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances",
     "installedBy": "Outdoor Outlet Install"
    },
    {
     "templateId": "gfci_unit_allowance",
     "name": "Gfci Unit Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 2200,
     "totalCents": 2200,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances",
     "installedBy": "GFCI/AFCI Device Install"
    }
   ],
   "totalCents": 136680,
   "permits": {
    "note": "Permits and inspections: Electrical Permit and Inspection",
    "lines": [
     {
      "templateId": "electrical_permit_inspection",
      "name": "Electrical Permit and Inspection",
      "quantity": 1,
      "unit": "ea",
      "unitPriceCents": 22500,
      "totalCents": 22500,
      "flagged": false,
      "trade": "Electrical",
      "costType": "Permits & fees"
     }
    ],
    "totalCents": 22500,
    "lowCents": 8750,
    "highCents": 50000
   }
  },
  {
   "key": "shed",
   "name": "Shed outlet",
   "description": "Run one new 20 amp circuit to a detached shed 40 feet from the house, about 35 feet inside and 40 feet underground through lawn, with one GFCI outlet and one light with a switch inside the shed. Include the permit and inspection.",
   "assemblies": [
    {
     "assembly_id": "outlet_add",
     "parameters": {
      "outlet_count": 1,
      "outlet_type": "gfci",
      "source": "new_circuit",
      "wire_run_ft": 75,
      "permit_required": true,
      "substrate": "drywall",
      "wall_condition": "open_cavity",
      "paint_blend": "none",
      "troubleshoot_hours": 0,
      "wiring_method": "concealed",
      "panel_space": "available",
      "raceway_ft": 0,
      "underground_ft": 40
     }
    },
    {
     "assembly_id": "light_fixture_add",
     "parameters": {
      "fixture_count": 1,
      "fixture_location": "ceiling",
      "new_switch": true,
      "wire_run_ft": 15,
      "fixture_tier": "standard",
      "access_above": "unknown",
      "substrate": "drywall",
      "wall_condition": "open_cavity",
      "paint_blend": "none"
     }
    }
   ],
   "lines": [
    {
     "templateId": "electrical_box_device_materials",
     "name": "Electrical Box and Device Materials",
     "quantity": 3,
     "unit": "ea",
     "unitPriceCents": 850,
     "totalCents": 2550,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "Add Light or Fan Box (rough-in)"
    },
    {
     "templateId": "outlet_unit_allowance",
     "name": "Outlet Unit Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 2400,
     "totalCents": 2400,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances"
    },
    {
     "templateId": "romex_wire_materials",
     "name": "Romex Wire Materials",
     "quantity": 69,
     "unit": "lf",
     "unitPriceCents": 80,
     "totalCents": 5520,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "Add Light or Fan Box (rough-in)"
    },
    {
     "templateId": "circuit_install_labor",
     "name": "New Branch Circuit (labor)",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 42500,
     "totalCents": 42500,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 3,
     "hoursSpread": 1.05,
     "hoursSource": "catalog"
    },
    {
     "templateId": "dedicated_circuit_breaker_allowance",
     "name": "Dedicated Circuit Breaker Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 1250,
     "totalCents": 1250,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances",
     "installedBy": "New Branch Circuit (labor)"
    },
    {
     "templateId": "underground_branch_wire_materials",
     "name": "Underground Branch Circuit Wire Materials",
     "quantity": 46,
     "unit": "lf",
     "unitPriceCents": 110,
     "totalCents": 5060,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials"
    },
    {
     "templateId": "trenching_labor",
     "name": "Trenching Labor",
     "quantity": 40,
     "unit": "lf",
     "unitPriceCents": 650,
     "totalCents": 26000,
     "flagged": false,
     "trade": "Sitework",
     "costType": "Labor",
     "hoursTypical": 1.07,
     "hoursSpread": 0.37,
     "hoursSource": "catalog"
    },
    {
     "templateId": "underground_conduit_materials",
     "name": "Underground Electrical Conduit (per lf)",
     "quantity": 42,
     "unit": "lf",
     "unitPriceCents": 275,
     "totalCents": 11550,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials"
    },
    {
     "templateId": "light_box_rough_add_labor",
     "name": "Add Light or Fan Box (rough-in)",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 22500,
     "totalCents": 22500,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 1.5,
     "hoursSpread": 0.52,
     "hoursSource": "catalog"
    },
    {
     "templateId": "light_fixture_install_labor",
     "name": "Light Fixture Install",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 12500,
     "totalCents": 12500,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 1.13,
     "hoursSpread": 0.39,
     "hoursSource": "catalog"
    },
    {
     "templateId": "light_fixture_allowance",
     "name": "Light Fixture Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 15000,
     "totalCents": 15000,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances",
     "installedBy": "Light Fixture Install"
    },
    {
     "templateId": "outlet_rough_add_labor",
     "name": "Add Outlet or Switch Box (rough-in)",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 18500,
     "totalCents": 18500,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 1.25,
     "hoursSpread": 0.44,
     "hoursSource": "catalog"
    },
    {
     "templateId": "switch_unit_allowance",
     "name": "Switch Unit Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 700,
     "totalCents": 700,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances",
     "installedBy": "Add Outlet or Switch Box (rough-in)"
    }
   ],
   "totalCents": 166030,
   "permits": {
    "note": "Permits and inspections: Electrical Permit and Inspection",
    "lines": [
     {
      "templateId": "electrical_permit_inspection",
      "name": "Electrical Permit and Inspection",
      "quantity": 1,
      "unit": "ea",
      "unitPriceCents": 22500,
      "totalCents": 22500,
      "flagged": false,
      "trade": "Electrical",
      "costType": "Permits & fees"
     }
    ],
    "totalCents": 22500,
    "lowCents": 8750,
    "highCents": 50000
   }
  },
  {
   "key": "heat-cable",
   "name": "Roof or gutter heat cable outlet",
   "description": "Add a 20 amp GFCI outlet under the eave for roof and gutter heat cable, on a new circuit from the panel about 50 feet through the attic, with an in-use cover. Heat cable not included. Include the permit and inspection.",
   "assemblies": [
    {
     "assembly_id": "dedicated_circuit_install",
     "parameters": {
      "circuit_count": 1,
      "circuit_type": "120v_20",
      "endpoint": "receptacle",
      "run_ft": 50,
      "route": "accessible",
      "permit_required": true,
      "afci_required": false,
      "panel_space": "available",
      "underground_ft": 0
     }
    }
   ],
   "lines": [
    {
     "templateId": "circuit_install_labor",
     "name": "New Branch Circuit (labor)",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 42500,
     "totalCents": 42500,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 3,
     "hoursSpread": 1.05,
     "hoursSource": "catalog"
    },
    {
     "templateId": "dedicated_circuit_breaker_allowance",
     "name": "Dedicated Circuit Breaker Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 1250,
     "totalCents": 1250,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances",
     "installedBy": "New Branch Circuit (labor)"
    },
    {
     "templateId": "romex_wire_materials",
     "name": "Romex Wire Materials",
     "quantity": 57.5,
     "unit": "lf",
     "unitPriceCents": 80,
     "totalCents": 4600,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "New Branch Circuit (labor)"
    },
    {
     "templateId": "electrical_box_device_materials",
     "name": "Electrical Box and Device Materials",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 850,
     "totalCents": 850,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials"
    },
    {
     "templateId": "outlet_unit_allowance",
     "name": "Outlet Unit Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 800,
     "totalCents": 800,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances"
    }
   ],
   "totalCents": 50000,
   "permits": {
    "note": "Permits and inspections: Electrical Permit and Inspection",
    "lines": [
     {
      "templateId": "electrical_permit_inspection",
      "name": "Electrical Permit and Inspection",
      "quantity": 1,
      "unit": "ea",
      "unitPriceCents": 22500,
      "totalCents": 22500,
      "flagged": false,
      "trade": "Electrical",
      "costType": "Permits & fees"
     }
    ],
    "totalCents": 22500,
    "lowCents": 8750,
    "highCents": 50000
   }
  },
  {
   "key": "ac-service",
   "name": "Outlet near the AC unit",
   "description": "Add one weather-resistant GFCI service outlet next to the outdoor AC condenser, tied into an existing circuit about 25 feet away through the basement, with an in-use cover. Include the permit and inspection.",
   "assemblies": [
    {
     "assembly_id": "exterior_outlet_add",
     "parameters": {
      "outlet_count": 1,
      "is_gfci_required": true,
      "is_weather_resistant_in_use": true,
      "assembly_difficulty": 1.25,
      "permit_required": true
     }
    }
   ],
   "lines": [
    {
     "templateId": "outdoor_outlet_install_labor",
     "name": "Outdoor Outlet Install",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 35625,
     "totalCents": 35625,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 2.81,
     "hoursSpread": 0.98,
     "hoursSource": "catalog"
    },
    {
     "templateId": "gfci_afci_device_install_labor",
     "name": "GFCI/AFCI Device Install",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 8500,
     "totalCents": 8500,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 0.5,
     "hoursSpread": 0.18,
     "hoursSource": "catalog"
    },
    {
     "templateId": "electrical_box_device_materials",
     "name": "Electrical Box and Device Materials",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 850,
     "totalCents": 850,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "GFCI/AFCI Device Install"
    },
    {
     "templateId": "romex_wire_materials",
     "name": "Romex Wire Materials",
     "quantity": 20,
     "unit": "lf",
     "unitPriceCents": 80,
     "totalCents": 1600,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "Outdoor Outlet Install"
    },
    {
     "templateId": "weatherproof_box_allowance",
     "name": "Weatherproof Box Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 3800,
     "totalCents": 3800,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances",
     "installedBy": "Outdoor Outlet Install"
    },
    {
     "templateId": "gfci_unit_allowance",
     "name": "Gfci Unit Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 2200,
     "totalCents": 2200,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances",
     "installedBy": "GFCI/AFCI Device Install"
    }
   ],
   "totalCents": 52575,
   "permits": {
    "note": "Permits and inspections: Electrical Permit and Inspection",
    "lines": [
     {
      "templateId": "electrical_permit_inspection",
      "name": "Electrical Permit and Inspection",
      "quantity": 1,
      "unit": "ea",
      "unitPriceCents": 22500,
      "totalCents": 22500,
      "flagged": false,
      "trade": "Electrical",
      "costType": "Permits & fees"
     }
    ],
    "totalCents": 22500,
    "lowCents": 8750,
    "highCents": 50000
   }
  },
  {
   "key": "microwave",
   "name": "Microwave outlet",
   "description": "Add a dedicated 20 amp circuit and outlet in the upper cabinet for an over-the-range microwave, about 50 feet of 12 gauge from the panel through the basement and up the wall, dual-function breaker. The panel is in an unfinished basement with space for a new breaker, and the house has capacity for the added load. Include the permit and inspection.",
   "assemblies": [
    {
     "assembly_id": "dedicated_circuit_install",
     "parameters": {
      "circuit_count": 1,
      "circuit_type": "120v_20",
      "endpoint": "receptacle",
      "run_ft": 50,
      "route": "accessible",
      "afci_required": true,
      "permit_required": true,
      "panel_space": "available",
      "underground_ft": 0
     }
    }
   ],
   "lines": [
    {
     "templateId": "circuit_install_labor",
     "name": "New Branch Circuit (labor)",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 42500,
     "totalCents": 42500,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 3,
     "hoursSpread": 1.05,
     "hoursSource": "catalog"
    },
    {
     "templateId": "romex_wire_materials",
     "name": "Romex Wire Materials",
     "quantity": 57.5,
     "unit": "lf",
     "unitPriceCents": 80,
     "totalCents": 4600,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "New Branch Circuit (labor)"
    },
    {
     "templateId": "electrical_box_device_materials",
     "name": "Electrical Box and Device Materials",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 850,
     "totalCents": 850,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials"
    },
    {
     "templateId": "outlet_unit_allowance",
     "name": "Outlet Unit Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 800,
     "totalCents": 800,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances"
    },
    {
     "templateId": "dedicated_circuit_breaker_allowance",
     "name": "Dedicated Circuit Breaker Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 6250,
     "totalCents": 6250,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances",
     "installedBy": "New Branch Circuit (labor)"
    }
   ],
   "totalCents": 55000,
   "permits": {
    "note": "Permits and inspections: Electrical Permit and Inspection",
    "lines": [
     {
      "templateId": "electrical_permit_inspection",
      "name": "Electrical Permit and Inspection",
      "quantity": 1,
      "unit": "ea",
      "unitPriceCents": 22500,
      "totalCents": 22500,
      "flagged": false,
      "trade": "Electrical",
      "costType": "Permits & fees"
     }
    ],
    "totalCents": 22500,
    "lowCents": 8750,
    "highCents": 50000
   }
  },
  {
   "key": "dishwasher",
   "name": "Dishwasher circuit",
   "description": "Add a dedicated 20 amp circuit for a dishwasher with an outlet under the sink, about 50 feet of 12 gauge from the panel through the basement, dual-function breaker. The panel is in an unfinished basement with space for a new breaker, and the house has capacity for the added load. Include the permit and inspection.",
   "assemblies": [
    {
     "assembly_id": "outlet_add",
     "parameters": {
      "outlet_count": 1,
      "outlet_type": "standard",
      "source": "new_circuit",
      "wire_run_ft": 50,
      "wall_condition": "drop_from_unfinished",
      "permit_required": true,
      "panel_space": "available",
      "substrate": "drywall",
      "paint_blend": "spot",
      "troubleshoot_hours": 0,
      "wiring_method": "concealed",
      "raceway_ft": 0,
      "underground_ft": 0
     }
    }
   ],
   "lines": [
    {
     "templateId": "electrical_box_device_materials",
     "name": "Electrical Box and Device Materials",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 850,
     "totalCents": 850,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials"
    },
    {
     "templateId": "outlet_unit_allowance",
     "name": "Outlet Unit Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 263,
     "totalCents": 263,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances"
    },
    {
     "templateId": "romex_wire_materials",
     "name": "Romex Wire Materials",
     "quantity": 57.5,
     "unit": "lf",
     "unitPriceCents": 80,
     "totalCents": 4600,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials"
    },
    {
     "templateId": "circuit_install_labor",
     "name": "New Branch Circuit (labor)",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 42500,
     "totalCents": 42500,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 3,
     "hoursSpread": 1.05,
     "hoursSource": "catalog"
    },
    {
     "templateId": "dedicated_circuit_breaker_allowance",
     "name": "Dedicated Circuit Breaker Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 1250,
     "totalCents": 1250,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances",
     "installedBy": "New Branch Circuit (labor)"
    }
   ],
   "totalCents": 49463,
   "permits": {
    "note": "Permits and inspections: Electrical Permit and Inspection",
    "lines": [
     {
      "templateId": "electrical_permit_inspection",
      "name": "Electrical Permit and Inspection",
      "quantity": 1,
      "unit": "ea",
      "unitPriceCents": 22500,
      "totalCents": 22500,
      "flagged": false,
      "trade": "Electrical",
      "costType": "Permits & fees"
     }
    ],
    "totalCents": 22500,
    "lowCents": 8750,
    "highCents": 50000
   }
  },
  {
   "key": "disposal",
   "name": "Garbage disposal outlet",
   "description": "Add a switched 20 amp outlet under the kitchen sink for a garbage disposal on a new circuit, about 50 feet from the panel through the basement, with a wall switch by the sink, dual-function breaker. No backsplash repair. The panel is in an unfinished basement with space for a new breaker, and the house has capacity for the added load. Include the permit and inspection.",
   "assemblies": [
    {
     "assembly_id": "dedicated_circuit_install",
     "parameters": {
      "circuit_count": 1,
      "circuit_type": "120v_20",
      "endpoint": "receptacle",
      "run_ft": 50,
      "route": "accessible",
      "afci_required": true,
      "permit_required": true,
      "panel_space": "available",
      "underground_ft": 0
     }
    }
   ],
   "lines": [
    {
     "templateId": "circuit_install_labor",
     "name": "New Branch Circuit (labor)",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 42500,
     "totalCents": 42500,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 3,
     "hoursSpread": 1.05,
     "hoursSource": "catalog"
    },
    {
     "templateId": "romex_wire_materials",
     "name": "Romex Wire Materials",
     "quantity": 57.5,
     "unit": "lf",
     "unitPriceCents": 80,
     "totalCents": 4600,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "New Branch Circuit (labor)"
    },
    {
     "templateId": "electrical_box_device_materials",
     "name": "Electrical Box and Device Materials",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 850,
     "totalCents": 850,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials"
    },
    {
     "templateId": "outlet_unit_allowance",
     "name": "Outlet Unit Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 800,
     "totalCents": 800,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances"
    },
    {
     "templateId": "dedicated_circuit_breaker_allowance",
     "name": "Dedicated Circuit Breaker Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 6250,
     "totalCents": 6250,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances",
     "installedBy": "New Branch Circuit (labor)"
    }
   ],
   "totalCents": 55000,
   "permits": {
    "note": "Permits and inspections: Electrical Permit and Inspection",
    "lines": [
     {
      "templateId": "electrical_permit_inspection",
      "name": "Electrical Permit and Inspection",
      "quantity": 1,
      "unit": "ea",
      "unitPriceCents": 22500,
      "totalCents": 22500,
      "flagged": false,
      "trade": "Electrical",
      "costType": "Permits & fees"
     }
    ],
    "totalCents": 22500,
    "lowCents": 8750,
    "highCents": 50000
   }
  },
  {
   "key": "refrigerator",
   "name": "Dedicated refrigerator outlet",
   "description": "Add a dedicated 20 amp outlet behind the refrigerator on its own circuit, about 50 feet of 12 gauge from the panel through the basement, GFCI protection as the 2023 code requires in kitchens. The panel is in an unfinished basement with space for a new breaker, and the house has capacity for the added load. Include the permit and inspection.",
   "assemblies": [
    {
     "assembly_id": "dedicated_circuit_install",
     "parameters": {
      "circuit_count": 1,
      "circuit_type": "120v_20",
      "endpoint": "receptacle",
      "run_ft": 50,
      "route": "accessible",
      "panel_space": "available",
      "permit_required": true,
      "afci_required": false,
      "underground_ft": 0
     }
    }
   ],
   "lines": [
    {
     "templateId": "circuit_install_labor",
     "name": "New Branch Circuit (labor)",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 42500,
     "totalCents": 42500,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 3,
     "hoursSpread": 1.05,
     "hoursSource": "catalog"
    },
    {
     "templateId": "dedicated_circuit_breaker_allowance",
     "name": "Dedicated Circuit Breaker Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 1250,
     "totalCents": 1250,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances",
     "installedBy": "New Branch Circuit (labor)"
    },
    {
     "templateId": "romex_wire_materials",
     "name": "Romex Wire Materials",
     "quantity": 57.5,
     "unit": "lf",
     "unitPriceCents": 80,
     "totalCents": 4600,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "New Branch Circuit (labor)"
    },
    {
     "templateId": "electrical_box_device_materials",
     "name": "Electrical Box and Device Materials",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 850,
     "totalCents": 850,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials"
    },
    {
     "templateId": "outlet_unit_allowance",
     "name": "Outlet Unit Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 800,
     "totalCents": 800,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances"
    }
   ],
   "totalCents": 50000,
   "permits": {
    "note": "Permits and inspections: Electrical Permit and Inspection",
    "lines": [
     {
      "templateId": "electrical_permit_inspection",
      "name": "Electrical Permit and Inspection",
      "quantity": 1,
      "unit": "ea",
      "unitPriceCents": 22500,
      "totalCents": 22500,
      "flagged": false,
      "trade": "Electrical",
      "costType": "Permits & fees"
     }
    ],
    "totalCents": 22500,
    "lowCents": 8750,
    "highCents": 50000
   }
  },
  {
   "key": "freezer",
   "name": "Dedicated freezer outlet",
   "description": "Add a dedicated 20 amp GFCI outlet for a chest freezer in the attached garage on a new circuit: 50 feet of 12/2 NM cable from the panel along the unfinished basement joists, then 8 feet of EMT conduit down the garage wall to a surface box. The panel has space for a new breaker and the house has capacity for the load. Include the permit and inspection.",
   "assemblies": [
    {
     "assembly_id": "outlet_add",
     "parameters": {
      "outlet_count": 1,
      "outlet_type": "gfci",
      "source": "new_circuit",
      "wire_run_ft": 58,
      "wiring_method": "surface_raceway",
      "panel_space": "available",
      "permit_required": true,
      "substrate": "drywall",
      "wall_condition": "fishable",
      "paint_blend": "spot",
      "troubleshoot_hours": 0,
      "raceway_ft": 8,
      "underground_ft": 0
     }
    }
   ],
   "lines": [
    {
     "templateId": "outlet_unit_allowance",
     "name": "Outlet Unit Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 2400,
     "totalCents": 2400,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances"
    },
    {
     "templateId": "romex_wire_materials",
     "name": "Romex Wire Materials",
     "quantity": 57.5,
     "unit": "lf",
     "unitPriceCents": 80,
     "totalCents": 4600,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials"
    },
    {
     "templateId": "circuit_install_labor",
     "name": "New Branch Circuit (labor)",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 42500,
     "totalCents": 42500,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 3,
     "hoursSpread": 1.05,
     "hoursSource": "catalog"
    },
    {
     "templateId": "dedicated_circuit_breaker_allowance",
     "name": "Dedicated Circuit Breaker Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 1250,
     "totalCents": 1250,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances",
     "installedBy": "New Branch Circuit (labor)"
    },
    {
     "templateId": "surface_box_materials",
     "name": "Surface-Mount Device Box",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 950,
     "totalCents": 950,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "Surface Raceway Install Labor"
    },
    {
     "templateId": "surface_raceway_materials",
     "name": "Surface Raceway and Conductors",
     "quantity": 8.8,
     "unit": "lf",
     "unitPriceCents": 275,
     "totalCents": 2420,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "Surface Raceway Install Labor"
    },
    {
     "templateId": "surface_raceway_install_labor",
     "name": "Surface Raceway Install Labor",
     "quantity": 8,
     "unit": "lf",
     "unitPriceCents": 950,
     "totalCents": 7600,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 1,
     "hoursSpread": 0.35,
     "hoursSource": "catalog"
    }
   ],
   "totalCents": 61720,
   "permits": {
    "note": "Permits and inspections: Electrical Permit and Inspection",
    "lines": [
     {
      "templateId": "electrical_permit_inspection",
      "name": "Electrical Permit and Inspection",
      "quantity": 1,
      "unit": "ea",
      "unitPriceCents": 22500,
      "totalCents": 22500,
      "flagged": false,
      "trade": "Electrical",
      "costType": "Permits & fees"
     }
    ],
    "totalCents": 22500,
    "lowCents": 8750,
    "highCents": 50000
   }
  },
  {
   "key": "sump-pump",
   "name": "Sump pump outlet",
   "description": "Add a dedicated 20 amp GFCI outlet beside the sump pit on a new circuit: 50 feet of 12/2 NM cable from the panel along the unfinished basement joists, then 6 feet of EMT conduit down the foundation wall to a surface box. The panel has space for a new breaker and the house has capacity for the load. Include the permit and inspection.",
   "assemblies": [
    {
     "assembly_id": "outlet_add",
     "parameters": {
      "outlet_count": 1,
      "outlet_type": "gfci",
      "source": "new_circuit",
      "wire_run_ft": 56,
      "wiring_method": "surface_raceway",
      "substrate": "masonry",
      "panel_space": "available",
      "permit_required": true,
      "wall_condition": "fishable",
      "paint_blend": "spot",
      "troubleshoot_hours": 0,
      "raceway_ft": 6,
      "underground_ft": 0
     }
    }
   ],
   "lines": [
    {
     "templateId": "outlet_unit_allowance",
     "name": "Outlet Unit Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 2400,
     "totalCents": 2400,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances"
    },
    {
     "templateId": "romex_wire_materials",
     "name": "Romex Wire Materials",
     "quantity": 57.5,
     "unit": "lf",
     "unitPriceCents": 80,
     "totalCents": 4600,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials"
    },
    {
     "templateId": "circuit_install_labor",
     "name": "New Branch Circuit (labor)",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 42500,
     "totalCents": 42500,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 3,
     "hoursSpread": 1.05,
     "hoursSource": "catalog"
    },
    {
     "templateId": "dedicated_circuit_breaker_allowance",
     "name": "Dedicated Circuit Breaker Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 1250,
     "totalCents": 1250,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances",
     "installedBy": "New Branch Circuit (labor)"
    },
    {
     "templateId": "surface_box_materials",
     "name": "Surface-Mount Device Box",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 950,
     "totalCents": 950,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "Surface Raceway Install Labor"
    },
    {
     "templateId": "surface_raceway_materials",
     "name": "Surface Raceway and Conductors",
     "quantity": 6.6,
     "unit": "lf",
     "unitPriceCents": 275,
     "totalCents": 1815,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "Surface Raceway Install Labor"
    },
    {
     "templateId": "surface_raceway_install_labor",
     "name": "Surface Raceway Install Labor",
     "quantity": 6,
     "unit": "lf",
     "unitPriceCents": 1425,
     "totalCents": 8550,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 1.13,
     "hoursSpread": 0.39,
     "hoursSource": "catalog"
    }
   ],
   "totalCents": 62065,
   "permits": {
    "note": "Permits and inspections: Electrical Permit and Inspection",
    "lines": [
     {
      "templateId": "electrical_permit_inspection",
      "name": "Electrical Permit and Inspection",
      "quantity": 1,
      "unit": "ea",
      "unitPriceCents": 22500,
      "totalCents": 22500,
      "flagged": false,
      "trade": "Electrical",
      "costType": "Permits & fees"
     }
    ],
    "totalCents": 22500,
    "lowCents": 8750,
    "highCents": 50000
   }
  },
  {
   "key": "ejector",
   "name": "Sewage ejector pump circuit",
   "description": "Add a dedicated 20 amp circuit and GFCI outlet for a basement sewage ejector pump with a separate outlet for its alarm, about 50 feet from the panel in an unfinished basement. The panel is in an unfinished basement with space for a new breaker, and the house has capacity for the added load. Include the permit and inspection.",
   "assemblies": [
    {
     "assembly_id": "outlet_add",
     "parameters": {
      "outlet_count": 1,
      "outlet_type": "gfci",
      "source": "new_circuit",
      "wire_run_ft": 50,
      "wall_condition": "drop_from_unfinished",
      "panel_space": "available",
      "permit_required": true,
      "substrate": "drywall",
      "paint_blend": "spot",
      "troubleshoot_hours": 0,
      "wiring_method": "concealed",
      "raceway_ft": 0,
      "underground_ft": 0
     }
    },
    {
     "assembly_id": "outlet_add",
     "parameters": {
      "outlet_count": 1,
      "outlet_type": "standard",
      "source": "existing_circuit",
      "wall_condition": "drop_from_unfinished",
      "wire_run_ft": 10,
      "substrate": "drywall",
      "paint_blend": "spot",
      "permit_required": true,
      "troubleshoot_hours": 0,
      "wiring_method": "concealed",
      "panel_space": "available",
      "raceway_ft": 0,
      "underground_ft": 0
     }
    }
   ],
   "lines": [
    {
     "templateId": "electrical_box_device_materials",
     "name": "Electrical Box and Device Materials",
     "quantity": 2,
     "unit": "ea",
     "unitPriceCents": 850,
     "totalCents": 1700,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "Add Outlet or Switch Box (rough-in)"
    },
    {
     "templateId": "outlet_unit_allowance",
     "name": "Outlet Unit Allowance",
     "quantity": 2,
     "unit": "ea",
     "unitPriceCents": 1332,
     "totalCents": 2663,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances"
    },
    {
     "templateId": "romex_wire_materials",
     "name": "Romex Wire Materials",
     "quantity": 69,
     "unit": "lf",
     "unitPriceCents": 80,
     "totalCents": 5520,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "Add Outlet or Switch Box (rough-in)"
    },
    {
     "templateId": "circuit_install_labor",
     "name": "New Branch Circuit (labor)",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 42500,
     "totalCents": 42500,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 3,
     "hoursSpread": 1.05,
     "hoursSource": "catalog"
    },
    {
     "templateId": "dedicated_circuit_breaker_allowance",
     "name": "Dedicated Circuit Breaker Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 1250,
     "totalCents": 1250,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances",
     "installedBy": "New Branch Circuit (labor)"
    },
    {
     "templateId": "outlet_rough_add_labor",
     "name": "Add Outlet or Switch Box (rough-in)",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 18500,
     "totalCents": 18500,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 1.25,
     "hoursSpread": 0.44,
     "hoursSource": "catalog"
    }
   ],
   "totalCents": 72133,
   "permits": {
    "note": "Permits and inspections: Electrical Permit and Inspection",
    "lines": [
     {
      "templateId": "electrical_permit_inspection",
      "name": "Electrical Permit and Inspection",
      "quantity": 1,
      "unit": "ea",
      "unitPriceCents": 22500,
      "totalCents": 22500,
      "flagged": false,
      "trade": "Electrical",
      "costType": "Permits & fees"
     }
    ],
    "totalCents": 22500,
    "lowCents": 8750,
    "highCents": 50000
   }
  },
  {
   "key": "office",
   "name": "Dedicated home office circuit",
   "description": "Add a dedicated 20 amp circuit with two outlets in a home office for computers and a server rack, about 50 feet of 12 gauge from the panel through the basement, AFCI breaker. No wall repair beyond the box cutouts. The panel is in an unfinished basement with space for a new breaker, and the house has capacity for the added load. Include the permit and inspection.",
   "assemblies": [
    {
     "assembly_id": "outlet_add",
     "parameters": {
      "outlet_count": 2,
      "outlet_type": "standard",
      "source": "new_circuit",
      "wire_run_ft": 50,
      "wall_condition": "drop_from_unfinished",
      "paint_blend": "none",
      "permit_required": true,
      "panel_space": "available",
      "substrate": "drywall",
      "troubleshoot_hours": 0,
      "wiring_method": "concealed",
      "raceway_ft": 0,
      "underground_ft": 0
     }
    }
   ],
   "lines": [
    {
     "templateId": "outlet_rough_add_labor",
     "name": "Add Outlet or Switch Box (rough-in)",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 18500,
     "totalCents": 18500,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 1.25,
     "hoursSpread": 0.44,
     "hoursSource": "catalog"
    },
    {
     "templateId": "electrical_box_device_materials",
     "name": "Electrical Box and Device Materials",
     "quantity": 2,
     "unit": "ea",
     "unitPriceCents": 850,
     "totalCents": 1700,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "Add Outlet or Switch Box (rough-in)"
    },
    {
     "templateId": "outlet_unit_allowance",
     "name": "Outlet Unit Allowance",
     "quantity": 2,
     "unit": "ea",
     "unitPriceCents": 263,
     "totalCents": 526,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances"
    },
    {
     "templateId": "romex_wire_materials",
     "name": "Romex Wire Materials",
     "quantity": 64.4,
     "unit": "lf",
     "unitPriceCents": 80,
     "totalCents": 5152,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "Add Outlet or Switch Box (rough-in)"
    },
    {
     "templateId": "circuit_install_labor",
     "name": "New Branch Circuit (labor)",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 42500,
     "totalCents": 42500,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 3,
     "hoursSpread": 1.05,
     "hoursSource": "catalog"
    },
    {
     "templateId": "dedicated_circuit_breaker_allowance",
     "name": "Dedicated Circuit Breaker Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 1250,
     "totalCents": 1250,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances",
     "installedBy": "New Branch Circuit (labor)"
    }
   ],
   "totalCents": 69628,
   "permits": {
    "note": "Permits and inspections: Electrical Permit and Inspection",
    "lines": [
     {
      "templateId": "electrical_permit_inspection",
      "name": "Electrical Permit and Inspection",
      "quantity": 1,
      "unit": "ea",
      "unitPriceCents": 22500,
      "totalCents": 22500,
      "flagged": false,
      "trade": "Electrical",
      "costType": "Permits & fees"
     }
    ],
    "totalCents": 22500,
    "lowCents": 8750,
    "highCents": 50000
   }
  },
  {
   "key": "treadmill",
   "name": "Dedicated treadmill outlet",
   "description": "Add a dedicated 20 amp outlet for a treadmill in a finished basement rec room, about 50 feet from the panel through the unfinished side of the basement, dual-function breaker. No wall repair beyond the box cutout. The panel is in an unfinished basement with space for a new breaker, and the house has capacity for the added load. Include the permit and inspection.",
   "assemblies": [
    {
     "assembly_id": "dedicated_circuit_install",
     "parameters": {
      "circuit_count": 1,
      "circuit_type": "120v_20",
      "endpoint": "receptacle",
      "run_ft": 50,
      "route": "accessible",
      "afci_required": true,
      "permit_required": true,
      "panel_space": "available",
      "underground_ft": 0
     }
    }
   ],
   "lines": [
    {
     "templateId": "circuit_install_labor",
     "name": "New Branch Circuit (labor)",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 42500,
     "totalCents": 42500,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 3,
     "hoursSpread": 1.05,
     "hoursSource": "catalog"
    },
    {
     "templateId": "romex_wire_materials",
     "name": "Romex Wire Materials",
     "quantity": 57.5,
     "unit": "lf",
     "unitPriceCents": 80,
     "totalCents": 4600,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "New Branch Circuit (labor)"
    },
    {
     "templateId": "electrical_box_device_materials",
     "name": "Electrical Box and Device Materials",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 850,
     "totalCents": 850,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials"
    },
    {
     "templateId": "outlet_unit_allowance",
     "name": "Outlet Unit Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 800,
     "totalCents": 800,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances"
    },
    {
     "templateId": "dedicated_circuit_breaker_allowance",
     "name": "Dedicated Circuit Breaker Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 6250,
     "totalCents": 6250,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances",
     "installedBy": "New Branch Circuit (labor)"
    }
   ],
   "totalCents": 55000,
   "permits": {
    "note": "Permits and inspections: Electrical Permit and Inspection",
    "lines": [
     {
      "templateId": "electrical_permit_inspection",
      "name": "Electrical Permit and Inspection",
      "quantity": 1,
      "unit": "ea",
      "unitPriceCents": 22500,
      "totalCents": 22500,
      "flagged": false,
      "trade": "Electrical",
      "costType": "Permits & fees"
     }
    ],
    "totalCents": 22500,
    "lowCents": 8750,
    "highCents": 50000
   }
  },
  {
   "key": "gas-stove",
   "name": "Gas stove outlet",
   "description": "Add a 120V outlet behind a new gas range for its igniter and controls, tied into a kitchen circuit about 25 feet away through the basement, GFCI protected. Include the permit and inspection.",
   "assemblies": [
    {
     "assembly_id": "outlet_add",
     "parameters": {
      "outlet_count": 1,
      "outlet_type": "gfci",
      "source": "existing_circuit",
      "wire_run_ft": 25,
      "wall_condition": "drop_from_unfinished",
      "permit_required": true,
      "substrate": "drywall",
      "paint_blend": "spot",
      "troubleshoot_hours": 0,
      "wiring_method": "concealed",
      "panel_space": "available",
      "raceway_ft": 0,
      "underground_ft": 0
     }
    }
   ],
   "lines": [
    {
     "templateId": "outlet_rough_add_labor",
     "name": "Add Outlet or Switch Box (rough-in)",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 18500,
     "totalCents": 18500,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 1.25,
     "hoursSpread": 0.44,
     "hoursSource": "catalog"
    },
    {
     "templateId": "electrical_box_device_materials",
     "name": "Electrical Box and Device Materials",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 850,
     "totalCents": 850,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "Add Outlet or Switch Box (rough-in)"
    },
    {
     "templateId": "outlet_unit_allowance",
     "name": "Outlet Unit Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 2400,
     "totalCents": 2400,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances"
    },
    {
     "templateId": "romex_wire_materials",
     "name": "Romex Wire Materials",
     "quantity": 28.75,
     "unit": "lf",
     "unitPriceCents": 80,
     "totalCents": 2300,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "Add Outlet or Switch Box (rough-in)"
    }
   ],
   "totalCents": 24050,
   "permits": null
  },
  {
   "key": "gas-dryer",
   "name": "Gas dryer outlet",
   "description": "Add a 120V outlet behind a gas dryer in the laundry room, tied into the laundry circuit about 25 feet away through the basement, dual-function protection. Include the permit and inspection.",
   "assemblies": [
    {
     "assembly_id": "outlet_add",
     "parameters": {
      "outlet_count": 1,
      "outlet_type": "gfci",
      "source": "existing_circuit",
      "wire_run_ft": 25,
      "wall_condition": "drop_from_unfinished",
      "substrate": "drywall",
      "permit_required": true,
      "paint_blend": "spot",
      "troubleshoot_hours": 0,
      "wiring_method": "concealed",
      "panel_space": "available",
      "raceway_ft": 0,
      "underground_ft": 0
     }
    }
   ],
   "lines": [
    {
     "templateId": "outlet_rough_add_labor",
     "name": "Add Outlet or Switch Box (rough-in)",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 18500,
     "totalCents": 18500,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 1.25,
     "hoursSpread": 0.44,
     "hoursSource": "catalog"
    },
    {
     "templateId": "electrical_box_device_materials",
     "name": "Electrical Box and Device Materials",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 850,
     "totalCents": 850,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "Add Outlet or Switch Box (rough-in)"
    },
    {
     "templateId": "outlet_unit_allowance",
     "name": "Outlet Unit Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 2400,
     "totalCents": 2400,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances"
    },
    {
     "templateId": "romex_wire_materials",
     "name": "Romex Wire Materials",
     "quantity": 28.75,
     "unit": "lf",
     "unitPriceCents": 80,
     "totalCents": 2300,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "Add Outlet or Switch Box (rough-in)"
    }
   ],
   "totalCents": 24050,
   "permits": null
  },
  {
   "key": "furnace",
   "name": "Furnace circuit",
   "description": "Run a new dedicated 15 amp circuit to a gas furnace in the basement with a service switch at the furnace, about 50 feet of wire from the panel. The panel is in an unfinished basement with space for a new breaker, and the house has capacity for the added load. Include the permit and inspection.",
   "assemblies": [
    {
     "assembly_id": "dedicated_circuit_install",
     "parameters": {
      "circuit_count": 1,
      "circuit_type": "120v_15",
      "endpoint": "hardwired_appliance",
      "run_ft": 50,
      "route": "accessible",
      "afci_required": false,
      "permit_required": true,
      "panel_space": "available",
      "underground_ft": 0
     }
    }
   ],
   "lines": [
    {
     "templateId": "circuit_install_labor",
     "name": "New Branch Circuit (labor)",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 42500,
     "totalCents": 42500,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 3,
     "hoursSpread": 1.05,
     "hoursSource": "catalog"
    },
    {
     "templateId": "dedicated_circuit_breaker_allowance",
     "name": "Dedicated Circuit Breaker Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 1250,
     "totalCents": 1250,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances",
     "installedBy": "New Branch Circuit (labor)"
    },
    {
     "templateId": "romex_wire_materials",
     "name": "Romex Wire Materials",
     "quantity": 57.5,
     "unit": "lf",
     "unitPriceCents": 80,
     "totalCents": 4600,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "New Branch Circuit (labor)"
    },
    {
     "templateId": "electrical_box_device_materials",
     "name": "Electrical Box and Device Materials",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 850,
     "totalCents": 850,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials"
    }
   ],
   "totalCents": 49200,
   "permits": {
    "note": "Permits and inspections: Electrical Permit and Inspection",
    "lines": [
     {
      "templateId": "electrical_permit_inspection",
      "name": "Electrical Permit and Inspection",
      "quantity": 1,
      "unit": "ea",
      "unitPriceCents": 22500,
      "totalCents": 22500,
      "flagged": false,
      "trade": "Electrical",
      "costType": "Permits & fees"
     }
    ],
    "totalCents": 22500,
    "lowCents": 8750,
    "highCents": 50000
   }
  },
  {
   "key": "central-vac",
   "name": "Central vacuum circuit",
   "description": "Add a dedicated 20 amp GFCI outlet for a central vacuum power unit in the attached garage on a new circuit: 50 feet of 12/2 NM cable from the panel along the unfinished basement joists, then 8 feet of EMT conduit down the garage wall to a surface box. The panel has space for a new breaker and the house has capacity for the load. Include the permit and inspection.",
   "assemblies": [
    {
     "assembly_id": "outlet_add",
     "parameters": {
      "outlet_count": 1,
      "outlet_type": "gfci",
      "source": "new_circuit",
      "wire_run_ft": 58,
      "wiring_method": "surface_raceway",
      "panel_space": "available",
      "permit_required": true,
      "substrate": "drywall",
      "wall_condition": "fishable",
      "paint_blend": "spot",
      "troubleshoot_hours": 0,
      "raceway_ft": 8,
      "underground_ft": 0
     }
    }
   ],
   "lines": [
    {
     "templateId": "outlet_unit_allowance",
     "name": "Outlet Unit Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 2400,
     "totalCents": 2400,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances"
    },
    {
     "templateId": "romex_wire_materials",
     "name": "Romex Wire Materials",
     "quantity": 57.5,
     "unit": "lf",
     "unitPriceCents": 80,
     "totalCents": 4600,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials"
    },
    {
     "templateId": "circuit_install_labor",
     "name": "New Branch Circuit (labor)",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 42500,
     "totalCents": 42500,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 3,
     "hoursSpread": 1.05,
     "hoursSource": "catalog"
    },
    {
     "templateId": "dedicated_circuit_breaker_allowance",
     "name": "Dedicated Circuit Breaker Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 1250,
     "totalCents": 1250,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances",
     "installedBy": "New Branch Circuit (labor)"
    },
    {
     "templateId": "surface_box_materials",
     "name": "Surface-Mount Device Box",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 950,
     "totalCents": 950,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "Surface Raceway Install Labor"
    },
    {
     "templateId": "surface_raceway_materials",
     "name": "Surface Raceway and Conductors",
     "quantity": 8.8,
     "unit": "lf",
     "unitPriceCents": 275,
     "totalCents": 2420,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "Surface Raceway Install Labor"
    },
    {
     "templateId": "surface_raceway_install_labor",
     "name": "Surface Raceway Install Labor",
     "quantity": 8,
     "unit": "lf",
     "unitPriceCents": 950,
     "totalCents": 7600,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 1,
     "hoursSpread": 0.35,
     "hoursSource": "catalog"
    }
   ],
   "totalCents": 61720,
   "permits": {
    "note": "Permits and inspections: Electrical Permit and Inspection",
    "lines": [
     {
      "templateId": "electrical_permit_inspection",
      "name": "Electrical Permit and Inspection",
      "quantity": 1,
      "unit": "ea",
      "unitPriceCents": 22500,
      "totalCents": 22500,
      "flagged": false,
      "trade": "Electrical",
      "costType": "Permits & fees"
     }
    ],
    "totalCents": 22500,
    "lowCents": 8750,
    "highCents": 50000
   }
  },
  {
   "key": "window-ac-120",
   "name": "120V window AC outlet",
   "description": "Add a dedicated 20 amp outlet under a bedroom window for a window air conditioner, about 50 feet from the panel through the basement, AFCI breaker. No wall repair beyond the box cutout. The panel is in an unfinished basement with space for a new breaker, and the house has capacity for the added load. Include the permit and inspection.",
   "assemblies": [
    {
     "assembly_id": "dedicated_circuit_install",
     "parameters": {
      "circuit_count": 1,
      "circuit_type": "120v_20",
      "endpoint": "receptacle",
      "run_ft": 50,
      "route": "accessible",
      "afci_required": true,
      "permit_required": true,
      "panel_space": "available",
      "underground_ft": 0
     }
    }
   ],
   "lines": [
    {
     "templateId": "circuit_install_labor",
     "name": "New Branch Circuit (labor)",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 42500,
     "totalCents": 42500,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 3,
     "hoursSpread": 1.05,
     "hoursSource": "catalog"
    },
    {
     "templateId": "romex_wire_materials",
     "name": "Romex Wire Materials",
     "quantity": 57.5,
     "unit": "lf",
     "unitPriceCents": 80,
     "totalCents": 4600,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "New Branch Circuit (labor)"
    },
    {
     "templateId": "electrical_box_device_materials",
     "name": "Electrical Box and Device Materials",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 850,
     "totalCents": 850,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials"
    },
    {
     "templateId": "outlet_unit_allowance",
     "name": "Outlet Unit Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 800,
     "totalCents": 800,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances"
    },
    {
     "templateId": "dedicated_circuit_breaker_allowance",
     "name": "Dedicated Circuit Breaker Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 6250,
     "totalCents": 6250,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances",
     "installedBy": "New Branch Circuit (labor)"
    }
   ],
   "totalCents": 55000,
   "permits": {
    "note": "Permits and inspections: Electrical Permit and Inspection",
    "lines": [
     {
      "templateId": "electrical_permit_inspection",
      "name": "Electrical Permit and Inspection",
      "quantity": 1,
      "unit": "ea",
      "unitPriceCents": 22500,
      "totalCents": 22500,
      "flagged": false,
      "trade": "Electrical",
      "costType": "Permits & fees"
     }
    ],
    "totalCents": 22500,
    "lowCents": 8750,
    "highCents": 50000
   }
  },
  {
   "key": "window-ac-240",
   "name": "240V window or wall AC outlet",
   "description": "Add a 240V 20 amp NEMA 6-20 outlet under a living room window for a large window air conditioner, about 50 feet of 12/2 from the panel through the basement, new double-pole breaker. The panel is in an unfinished basement with space for a new breaker, and the house has capacity for the added load. Include the permit and inspection.",
   "assemblies": [
    {
     "assembly_id": "dedicated_circuit_install",
     "parameters": {
      "circuit_count": 1,
      "circuit_type": "240v_20",
      "endpoint": "receptacle",
      "run_ft": 50,
      "route": "accessible",
      "panel_space": "available",
      "permit_required": true,
      "afci_required": false,
      "underground_ft": 0
     }
    }
   ],
   "lines": [
    {
     "templateId": "circuit_install_labor",
     "name": "New Branch Circuit (labor)",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 55250,
     "totalCents": 55250,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 3.9,
     "hoursSpread": 1.37,
     "hoursSource": "catalog"
    },
    {
     "templateId": "dedicated_circuit_breaker_allowance",
     "name": "Dedicated Circuit Breaker Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 3500,
     "totalCents": 3500,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances",
     "installedBy": "New Branch Circuit (labor)"
    },
    {
     "templateId": "romex_wire_materials",
     "name": "Romex Wire Materials",
     "quantity": 57.5,
     "unit": "lf",
     "unitPriceCents": 80,
     "totalCents": 4600,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "New Branch Circuit (labor)"
    },
    {
     "templateId": "electrical_box_device_materials",
     "name": "Electrical Box and Device Materials",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 850,
     "totalCents": 850,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials"
    },
    {
     "templateId": "outlet_unit_allowance",
     "name": "Outlet Unit Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 800,
     "totalCents": 800,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances"
    }
   ],
   "totalCents": 65000,
   "permits": {
    "note": "Permits and inspections: Electrical Permit and Inspection",
    "lines": [
     {
      "templateId": "electrical_permit_inspection",
      "name": "Electrical Permit and Inspection",
      "quantity": 1,
      "unit": "ea",
      "unitPriceCents": 22500,
      "totalCents": 22500,
      "flagged": false,
      "trade": "Electrical",
      "costType": "Permits & fees"
     }
    ],
    "totalCents": 22500,
    "lowCents": 8750,
    "highCents": 50000
   }
  },
  {
   "key": "ev-14-50",
   "name": "EV charger outlet, NEMA 14-50",
   "description": "Add a NEMA 14-50 outlet in an attached garage for a plug-in electric vehicle charger, on a new 50 amp circuit with GFCI breaker, about 50 feet of 6/3 from the panel through the basement and conduit in the garage. The panel is in an unfinished basement with space for a new breaker, and the house has capacity for the added load. Include the permit and inspection.",
   "assemblies": [
    {
     "assembly_id": "dedicated_circuit_install",
     "parameters": {
      "circuit_count": 1,
      "circuit_type": "240v_50",
      "endpoint": "ev_charger",
      "run_ft": 50,
      "route": "accessible",
      "permit_required": true,
      "panel_space": "available",
      "afci_required": false
     }
    }
   ],
   "lines": [
    {
     "templateId": "circuit_install_labor",
     "name": "New Branch Circuit (labor)",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 63750,
     "totalCents": 63750,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 4.5,
     "hoursSpread": 1.58,
     "hoursSource": "catalog"
    },
    {
     "templateId": "dedicated_circuit_breaker_allowance",
     "name": "Dedicated Circuit Breaker Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 6250,
     "totalCents": 6250,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances",
     "installedBy": "New Branch Circuit (labor)"
    },
    {
     "templateId": "nm_cable_6_3_materials",
     "name": "NM Cable 6/3 (40 to 60 A, 240 V)",
     "quantity": 57.5,
     "unit": "lf",
     "unitPriceCents": 425,
     "totalCents": 24438,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials"
    },
    {
     "templateId": "receptacle_240v_allowance",
     "name": "240 V Receptacle Allowance (30 or 50 A)",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 9500,
     "totalCents": 9500,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances",
     "installedBy": "240 V Receptacle Device Install (new circuit)"
    },
    {
     "templateId": "receptacle_240v_device_install_labor",
     "name": "240 V Receptacle Device Install (new circuit)",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 8500,
     "totalCents": 8500,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 0.5,
     "hoursSpread": 0.18,
     "hoursSource": "catalog"
    }
   ],
   "totalCents": 112438,
   "permits": {
    "note": "Permits and inspections: Electrical Permit and Inspection",
    "lines": [
     {
      "templateId": "electrical_permit_inspection",
      "name": "Electrical Permit and Inspection",
      "quantity": 1,
      "unit": "ea",
      "unitPriceCents": 22500,
      "totalCents": 22500,
      "flagged": false,
      "trade": "Electrical",
      "costType": "Permits & fees"
     }
    ],
    "totalCents": 22500,
    "lowCents": 8750,
    "highCents": 50000
   }
  },
  {
   "key": "ev-hardwired",
   "name": "Hardwired Level 2 EV charger",
   "description": "Install a customer-supplied wall-mounted Level 2 EV charger in an attached garage, hardwired on a new 60 amp circuit for 48 amp charging, about 50 feet of 6 gauge THWN-2 in conduit from the panel. Charger not included. The panel is in an unfinished basement with space for a new breaker, and the house has capacity for the added load. Include the permit and inspection.",
   "assemblies": [
    {
     "assembly_id": "ev_charger_install",
     "parameters": {
      "charger_amperage": 48,
      "wire_run_lf": 50,
      "mounting_location": "garage_wall",
      "requires_panel_capacity": false,
      "permit_required": true,
      "charger_count": 1,
      "assembly_difficulty": 1,
      "charger_tier": "mid_smart_app"
     }
    }
   ],
   "lines": [
    {
     "templateId": "ev_charger_circuit_labor",
     "name": "EV Charger Circuit Install",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 72000,
     "totalCents": 72000,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 6,
     "hoursSpread": 2.1,
     "hoursSource": "catalog"
    },
    {
     "templateId": "nm_cable_6_3_materials",
     "name": "NM Cable 6/3 (40 to 60 A, 240 V)",
     "quantity": 57.5,
     "unit": "lf",
     "unitPriceCents": 425,
     "totalCents": 24438,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "EV Charger Circuit Install"
    },
    {
     "templateId": "dedicated_circuit_breaker_allowance",
     "name": "Dedicated Circuit Breaker Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 6250,
     "totalCents": 6250,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances",
     "installedBy": "EV Charger Circuit Install"
    }
   ],
   "totalCents": 102688,
   "permits": {
    "note": "Permits and inspections: Electrical Permit and Inspection",
    "lines": [
     {
      "templateId": "electrical_permit_inspection",
      "name": "Electrical Permit and Inspection",
      "quantity": 1,
      "unit": "ea",
      "unitPriceCents": 22500,
      "totalCents": 22500,
      "flagged": false,
      "trade": "Electrical",
      "costType": "Permits & fees"
     }
    ],
    "totalCents": 22500,
    "lowCents": 8750,
    "highCents": 50000
   }
  },
  {
   "key": "ev-6-50",
   "name": "EV charger outlet, NEMA 6-50",
   "description": "Add a NEMA 6-50 outlet in an attached garage for an EV charger that needs no neutral, on a new 50 amp GFCI circuit, about 50 feet of 6/2 from the panel through the basement and conduit in the garage. The panel is in an unfinished basement with space for a new breaker, and the house has capacity for the added load. Include the permit and inspection.",
   "assemblies": [
    {
     "assembly_id": "dedicated_circuit_install",
     "parameters": {
      "circuit_count": 1,
      "circuit_type": "240v_50",
      "endpoint": "ev_charger",
      "run_ft": 50,
      "route": "accessible",
      "permit_required": true,
      "panel_space": "available",
      "afci_required": false
     }
    }
   ],
   "lines": [
    {
     "templateId": "circuit_install_labor",
     "name": "New Branch Circuit (labor)",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 63750,
     "totalCents": 63750,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 4.5,
     "hoursSpread": 1.58,
     "hoursSource": "catalog"
    },
    {
     "templateId": "dedicated_circuit_breaker_allowance",
     "name": "Dedicated Circuit Breaker Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 6250,
     "totalCents": 6250,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances",
     "installedBy": "New Branch Circuit (labor)"
    },
    {
     "templateId": "nm_cable_6_3_materials",
     "name": "NM Cable 6/3 (40 to 60 A, 240 V)",
     "quantity": 57.5,
     "unit": "lf",
     "unitPriceCents": 425,
     "totalCents": 24438,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials"
    },
    {
     "templateId": "receptacle_240v_allowance",
     "name": "240 V Receptacle Allowance (30 or 50 A)",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 9500,
     "totalCents": 9500,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances",
     "installedBy": "240 V Receptacle Device Install (new circuit)"
    },
    {
     "templateId": "receptacle_240v_device_install_labor",
     "name": "240 V Receptacle Device Install (new circuit)",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 8500,
     "totalCents": 8500,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 0.5,
     "hoursSpread": 0.18,
     "hoursSource": "catalog"
    }
   ],
   "totalCents": 112438,
   "permits": {
    "note": "Permits and inspections: Electrical Permit and Inspection",
    "lines": [
     {
      "templateId": "electrical_permit_inspection",
      "name": "Electrical Permit and Inspection",
      "quantity": 1,
      "unit": "ea",
      "unitPriceCents": 22500,
      "totalCents": 22500,
      "flagged": false,
      "trade": "Electrical",
      "costType": "Permits & fees"
     }
    ],
    "totalCents": 22500,
    "lowCents": 8750,
    "highCents": 50000
   }
  },
  {
   "key": "hot-tub-120",
   "name": "120V plug-in hot tub outlet",
   "description": "Add a dedicated 20 amp GFCI outlet for a 120V plug-in hot tub on a back patio, on a new circuit about 50 feet from the panel through the basement and out the rim joist, with an in-use cover at the code distance from the tub. The panel is in an unfinished basement with space for a new breaker, and the house has capacity for the added load. Include the permit and inspection.",
   "assemblies": [
    {
     "assembly_id": "dedicated_circuit_install",
     "parameters": {
      "circuit_count": 1,
      "circuit_type": "120v_20",
      "endpoint": "hot_tub_disconnect",
      "run_ft": 50,
      "route": "accessible",
      "afci_required": false,
      "permit_required": true,
      "panel_space": "available",
      "underground_ft": 0
     }
    }
   ],
   "lines": [
    {
     "templateId": "circuit_install_labor",
     "name": "New Branch Circuit (labor)",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 42500,
     "totalCents": 42500,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 3,
     "hoursSpread": 1.05,
     "hoursSource": "catalog"
    },
    {
     "templateId": "dedicated_circuit_breaker_allowance",
     "name": "Dedicated Circuit Breaker Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 1250,
     "totalCents": 1250,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances",
     "installedBy": "New Branch Circuit (labor)"
    },
    {
     "templateId": "romex_wire_materials",
     "name": "Romex Wire Materials",
     "quantity": 57.5,
     "unit": "lf",
     "unitPriceCents": 80,
     "totalCents": 4600,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "New Branch Circuit (labor)"
    }
   ],
   "totalCents": 48350,
   "permits": {
    "note": "Permits and inspections: Electrical Permit and Inspection",
    "lines": [
     {
      "templateId": "electrical_permit_inspection",
      "name": "Electrical Permit and Inspection",
      "quantity": 1,
      "unit": "ea",
      "unitPriceCents": 22500,
      "totalCents": 22500,
      "flagged": false,
      "trade": "Electrical",
      "costType": "Permits & fees"
     }
    ],
    "totalCents": 22500,
    "lowCents": 8750,
    "highCents": 50000
   }
  },
  {
   "key": "hot-tub-240",
   "name": "240V hot tub circuit",
   "description": "Wire a 240V hot tub on a back patio: a new 50 amp circuit from the panel, about 30 feet inside and 20 feet underground in conduit to a GFCI spa disconnect at least 5 feet from the tub, then to the tub, with equipotential bonding. The panel is in an unfinished basement with space for a new breaker, and the house has capacity for the added load. Include the permit and inspection.",
   "assemblies": [
    {
     "assembly_id": "dedicated_circuit_install",
     "parameters": {
      "circuit_count": 1,
      "circuit_type": "240v_50",
      "endpoint": "hot_tub_disconnect",
      "run_ft": 50,
      "route": "accessible",
      "permit_required": true,
      "panel_space": "available",
      "afci_required": false,
      "underground_ft": 20
     }
    }
   ],
   "lines": [
    {
     "templateId": "circuit_install_labor",
     "name": "New Branch Circuit (labor)",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 63750,
     "totalCents": 63750,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 4.5,
     "hoursSpread": 1.58,
     "hoursSource": "catalog"
    },
    {
     "templateId": "dedicated_circuit_breaker_allowance",
     "name": "Dedicated Circuit Breaker Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 6250,
     "totalCents": 6250,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances",
     "installedBy": "New Branch Circuit (labor)"
    },
    {
     "templateId": "nm_cable_6_3_materials",
     "name": "NM Cable 6/3 (40 to 60 A, 240 V)",
     "quantity": 57.5,
     "unit": "lf",
     "unitPriceCents": 425,
     "totalCents": 24438,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials"
    },
    {
     "templateId": "trenching_labor",
     "name": "Trenching Labor",
     "quantity": 20,
     "unit": "lf",
     "unitPriceCents": 650,
     "totalCents": 13000,
     "flagged": false,
     "trade": "Sitework",
     "costType": "Labor",
     "hoursTypical": 0.53,
     "hoursSpread": 0.19,
     "hoursSource": "catalog"
    },
    {
     "templateId": "underground_conduit_materials",
     "name": "Underground Electrical Conduit (per lf)",
     "quantity": 21,
     "unit": "lf",
     "unitPriceCents": 275,
     "totalCents": 5775,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials"
    }
   ],
   "totalCents": 113213,
   "permits": {
    "note": "Permits and inspections: Electrical Permit and Inspection",
    "lines": [
     {
      "templateId": "electrical_permit_inspection",
      "name": "Electrical Permit and Inspection",
      "quantity": 1,
      "unit": "ea",
      "unitPriceCents": 22500,
      "totalCents": 22500,
      "flagged": false,
      "trade": "Electrical",
      "costType": "Permits & fees"
     }
    ],
    "totalCents": 22500,
    "lowCents": 8750,
    "highCents": 50000
   }
  },
  {
   "key": "range",
   "name": "Electric range or stove outlet",
   "description": "Add a NEMA 14-50 outlet for a new electric range where there was a gas range, on a new 50 amp circuit, about 50 feet of 6/3 from the panel through the basement. The gas line is capped by others. The panel is in an unfinished basement with space for a new breaker, and the house has capacity for the added load. Include the permit and inspection.",
   "assemblies": [
    {
     "assembly_id": "dedicated_circuit_install",
     "parameters": {
      "circuit_count": 1,
      "circuit_type": "240v_50",
      "endpoint": "dryer_range_receptacle",
      "run_ft": 50,
      "route": "accessible",
      "panel_space": "available",
      "permit_required": true,
      "afci_required": false,
      "underground_ft": 0
     }
    }
   ],
   "lines": [
    {
     "templateId": "circuit_install_labor",
     "name": "New Branch Circuit (labor)",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 63750,
     "totalCents": 63750,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 4.5,
     "hoursSpread": 1.58,
     "hoursSource": "catalog"
    },
    {
     "templateId": "dedicated_circuit_breaker_allowance",
     "name": "Dedicated Circuit Breaker Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 6250,
     "totalCents": 6250,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances",
     "installedBy": "New Branch Circuit (labor)"
    },
    {
     "templateId": "nm_cable_6_3_materials",
     "name": "NM Cable 6/3 (40 to 60 A, 240 V)",
     "quantity": 57.5,
     "unit": "lf",
     "unitPriceCents": 425,
     "totalCents": 24438,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials"
    },
    {
     "templateId": "receptacle_240v_allowance",
     "name": "240 V Receptacle Allowance (30 or 50 A)",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 2100,
     "totalCents": 2100,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances",
     "installedBy": "240 V Receptacle Device Install (new circuit)"
    },
    {
     "templateId": "receptacle_240v_device_install_labor",
     "name": "240 V Receptacle Device Install (new circuit)",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 8500,
     "totalCents": 8500,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 0.5,
     "hoursSpread": 0.18,
     "hoursSource": "catalog"
    }
   ],
   "totalCents": 105038,
   "permits": {
    "note": "Permits and inspections: Electrical Permit and Inspection",
    "lines": [
     {
      "templateId": "electrical_permit_inspection",
      "name": "Electrical Permit and Inspection",
      "quantity": 1,
      "unit": "ea",
      "unitPriceCents": 22500,
      "totalCents": 22500,
      "flagged": false,
      "trade": "Electrical",
      "costType": "Permits & fees"
     }
    ],
    "totalCents": 22500,
    "lowCents": 8750,
    "highCents": 50000
   }
  },
  {
   "key": "wall-oven",
   "name": "Wall oven circuit",
   "description": "Run a new 40 amp 240V circuit for a double electric wall oven in a kitchen cabinet, about 50 feet of 8/3 from the panel through the basement, hardwired to a junction box behind the oven. The panel is in an unfinished basement with space for a new breaker, and the house has capacity for the added load. Include the permit and inspection.",
   "assemblies": [
    {
     "assembly_id": "dedicated_circuit_install",
     "parameters": {
      "circuit_count": 1,
      "circuit_type": "240v_40",
      "endpoint": "hardwired_appliance",
      "run_ft": 50,
      "route": "accessible",
      "panel_space": "available",
      "permit_required": true,
      "afci_required": false,
      "underground_ft": 0
     }
    }
   ],
   "lines": [
    {
     "templateId": "circuit_install_labor",
     "name": "New Branch Circuit (labor)",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 63750,
     "totalCents": 63750,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 4.5,
     "hoursSpread": 1.58,
     "hoursSource": "catalog"
    },
    {
     "templateId": "dedicated_circuit_breaker_allowance",
     "name": "Dedicated Circuit Breaker Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 6250,
     "totalCents": 6250,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances",
     "installedBy": "New Branch Circuit (labor)"
    },
    {
     "templateId": "nm_cable_6_3_materials",
     "name": "NM Cable 6/3 (40 to 60 A, 240 V)",
     "quantity": 57.5,
     "unit": "lf",
     "unitPriceCents": 425,
     "totalCents": 24438,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "New Branch Circuit (labor)"
    },
    {
     "templateId": "electrical_box_device_materials",
     "name": "Electrical Box and Device Materials",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 850,
     "totalCents": 850,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials"
    }
   ],
   "totalCents": 95288,
   "permits": {
    "note": "Permits and inspections: Electrical Permit and Inspection",
    "lines": [
     {
      "templateId": "electrical_permit_inspection",
      "name": "Electrical Permit and Inspection",
      "quantity": 1,
      "unit": "ea",
      "unitPriceCents": 22500,
      "totalCents": 22500,
      "flagged": false,
      "trade": "Electrical",
      "costType": "Permits & fees"
     }
    ],
    "totalCents": 22500,
    "lowCents": 8750,
    "highCents": 50000
   }
  },
  {
   "key": "cooktop",
   "name": "Electric or induction cooktop circuit",
   "description": "Run a new 50 amp 240V circuit for an induction cooktop in the kitchen counter, about 50 feet of 6/3 from the panel through the basement, hardwired to a junction box in the base cabinet. Converting from gas, gas line capped by others. The panel is in an unfinished basement with space for a new breaker, and the house has capacity for the added load. Include the permit and inspection.",
   "assemblies": [
    {
     "assembly_id": "dedicated_circuit_install",
     "parameters": {
      "circuit_count": 1,
      "circuit_type": "240v_50",
      "endpoint": "hardwired_appliance",
      "run_ft": 50,
      "route": "accessible",
      "panel_space": "available",
      "permit_required": true,
      "afci_required": false,
      "underground_ft": 0
     }
    }
   ],
   "lines": [
    {
     "templateId": "circuit_install_labor",
     "name": "New Branch Circuit (labor)",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 63750,
     "totalCents": 63750,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 4.5,
     "hoursSpread": 1.58,
     "hoursSource": "catalog"
    },
    {
     "templateId": "dedicated_circuit_breaker_allowance",
     "name": "Dedicated Circuit Breaker Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 6250,
     "totalCents": 6250,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances",
     "installedBy": "New Branch Circuit (labor)"
    },
    {
     "templateId": "nm_cable_6_3_materials",
     "name": "NM Cable 6/3 (40 to 60 A, 240 V)",
     "quantity": 57.5,
     "unit": "lf",
     "unitPriceCents": 425,
     "totalCents": 24438,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "New Branch Circuit (labor)"
    },
    {
     "templateId": "electrical_box_device_materials",
     "name": "Electrical Box and Device Materials",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 850,
     "totalCents": 850,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials"
    }
   ],
   "totalCents": 95288,
   "permits": {
    "note": "Permits and inspections: Electrical Permit and Inspection",
    "lines": [
     {
      "templateId": "electrical_permit_inspection",
      "name": "Electrical Permit and Inspection",
      "quantity": 1,
      "unit": "ea",
      "unitPriceCents": 22500,
      "totalCents": 22500,
      "flagged": false,
      "trade": "Electrical",
      "costType": "Permits & fees"
     }
    ],
    "totalCents": 22500,
    "lowCents": 8750,
    "highCents": 50000
   }
  },
  {
   "key": "dryer",
   "name": "Electric dryer outlet",
   "description": "Add a NEMA 14-30 outlet for an electric dryer in the laundry room, on a new 30 amp circuit, about 50 feet of 10/3 from the panel through the basement. The panel is in an unfinished basement with space for a new breaker, and the house has capacity for the added load. Include the permit and inspection.",
   "assemblies": [
    {
     "assembly_id": "dedicated_circuit_install",
     "parameters": {
      "circuit_count": 1,
      "circuit_type": "240v_30",
      "endpoint": "dryer_range_receptacle",
      "run_ft": 50,
      "route": "accessible",
      "panel_space": "available",
      "permit_required": true,
      "afci_required": false,
      "underground_ft": 0
     }
    }
   ],
   "lines": [
    {
     "templateId": "circuit_install_labor",
     "name": "New Branch Circuit (labor)",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 55250,
     "totalCents": 55250,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 3.9,
     "hoursSpread": 1.37,
     "hoursSource": "catalog"
    },
    {
     "templateId": "dedicated_circuit_breaker_allowance",
     "name": "Dedicated Circuit Breaker Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 3500,
     "totalCents": 3500,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances",
     "installedBy": "New Branch Circuit (labor)"
    },
    {
     "templateId": "dryer_240v_wire_conduit_materials",
     "name": "Dryer 240V Wire & Conduit Materials",
     "quantity": 57.5,
     "unit": "lf",
     "unitPriceCents": 325,
     "totalCents": 18688,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials"
    },
    {
     "templateId": "receptacle_240v_allowance",
     "name": "240 V Receptacle Allowance (30 or 50 A)",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 2100,
     "totalCents": 2100,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances",
     "installedBy": "240 V Receptacle Device Install (new circuit)"
    },
    {
     "templateId": "receptacle_240v_device_install_labor",
     "name": "240 V Receptacle Device Install (new circuit)",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 8500,
     "totalCents": 8500,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 0.5,
     "hoursSpread": 0.18,
     "hoursSource": "catalog"
    }
   ],
   "totalCents": 88038,
   "permits": {
    "note": "Permits and inspections: Electrical Permit and Inspection",
    "lines": [
     {
      "templateId": "electrical_permit_inspection",
      "name": "Electrical Permit and Inspection",
      "quantity": 1,
      "unit": "ea",
      "unitPriceCents": 22500,
      "totalCents": 22500,
      "flagged": false,
      "trade": "Electrical",
      "costType": "Permits & fees"
     }
    ],
    "totalCents": 22500,
    "lowCents": 8750,
    "highCents": 50000
   }
  },
  {
   "key": "water-heater",
   "name": "Electric water heater circuit",
   "description": "Run a new 30 amp 240V circuit for a 50 gallon electric water heater in the basement, about 50 feet of 10/2 from the panel, with a disconnect at the heater. The panel is in an unfinished basement with space for a new breaker, and the house has capacity for the added load. Include the permit and inspection.",
   "assemblies": [
    {
     "assembly_id": "dedicated_circuit_install",
     "parameters": {
      "circuit_count": 1,
      "circuit_type": "240v_30",
      "endpoint": "hardwired_appliance",
      "run_ft": 50,
      "route": "accessible",
      "permit_required": true,
      "panel_space": "available",
      "afci_required": false,
      "underground_ft": 0
     }
    }
   ],
   "lines": [
    {
     "templateId": "circuit_install_labor",
     "name": "New Branch Circuit (labor)",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 55250,
     "totalCents": 55250,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 3.9,
     "hoursSpread": 1.37,
     "hoursSource": "catalog"
    },
    {
     "templateId": "dedicated_circuit_breaker_allowance",
     "name": "Dedicated Circuit Breaker Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 3500,
     "totalCents": 3500,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances",
     "installedBy": "New Branch Circuit (labor)"
    },
    {
     "templateId": "dryer_240v_wire_conduit_materials",
     "name": "Dryer 240V Wire & Conduit Materials",
     "quantity": 57.5,
     "unit": "lf",
     "unitPriceCents": 325,
     "totalCents": 18688,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "New Branch Circuit (labor)"
    },
    {
     "templateId": "electrical_box_device_materials",
     "name": "Electrical Box and Device Materials",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 850,
     "totalCents": 850,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials"
    }
   ],
   "totalCents": 78288,
   "permits": {
    "note": "Permits and inspections: Electrical Permit and Inspection",
    "lines": [
     {
      "templateId": "electrical_permit_inspection",
      "name": "Electrical Permit and Inspection",
      "quantity": 1,
      "unit": "ea",
      "unitPriceCents": 22500,
      "totalCents": 22500,
      "flagged": false,
      "trade": "Electrical",
      "costType": "Permits & fees"
     }
    ],
    "totalCents": 22500,
    "lowCents": 8750,
    "highCents": 50000
   }
  },
  {
   "key": "hpwh",
   "name": "Heat pump water heater circuit",
   "description": "Run a new 30 amp 240V circuit for a heat pump water heater in the basement, about 50 feet of 10/2 from the panel, hardwired at the unit. The panel is in an unfinished basement with space for a new breaker, and the house has capacity for the added load. Include the permit and inspection.",
   "assemblies": [
    {
     "assembly_id": "dedicated_circuit_install",
     "parameters": {
      "circuit_count": 1,
      "circuit_type": "240v_30",
      "endpoint": "hardwired_appliance",
      "run_ft": 50,
      "route": "accessible",
      "permit_required": true,
      "panel_space": "available",
      "afci_required": false,
      "underground_ft": 0
     }
    }
   ],
   "lines": [
    {
     "templateId": "circuit_install_labor",
     "name": "New Branch Circuit (labor)",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 55250,
     "totalCents": 55250,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 3.9,
     "hoursSpread": 1.37,
     "hoursSource": "catalog"
    },
    {
     "templateId": "dedicated_circuit_breaker_allowance",
     "name": "Dedicated Circuit Breaker Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 3500,
     "totalCents": 3500,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances",
     "installedBy": "New Branch Circuit (labor)"
    },
    {
     "templateId": "dryer_240v_wire_conduit_materials",
     "name": "Dryer 240V Wire & Conduit Materials",
     "quantity": 57.5,
     "unit": "lf",
     "unitPriceCents": 325,
     "totalCents": 18688,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "New Branch Circuit (labor)"
    },
    {
     "templateId": "electrical_box_device_materials",
     "name": "Electrical Box and Device Materials",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 850,
     "totalCents": 850,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials"
    }
   ],
   "totalCents": 78288,
   "permits": {
    "note": "Permits and inspections: Electrical Permit and Inspection",
    "lines": [
     {
      "templateId": "electrical_permit_inspection",
      "name": "Electrical Permit and Inspection",
      "quantity": 1,
      "unit": "ea",
      "unitPriceCents": 22500,
      "totalCents": 22500,
      "flagged": false,
      "trade": "Electrical",
      "costType": "Permits & fees"
     }
    ],
    "totalCents": 22500,
    "lowCents": 8750,
    "highCents": 50000
   }
  },
  {
   "key": "tankless",
   "name": "Electric tankless water heater circuits",
   "description": "Run circuits for a whole-house electric tankless water heater in the basement that needs three separate 40 amp 240V circuits, about 50 feet of 8/2 each from the panel. The house has a 200 amp service with room for the load. The panel is in an unfinished basement with space for a new breaker, and the house has capacity for the added load. Include the permit and inspection.",
   "assemblies": [
    {
     "assembly_id": "dedicated_circuit_install",
     "parameters": {
      "circuit_count": 3,
      "circuit_type": "240v_40",
      "run_ft": 50,
      "endpoint": "hardwired_appliance",
      "route": "accessible",
      "permit_required": true,
      "panel_space": "available",
      "afci_required": false,
      "underground_ft": 0
     }
    }
   ],
   "lines": [
    {
     "templateId": "circuit_install_labor",
     "name": "New Branch Circuit (labor)",
     "quantity": 3,
     "unit": "ea",
     "unitPriceCents": 63750,
     "totalCents": 191250,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 13.5,
     "hoursSpread": 4.72,
     "hoursSource": "catalog"
    },
    {
     "templateId": "dedicated_circuit_breaker_allowance",
     "name": "Dedicated Circuit Breaker Allowance",
     "quantity": 3,
     "unit": "ea",
     "unitPriceCents": 6250,
     "totalCents": 18750,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances",
     "installedBy": "New Branch Circuit (labor)"
    },
    {
     "templateId": "nm_cable_6_3_materials",
     "name": "NM Cable 6/3 (40 to 60 A, 240 V)",
     "quantity": 172.5,
     "unit": "lf",
     "unitPriceCents": 425,
     "totalCents": 73313,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "New Branch Circuit (labor)"
    },
    {
     "templateId": "electrical_box_device_materials",
     "name": "Electrical Box and Device Materials",
     "quantity": 3,
     "unit": "ea",
     "unitPriceCents": 850,
     "totalCents": 2550,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials"
    }
   ],
   "totalCents": 285863,
   "permits": {
    "note": "Permits and inspections: Electrical Permit and Inspection",
    "lines": [
     {
      "templateId": "electrical_permit_inspection",
      "name": "Electrical Permit and Inspection",
      "quantity": 1,
      "unit": "ea",
      "unitPriceCents": 22500,
      "totalCents": 22500,
      "flagged": false,
      "trade": "Electrical",
      "costType": "Permits & fees"
     }
    ],
    "totalCents": 22500,
    "lowCents": 8750,
    "highCents": 50000
   }
  },
  {
   "key": "welder",
   "name": "Welder outlet",
   "description": "Add a NEMA 6-50 outlet in the garage for a welder, on a new 50 amp GFCI circuit, about 50 feet of 6/2 from the panel through the basement and conduit in the garage. The panel is in an unfinished basement with space for a new breaker, and the house has capacity for the added load. Include the permit and inspection.",
   "assemblies": [
    {
     "assembly_id": "dedicated_circuit_install",
     "parameters": {
      "circuit_count": 1,
      "circuit_type": "240v_50",
      "endpoint": "receptacle",
      "run_ft": 50,
      "route": "accessible",
      "panel_space": "available",
      "permit_required": true,
      "afci_required": false,
      "underground_ft": 0
     }
    }
   ],
   "lines": [
    {
     "templateId": "circuit_install_labor",
     "name": "New Branch Circuit (labor)",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 63750,
     "totalCents": 63750,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 4.5,
     "hoursSpread": 1.58,
     "hoursSource": "catalog"
    },
    {
     "templateId": "dedicated_circuit_breaker_allowance",
     "name": "Dedicated Circuit Breaker Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 6250,
     "totalCents": 6250,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances",
     "installedBy": "New Branch Circuit (labor)"
    },
    {
     "templateId": "nm_cable_6_3_materials",
     "name": "NM Cable 6/3 (40 to 60 A, 240 V)",
     "quantity": 57.5,
     "unit": "lf",
     "unitPriceCents": 425,
     "totalCents": 24438,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "New Branch Circuit (labor)"
    },
    {
     "templateId": "electrical_box_device_materials",
     "name": "Electrical Box and Device Materials",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 850,
     "totalCents": 850,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials"
    },
    {
     "templateId": "outlet_unit_allowance",
     "name": "Outlet Unit Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 800,
     "totalCents": 800,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances"
    }
   ],
   "totalCents": 96088,
   "permits": {
    "note": "Permits and inspections: Electrical Permit and Inspection",
    "lines": [
     {
      "templateId": "electrical_permit_inspection",
      "name": "Electrical Permit and Inspection",
      "quantity": 1,
      "unit": "ea",
      "unitPriceCents": 22500,
      "totalCents": 22500,
      "flagged": false,
      "trade": "Electrical",
      "costType": "Permits & fees"
     }
    ],
    "totalCents": 22500,
    "lowCents": 8750,
    "highCents": 50000
   }
  },
  {
   "key": "compressor",
   "name": "240V air compressor or shop outlet",
   "description": "Add a 240V 30 amp NEMA 6-30 outlet in the garage for an air compressor, about 50 feet of 10/2 from the panel through the basement and conduit in the garage, GFCI breaker. The panel is in an unfinished basement with space for a new breaker, and the house has capacity for the added load. Include the permit and inspection.",
   "assemblies": [
    {
     "assembly_id": "dedicated_circuit_install",
     "parameters": {
      "circuit_count": 1,
      "circuit_type": "240v_30",
      "endpoint": "receptacle",
      "run_ft": 50,
      "route": "accessible",
      "permit_required": true,
      "panel_space": "available",
      "afci_required": false,
      "underground_ft": 0
     }
    }
   ],
   "lines": [
    {
     "templateId": "circuit_install_labor",
     "name": "New Branch Circuit (labor)",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 55250,
     "totalCents": 55250,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 3.9,
     "hoursSpread": 1.37,
     "hoursSource": "catalog"
    },
    {
     "templateId": "dedicated_circuit_breaker_allowance",
     "name": "Dedicated Circuit Breaker Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 3500,
     "totalCents": 3500,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances",
     "installedBy": "New Branch Circuit (labor)"
    },
    {
     "templateId": "dryer_240v_wire_conduit_materials",
     "name": "Dryer 240V Wire & Conduit Materials",
     "quantity": 57.5,
     "unit": "lf",
     "unitPriceCents": 325,
     "totalCents": 18688,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "New Branch Circuit (labor)"
    },
    {
     "templateId": "electrical_box_device_materials",
     "name": "Electrical Box and Device Materials",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 850,
     "totalCents": 850,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials"
    },
    {
     "templateId": "outlet_unit_allowance",
     "name": "Outlet Unit Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 800,
     "totalCents": 800,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances"
    }
   ],
   "totalCents": 79088,
   "permits": {
    "note": "Permits and inspections: Electrical Permit and Inspection",
    "lines": [
     {
      "templateId": "electrical_permit_inspection",
      "name": "Electrical Permit and Inspection",
      "quantity": 1,
      "unit": "ea",
      "unitPriceCents": 22500,
      "totalCents": 22500,
      "flagged": false,
      "trade": "Electrical",
      "costType": "Permits & fees"
     }
    ],
    "totalCents": 22500,
    "lowCents": 8750,
    "highCents": 50000
   }
  },
  {
   "key": "rv-30",
   "name": "30A RV hookup",
   "description": "Add a 30 amp TT-30 RV outlet on a pedestal beside the driveway 40 feet from the house: a new 120V 30 amp circuit, about 35 feet inside and 40 feet underground in a trench, GFCI protected, with an in-use cover. The panel is in an unfinished basement with space for a new breaker, and the house has capacity for the added load. Include the permit and inspection.",
   "assemblies": [
    {
     "assembly_id": "dedicated_circuit_install",
     "parameters": {
      "circuit_count": 1,
      "circuit_type": "240v_30",
      "endpoint": "receptacle",
      "run_ft": 75,
      "route": "accessible",
      "panel_space": "available",
      "permit_required": true,
      "afci_required": false,
      "underground_ft": 40
     }
    }
   ],
   "lines": [
    {
     "templateId": "circuit_install_labor",
     "name": "New Branch Circuit (labor)",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 55250,
     "totalCents": 55250,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 3.9,
     "hoursSpread": 1.37,
     "hoursSource": "catalog"
    },
    {
     "templateId": "dedicated_circuit_breaker_allowance",
     "name": "Dedicated Circuit Breaker Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 3500,
     "totalCents": 3500,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances",
     "installedBy": "New Branch Circuit (labor)"
    },
    {
     "templateId": "dryer_240v_wire_conduit_materials",
     "name": "Dryer 240V Wire & Conduit Materials",
     "quantity": 86.25,
     "unit": "lf",
     "unitPriceCents": 325,
     "totalCents": 28031,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials"
    },
    {
     "templateId": "electrical_box_device_materials",
     "name": "Electrical Box and Device Materials",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 850,
     "totalCents": 850,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials"
    },
    {
     "templateId": "outlet_unit_allowance",
     "name": "Outlet Unit Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 800,
     "totalCents": 800,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances"
    },
    {
     "templateId": "trenching_labor",
     "name": "Trenching Labor",
     "quantity": 40,
     "unit": "lf",
     "unitPriceCents": 650,
     "totalCents": 26000,
     "flagged": false,
     "trade": "Sitework",
     "costType": "Labor",
     "hoursTypical": 1.07,
     "hoursSpread": 0.37,
     "hoursSource": "catalog"
    },
    {
     "templateId": "underground_conduit_materials",
     "name": "Underground Electrical Conduit (per lf)",
     "quantity": 42,
     "unit": "lf",
     "unitPriceCents": 275,
     "totalCents": 11550,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials"
    }
   ],
   "totalCents": 125981,
   "permits": {
    "note": "Permits and inspections: Electrical Permit and Inspection",
    "lines": [
     {
      "templateId": "electrical_permit_inspection",
      "name": "Electrical Permit and Inspection",
      "quantity": 1,
      "unit": "ea",
      "unitPriceCents": 22500,
      "totalCents": 22500,
      "flagged": false,
      "trade": "Electrical",
      "costType": "Permits & fees"
     }
    ],
    "totalCents": 22500,
    "lowCents": 8750,
    "highCents": 50000
   }
  },
  {
   "key": "rv-50",
   "name": "50A RV hookup",
   "description": "Add a 50 amp NEMA 14-50 RV outlet on a pedestal beside the driveway 40 feet from the house: a new 50 amp circuit, about 35 feet inside and 40 feet underground in conduit, GFCI protected. The panel is in an unfinished basement with space for a new breaker, and the house has capacity for the added load. Include the permit and inspection.",
   "assemblies": [
    {
     "assembly_id": "dedicated_circuit_install",
     "parameters": {
      "circuit_count": 1,
      "circuit_type": "240v_50",
      "endpoint": "receptacle",
      "run_ft": 75,
      "route": "accessible",
      "afci_required": false,
      "permit_required": true,
      "panel_space": "available",
      "underground_ft": 40
     }
    }
   ],
   "lines": [
    {
     "templateId": "circuit_install_labor",
     "name": "New Branch Circuit (labor)",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 63750,
     "totalCents": 63750,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 4.5,
     "hoursSpread": 1.58,
     "hoursSource": "catalog"
    },
    {
     "templateId": "dedicated_circuit_breaker_allowance",
     "name": "Dedicated Circuit Breaker Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 6250,
     "totalCents": 6250,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances",
     "installedBy": "New Branch Circuit (labor)"
    },
    {
     "templateId": "nm_cable_6_3_materials",
     "name": "NM Cable 6/3 (40 to 60 A, 240 V)",
     "quantity": 86.25,
     "unit": "lf",
     "unitPriceCents": 425,
     "totalCents": 36656,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials"
    },
    {
     "templateId": "electrical_box_device_materials",
     "name": "Electrical Box and Device Materials",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 850,
     "totalCents": 850,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials"
    },
    {
     "templateId": "outlet_unit_allowance",
     "name": "Outlet Unit Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 800,
     "totalCents": 800,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances"
    },
    {
     "templateId": "trenching_labor",
     "name": "Trenching Labor",
     "quantity": 40,
     "unit": "lf",
     "unitPriceCents": 650,
     "totalCents": 26000,
     "flagged": false,
     "trade": "Sitework",
     "costType": "Labor",
     "hoursTypical": 1.07,
     "hoursSpread": 0.37,
     "hoursSource": "catalog"
    },
    {
     "templateId": "underground_conduit_materials",
     "name": "Underground Electrical Conduit (per lf)",
     "quantity": 42,
     "unit": "lf",
     "unitPriceCents": 275,
     "totalCents": 11550,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials"
    }
   ],
   "totalCents": 145856,
   "permits": {
    "note": "Permits and inspections: Electrical Permit and Inspection",
    "lines": [
     {
      "templateId": "electrical_permit_inspection",
      "name": "Electrical Permit and Inspection",
      "quantity": 1,
      "unit": "ea",
      "unitPriceCents": 22500,
      "totalCents": 22500,
      "flagged": false,
      "trade": "Electrical",
      "costType": "Permits & fees"
     }
    ],
    "totalCents": 22500,
    "lowCents": 8750,
    "highCents": 50000
   }
  },
  {
   "key": "generator-30",
   "name": "30A generator inlet with interlock",
   "description": "Install a 30 amp L14-30 power inlet box on the outside wall beside the panel for a portable generator, about 25 feet of 10/3, with a 30 amp backfeed breaker and a listed interlock kit on the main panel. The panel is in an unfinished basement with space for a new breaker, and the house has capacity for the added load. Include the permit and inspection.",
   "assemblies": [
    {
     "assembly_id": "generator_system",
     "parameters": {
      "generator_type": "portable_connection_only",
      "inlet_amps": "30",
      "generator_feeder_lf": 25,
      "kw_rating": 18,
      "has_ats": false,
      "critical_loads_only": false,
      "fuel_type": "natural_gas",
      "requires_pad_install": false,
      "requires_gas_line_extension": false,
      "assembly_difficulty": 1,
      "permit_required": true,
      "gas_line_lf": 20
     }
    }
   ],
   "lines": [
    {
     "templateId": "generator_inlet_interlock_install_labor",
     "name": "Generator Inlet and Interlock Install",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 56000,
     "totalCents": 56000,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 4,
     "hoursSpread": 1.4,
     "hoursSource": "catalog"
    },
    {
     "templateId": "generator_inlet_interlock_allowance",
     "name": "Generator Inlet and Interlock Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 28500,
     "totalCents": 28500,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances",
     "installedBy": "Generator Inlet and Interlock Install"
    },
    {
     "templateId": "nm_cable_10_3_materials",
     "name": "NM Cable 10/3 (30 A, 240 V)",
     "quantity": 28.75,
     "unit": "lf",
     "unitPriceCents": 185,
     "totalCents": 5319,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "Generator Inlet and Interlock Install"
    }
   ],
   "totalCents": 89819,
   "permits": {
    "note": "Permits and inspections: Electrical Permit and Inspection",
    "lines": [
     {
      "templateId": "electrical_permit_inspection",
      "name": "Electrical Permit and Inspection",
      "quantity": 1,
      "unit": "ea",
      "unitPriceCents": 22500,
      "totalCents": 22500,
      "flagged": false,
      "trade": "Electrical",
      "costType": "Permits & fees"
     }
    ],
    "totalCents": 22500,
    "lowCents": 8750,
    "highCents": 50000
   }
  },
  {
   "key": "generator-50",
   "name": "50A generator inlet with interlock",
   "description": "Install a 50 amp generator power inlet box on the outside wall near the panel for a large portable generator, about 25 feet of 6/3, with a 50 amp backfeed breaker and a listed interlock kit on the main panel. The panel is in an unfinished basement with space for a new breaker, and the house has capacity for the added load. Include the permit and inspection.",
   "assemblies": [
    {
     "assembly_id": "generator_system",
     "parameters": {
      "generator_type": "portable_connection_only",
      "inlet_amps": "50",
      "generator_feeder_lf": 25,
      "permit_required": true,
      "kw_rating": 18,
      "has_ats": false,
      "critical_loads_only": false,
      "fuel_type": "natural_gas",
      "requires_pad_install": false,
      "requires_gas_line_extension": false,
      "assembly_difficulty": 1,
      "gas_line_lf": 20
     }
    }
   ],
   "lines": [
    {
     "templateId": "generator_inlet_interlock_install_labor",
     "name": "Generator Inlet and Interlock Install",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 56000,
     "totalCents": 56000,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 4,
     "hoursSpread": 1.4,
     "hoursSource": "catalog"
    },
    {
     "templateId": "generator_inlet_interlock_allowance",
     "name": "Generator Inlet and Interlock Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 28500,
     "totalCents": 28500,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances",
     "installedBy": "Generator Inlet and Interlock Install"
    },
    {
     "templateId": "nm_cable_6_3_materials",
     "name": "NM Cable 6/3 (40 to 60 A, 240 V)",
     "quantity": 28.75,
     "unit": "lf",
     "unitPriceCents": 425,
     "totalCents": 12219,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "Generator Inlet and Interlock Install"
    }
   ],
   "totalCents": 96719,
   "permits": {
    "note": "Permits and inspections: Electrical Permit and Inspection",
    "lines": [
     {
      "templateId": "electrical_permit_inspection",
      "name": "Electrical Permit and Inspection",
      "quantity": 1,
      "unit": "ea",
      "unitPriceCents": 22500,
      "totalCents": 22500,
      "flagged": false,
      "trade": "Electrical",
      "costType": "Permits & fees"
     }
    ],
    "totalCents": 22500,
    "lowCents": 8750,
    "highCents": 50000
   }
  },
  {
   "key": "pool-pump",
   "name": "Pool pump circuit",
   "description": "Wire a new 240V 20 amp circuit to an in-ground pool pump on the equipment pad 40 feet from the house, about 35 feet inside and 40 feet underground in conduit, to a GFCI disconnect at the pad, with equipment bonding. The panel is in an unfinished basement with space for a new breaker, and the house has capacity for the added load. Include the permit and inspection.",
   "assemblies": [
    {
     "assembly_id": "dedicated_circuit_install",
     "parameters": {
      "circuit_count": 1,
      "circuit_type": "240v_20",
      "endpoint": "other",
      "run_ft": 75,
      "route": "accessible",
      "permit_required": true,
      "panel_space": "available",
      "afci_required": false,
      "underground_ft": 40
     }
    }
   ],
   "lines": [
    {
     "templateId": "circuit_install_labor",
     "name": "New Branch Circuit (labor)",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 55250,
     "totalCents": 55250,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 3.9,
     "hoursSpread": 1.37,
     "hoursSource": "catalog"
    },
    {
     "templateId": "dedicated_circuit_breaker_allowance",
     "name": "Dedicated Circuit Breaker Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 3500,
     "totalCents": 3500,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances",
     "installedBy": "New Branch Circuit (labor)"
    },
    {
     "templateId": "romex_wire_materials",
     "name": "Romex Wire Materials",
     "quantity": 40.25,
     "unit": "lf",
     "unitPriceCents": 80,
     "totalCents": 3220,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "New Branch Circuit (labor)"
    },
    {
     "templateId": "electrical_box_device_materials",
     "name": "Electrical Box and Device Materials",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 850,
     "totalCents": 850,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials"
    },
    {
     "templateId": "underground_branch_wire_materials",
     "name": "Underground Branch Circuit Wire Materials",
     "quantity": 46,
     "unit": "lf",
     "unitPriceCents": 110,
     "totalCents": 5060,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials"
    },
    {
     "templateId": "trenching_labor",
     "name": "Trenching Labor",
     "quantity": 40,
     "unit": "lf",
     "unitPriceCents": 650,
     "totalCents": 26000,
     "flagged": false,
     "trade": "Sitework",
     "costType": "Labor",
     "hoursTypical": 1.07,
     "hoursSpread": 0.37,
     "hoursSource": "catalog"
    },
    {
     "templateId": "underground_conduit_materials",
     "name": "Underground Electrical Conduit (per lf)",
     "quantity": 42,
     "unit": "lf",
     "unitPriceCents": 275,
     "totalCents": 11550,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials"
    }
   ],
   "totalCents": 105430,
   "permits": {
    "note": "Permits and inspections: Electrical Permit and Inspection",
    "lines": [
     {
      "templateId": "electrical_permit_inspection",
      "name": "Electrical Permit and Inspection",
      "quantity": 1,
      "unit": "ea",
      "unitPriceCents": 22500,
      "totalCents": 22500,
      "flagged": false,
      "trade": "Electrical",
      "costType": "Permits & fees"
     }
    ],
    "totalCents": 22500,
    "lowCents": 8750,
    "highCents": 50000
   }
  },
  {
   "key": "pool-heat-pump",
   "name": "Pool heat pump circuit",
   "description": "Wire a new 240V 50 amp circuit to a pool heat pump on the equipment pad 40 feet from the house, about 35 feet inside and 40 feet underground in conduit, with a disconnect at the pad and bonding. The panel is in an unfinished basement with space for a new breaker, and the house has capacity for the added load. Include the permit and inspection.",
   "assemblies": [
    {
     "assembly_id": "dedicated_circuit_install",
     "parameters": {
      "circuit_count": 1,
      "circuit_type": "240v_50",
      "endpoint": "hardwired_appliance",
      "run_ft": 75,
      "route": "accessible",
      "panel_space": "available",
      "permit_required": true,
      "afci_required": false,
      "underground_ft": 40
     }
    }
   ],
   "lines": [
    {
     "templateId": "circuit_install_labor",
     "name": "New Branch Circuit (labor)",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 63750,
     "totalCents": 63750,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 4.5,
     "hoursSpread": 1.58,
     "hoursSource": "catalog"
    },
    {
     "templateId": "dedicated_circuit_breaker_allowance",
     "name": "Dedicated Circuit Breaker Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 6250,
     "totalCents": 6250,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances",
     "installedBy": "New Branch Circuit (labor)"
    },
    {
     "templateId": "nm_cable_6_3_materials",
     "name": "NM Cable 6/3 (40 to 60 A, 240 V)",
     "quantity": 86.25,
     "unit": "lf",
     "unitPriceCents": 425,
     "totalCents": 36656,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials"
    },
    {
     "templateId": "electrical_box_device_materials",
     "name": "Electrical Box and Device Materials",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 850,
     "totalCents": 850,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials"
    },
    {
     "templateId": "trenching_labor",
     "name": "Trenching Labor",
     "quantity": 40,
     "unit": "lf",
     "unitPriceCents": 650,
     "totalCents": 26000,
     "flagged": false,
     "trade": "Sitework",
     "costType": "Labor",
     "hoursTypical": 1.07,
     "hoursSpread": 0.37,
     "hoursSource": "catalog"
    },
    {
     "templateId": "underground_conduit_materials",
     "name": "Underground Electrical Conduit (per lf)",
     "quantity": 42,
     "unit": "lf",
     "unitPriceCents": 275,
     "totalCents": 11550,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials"
    }
   ],
   "totalCents": 145056,
   "permits": {
    "note": "Permits and inspections: Electrical Permit and Inspection",
    "lines": [
     {
      "templateId": "electrical_permit_inspection",
      "name": "Electrical Permit and Inspection",
      "quantity": 1,
      "unit": "ea",
      "unitPriceCents": 22500,
      "totalCents": 22500,
      "flagged": false,
      "trade": "Electrical",
      "costType": "Permits & fees"
     }
    ],
    "totalCents": 22500,
    "lowCents": 8750,
    "highCents": 50000
   }
  },
  {
   "key": "sauna",
   "name": "Sauna circuit",
   "description": "Run a new 40 amp 240V circuit for an indoor electric sauna heater in a finished basement, about 50 feet of 8/2 from the panel, with a disconnect and the heater control wired per the maker. The panel is in an unfinished basement with space for a new breaker, and the house has capacity for the added load. Include the permit and inspection.",
   "assemblies": [
    {
     "assembly_id": "dedicated_circuit_install",
     "parameters": {
      "circuit_count": 1,
      "circuit_type": "240v_40",
      "endpoint": "hardwired_appliance",
      "run_ft": 50,
      "route": "finished_walls",
      "afci_required": true,
      "permit_required": true,
      "panel_space": "available",
      "underground_ft": 0
     }
    }
   ],
   "lines": [
    {
     "templateId": "circuit_install_labor",
     "name": "New Branch Circuit (labor)",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 76500,
     "totalCents": 76500,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 5.4,
     "hoursSpread": 1.89,
     "hoursSource": "catalog"
    },
    {
     "templateId": "nm_cable_6_3_materials",
     "name": "NM Cable 6/3 (40 to 60 A, 240 V)",
     "quantity": 57.5,
     "unit": "lf",
     "unitPriceCents": 425,
     "totalCents": 24438,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "New Branch Circuit (labor)"
    },
    {
     "templateId": "electrical_box_device_materials",
     "name": "Electrical Box and Device Materials",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 850,
     "totalCents": 850,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials"
    },
    {
     "templateId": "dedicated_circuit_breaker_allowance",
     "name": "Dedicated Circuit Breaker Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 6250,
     "totalCents": 6250,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances",
     "installedBy": "New Branch Circuit (labor)"
    }
   ],
   "totalCents": 108038,
   "permits": {
    "note": "Permits and inspections: Electrical Permit and Inspection",
    "lines": [
     {
      "templateId": "electrical_permit_inspection",
      "name": "Electrical Permit and Inspection",
      "quantity": 1,
      "unit": "ea",
      "unitPriceCents": 22500,
      "totalCents": 22500,
      "flagged": false,
      "trade": "Electrical",
      "costType": "Permits & fees"
     }
    ],
    "totalCents": 22500,
    "lowCents": 8750,
    "highCents": 50000
   }
  },
  {
   "key": "mini-split",
   "name": "Mini-split circuit",
   "description": "Run a new 240V 20 amp circuit to a single-zone mini-split outdoor unit, about 50 feet of 12/2 from the panel through the basement and out the rim joist, with a disconnect and a service outlet at the unit. The panel is in an unfinished basement with space for a new breaker, and the house has capacity for the added load. Include the permit and inspection.",
   "assemblies": [
    {
     "assembly_id": "dedicated_circuit_install",
     "parameters": {
      "circuit_type": "240v_20",
      "endpoint": "hardwired_appliance",
      "run_ft": 50,
      "route": "accessible",
      "panel_space": "available",
      "permit_required": true,
      "circuit_count": 1,
      "afci_required": false,
      "underground_ft": 0
     }
    }
   ],
   "lines": [
    {
     "templateId": "circuit_install_labor",
     "name": "New Branch Circuit (labor)",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 55250,
     "totalCents": 55250,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 3.9,
     "hoursSpread": 1.37,
     "hoursSource": "catalog"
    },
    {
     "templateId": "dedicated_circuit_breaker_allowance",
     "name": "Dedicated Circuit Breaker Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 3500,
     "totalCents": 3500,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances",
     "installedBy": "New Branch Circuit (labor)"
    },
    {
     "templateId": "romex_wire_materials",
     "name": "Romex Wire Materials",
     "quantity": 57.5,
     "unit": "lf",
     "unitPriceCents": 80,
     "totalCents": 4600,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "New Branch Circuit (labor)"
    },
    {
     "templateId": "electrical_box_device_materials",
     "name": "Electrical Box and Device Materials",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 850,
     "totalCents": 850,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials"
    }
   ],
   "totalCents": 64200,
   "permits": {
    "note": "Permits and inspections: Electrical Permit and Inspection",
    "lines": [
     {
      "templateId": "electrical_permit_inspection",
      "name": "Electrical Permit and Inspection",
      "quantity": 1,
      "unit": "ea",
      "unitPriceCents": 22500,
      "totalCents": 22500,
      "flagged": false,
      "trade": "Electrical",
      "costType": "Permits & fees"
     }
    ],
    "totalCents": 22500,
    "lowCents": 8750,
    "highCents": 50000
   }
  },
  {
   "key": "central-ac",
   "name": "Heat pump or central AC circuit",
   "description": "Run a new 240V 40 amp circuit to an outdoor heat pump condenser, about 50 feet of 8/2 from the panel through the basement, with a fused disconnect and whip at the unit and a service outlet nearby. The panel is in an unfinished basement with space for a new breaker, and the house has capacity for the added load. Include the permit and inspection.",
   "assemblies": [
    {
     "assembly_id": "dedicated_circuit_install",
     "parameters": {
      "circuit_count": 1,
      "circuit_type": "240v_40",
      "endpoint": "hardwired_appliance",
      "run_ft": 50,
      "route": "accessible",
      "panel_space": "available",
      "permit_required": true,
      "afci_required": false,
      "underground_ft": 0
     }
    }
   ],
   "lines": [
    {
     "templateId": "circuit_install_labor",
     "name": "New Branch Circuit (labor)",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 63750,
     "totalCents": 63750,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 4.5,
     "hoursSpread": 1.58,
     "hoursSource": "catalog"
    },
    {
     "templateId": "dedicated_circuit_breaker_allowance",
     "name": "Dedicated Circuit Breaker Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 6250,
     "totalCents": 6250,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances",
     "installedBy": "New Branch Circuit (labor)"
    },
    {
     "templateId": "nm_cable_6_3_materials",
     "name": "NM Cable 6/3 (40 to 60 A, 240 V)",
     "quantity": 57.5,
     "unit": "lf",
     "unitPriceCents": 425,
     "totalCents": 24438,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "New Branch Circuit (labor)"
    },
    {
     "templateId": "electrical_box_device_materials",
     "name": "Electrical Box and Device Materials",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 850,
     "totalCents": 850,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials"
    }
   ],
   "totalCents": 95288,
   "permits": {
    "note": "Permits and inspections: Electrical Permit and Inspection",
    "lines": [
     {
      "templateId": "electrical_permit_inspection",
      "name": "Electrical Permit and Inspection",
      "quantity": 1,
      "unit": "ea",
      "unitPriceCents": 22500,
      "totalCents": 22500,
      "flagged": false,
      "trade": "Electrical",
      "costType": "Permits & fees"
     }
    ],
    "totalCents": 22500,
    "lowCents": 8750,
    "highCents": 50000
   }
  },
  {
   "key": "well-pump",
   "name": "Well pump circuit",
   "description": "Run a new 240V 20 amp circuit to a well pump pressure switch and control box in the basement, about 75 feet of 12/2 from the panel. Down-well cable and pump not included. The panel is in an unfinished basement with space for a new breaker, and the house has capacity for the added load. Include the permit and inspection.",
   "assemblies": [
    {
     "assembly_id": "dedicated_circuit_install",
     "parameters": {
      "circuit_count": 1,
      "circuit_type": "240v_20",
      "endpoint": "hardwired_appliance",
      "run_ft": 75,
      "route": "accessible",
      "afci_required": false,
      "permit_required": true,
      "panel_space": "available",
      "underground_ft": 0
     }
    }
   ],
   "lines": [
    {
     "templateId": "circuit_install_labor",
     "name": "New Branch Circuit (labor)",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 55250,
     "totalCents": 55250,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 3.9,
     "hoursSpread": 1.37,
     "hoursSource": "catalog"
    },
    {
     "templateId": "dedicated_circuit_breaker_allowance",
     "name": "Dedicated Circuit Breaker Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 3500,
     "totalCents": 3500,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances",
     "installedBy": "New Branch Circuit (labor)"
    },
    {
     "templateId": "romex_wire_materials",
     "name": "Romex Wire Materials",
     "quantity": 86.25,
     "unit": "lf",
     "unitPriceCents": 80,
     "totalCents": 6900,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "New Branch Circuit (labor)"
    },
    {
     "templateId": "electrical_box_device_materials",
     "name": "Electrical Box and Device Materials",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 850,
     "totalCents": 850,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials"
    }
   ],
   "totalCents": 66500,
   "permits": {
    "note": "Permits and inspections: Electrical Permit and Inspection",
    "lines": [
     {
      "templateId": "electrical_permit_inspection",
      "name": "Electrical Permit and Inspection",
      "quantity": 1,
      "unit": "ea",
      "unitPriceCents": 22500,
      "totalCents": 22500,
      "flagged": false,
      "trade": "Electrical",
      "costType": "Permits & fees"
     }
    ],
    "totalCents": 22500,
    "lowCents": 8750,
    "highCents": 50000
   }
  },
  {
   "key": "baseboard",
   "name": "Electric baseboard or garage heater circuit",
   "description": "Run a new 240V 20 amp circuit for a 3,000 watt garage heater with a wall thermostat, about 50 feet of 12/2 from the panel through the basement and conduit in the garage. The panel is in an unfinished basement with space for a new breaker, and the house has capacity for the added load. Include the permit and inspection.",
   "assemblies": [
    {
     "assembly_id": "dedicated_circuit_install",
     "parameters": {
      "circuit_count": 1,
      "circuit_type": "240v_20",
      "endpoint": "hardwired_appliance",
      "run_ft": 50,
      "route": "accessible",
      "panel_space": "available",
      "permit_required": true,
      "afci_required": false,
      "underground_ft": 0
     }
    }
   ],
   "lines": [
    {
     "templateId": "circuit_install_labor",
     "name": "New Branch Circuit (labor)",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 55250,
     "totalCents": 55250,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 3.9,
     "hoursSpread": 1.37,
     "hoursSource": "catalog"
    },
    {
     "templateId": "dedicated_circuit_breaker_allowance",
     "name": "Dedicated Circuit Breaker Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 3500,
     "totalCents": 3500,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances",
     "installedBy": "New Branch Circuit (labor)"
    },
    {
     "templateId": "romex_wire_materials",
     "name": "Romex Wire Materials",
     "quantity": 57.5,
     "unit": "lf",
     "unitPriceCents": 80,
     "totalCents": 4600,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "New Branch Circuit (labor)"
    },
    {
     "templateId": "electrical_box_device_materials",
     "name": "Electrical Box and Device Materials",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 850,
     "totalCents": 850,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials"
    }
   ],
   "totalCents": 64200,
   "permits": {
    "note": "Permits and inspections: Electrical Permit and Inspection",
    "lines": [
     {
      "templateId": "electrical_permit_inspection",
      "name": "Electrical Permit and Inspection",
      "quantity": 1,
      "unit": "ea",
      "unitPriceCents": 22500,
      "totalCents": 22500,
      "flagged": false,
      "trade": "Electrical",
      "costType": "Permits & fees"
     }
    ],
    "totalCents": 22500,
    "lowCents": 8750,
    "highCents": 50000
   }
  },
  {
   "key": "steam-shower",
   "name": "Steam shower generator circuit",
   "description": "Run a new 240V 40 amp circuit to a steam shower generator in a vanity cabinet beside the shower, about 50 feet of 8/2 from the panel through the basement, with a disconnect. The panel is in an unfinished basement with space for a new breaker, and the house has capacity for the added load. Include the permit and inspection.",
   "assemblies": [
    {
     "assembly_id": "dedicated_circuit_install",
     "parameters": {
      "circuit_type": "240v_40",
      "endpoint": "hardwired_appliance",
      "run_ft": 50,
      "route": "accessible",
      "panel_space": "available",
      "permit_required": true,
      "circuit_count": 1,
      "afci_required": false,
      "underground_ft": 0
     }
    }
   ],
   "lines": [
    {
     "templateId": "circuit_install_labor",
     "name": "New Branch Circuit (labor)",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 63750,
     "totalCents": 63750,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Labor",
     "hoursTypical": 4.5,
     "hoursSpread": 1.58,
     "hoursSource": "catalog"
    },
    {
     "templateId": "dedicated_circuit_breaker_allowance",
     "name": "Dedicated Circuit Breaker Allowance",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 6250,
     "totalCents": 6250,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Allowances",
     "installedBy": "New Branch Circuit (labor)"
    },
    {
     "templateId": "nm_cable_6_3_materials",
     "name": "NM Cable 6/3 (40 to 60 A, 240 V)",
     "quantity": 57.5,
     "unit": "lf",
     "unitPriceCents": 425,
     "totalCents": 24438,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials",
     "installedBy": "New Branch Circuit (labor)"
    },
    {
     "templateId": "electrical_box_device_materials",
     "name": "Electrical Box and Device Materials",
     "quantity": 1,
     "unit": "ea",
     "unitPriceCents": 850,
     "totalCents": 850,
     "flagged": false,
     "trade": "Electrical",
     "costType": "Materials"
    }
   ],
   "totalCents": 95288,
   "permits": {
    "note": "Permits and inspections: Electrical Permit and Inspection",
    "lines": [
     {
      "templateId": "electrical_permit_inspection",
      "name": "Electrical Permit and Inspection",
      "quantity": 1,
      "unit": "ea",
      "unitPriceCents": 22500,
      "totalCents": 22500,
      "flagged": false,
      "trade": "Electrical",
      "costType": "Permits & fees"
     }
    ],
    "totalCents": 22500,
    "lowCents": 8750,
    "highCents": 50000
   }
  }
 ]
}
