{
  "products": [
    {"product_id": "WRB_TYVEK", "name": "WRB Membrane (Tyvek type)", "category": "Membranes", "base_unit": "m2", "unit_price": 1.0, "yield": 1.0, "yield_unit": "m2/m2", "waste_pct": 5.0, "notes": "Roll membrane, priced per m²"},
    {"product_id": "FLASH_TAPE", "name": "Self-adhesive flashing tape", "category": "Insulation/Adhesives", "base_unit": "ml", "unit_price": 1.0, "yield": 1.0, "yield_unit": "ml/ml", "waste_pct": 5.0, "notes": "Roll tape, priced per ml"},
    {"product_id": "SEALANT", "name": "Polyurethane/silicone sealant", "category": "Adhesives", "base_unit": "unit", "unit_price": 1.0, "yield": 8.0, "yield_unit": "m2/unit", "waste_pct": 5.0, "notes": "1 cartridge (310ml) covers ~8 m²"},
    {"product_id": "STARTER_TRACK", "name": "Starter track profile", "category": "Profiles", "base_unit": "ml", "unit_price": 1.0, "yield": 1.0, "yield_unit": "ml/ml", "waste_pct": 5.0, "notes": "Profile, priced per ml"},
    {"product_id": "CORNER_BEAD", "name": "PVC/metal corner bead", "category": "Accessories", "base_unit": "ml", "unit_price": 1.0, "yield": 1.0, "yield_unit": "ml/ml", "waste_pct": 5.0, "notes": "Standard 2.5m piece, priced per ml"},
    {"product_id": "SCREWS_EXT", "name": "Exterior screws (self-drilling)", "category": "Fasteners", "base_unit": "unit", "unit_price": 1.0, "yield": 1.0, "yield_unit": "unit/unit", "waste_pct": 5.0, "notes": "Priced per piece"},
    {"product_id": "SCREWS_DRY", "name": "Drywall screws", "category": "Fasteners", "base_unit": "unit", "unit_price": 1.0, "yield": 1.0, "yield_unit": "unit/unit", "waste_pct": 5.0, "notes": "Priced per piece"},
    {"product_id": "MESH_FIBER", "name": "Alkali-resistant fiberglass mesh", "category": "Renders", "base_unit": "m2", "unit_price": 1.0, "yield": 1.0, "yield_unit": "m2/m2", "waste_pct": 8.0, "notes": "Roll mesh, priced per m²"},
    {"product_id": "BASECOAT", "name": "Base coat", "category": "Renders", "base_unit": "kg", "unit_price": 1.0, "yield": 4.0, "yield_unit": "m2/kg", "waste_pct": 8.0, "notes": "1 kg covers ~4 m²"},
    {"product_id": "PRIMER", "name": "Primer / primer coat", "category": "Renders", "base_unit": "lt", "unit_price": 1.0, "yield": 10.0, "yield_unit": "m2/lt", "waste_pct": 8.0, "notes": "1 lt covers ~10 m²"},
    {"product_id": "FINISHCOAT", "name": "Finish coat", "category": "Renders", "base_unit": "kg", "unit_price": 1.0, "yield": 3.0, "yield_unit": "m2/kg", "waste_pct": 8.0, "notes": "1 kg covers ~3 m²"},
    {"product_id": "EPS_BOARD", "name": "EPS board (EIFS insulation)", "category": "Insulation", "base_unit": "board", "unit_price": 1.0, "yield": 0.50, "yield_unit": "m2/board", "waste_pct": 5.0, "notes": "Standard board 1000x500mm = 0.50 m²/board"},
    {"product_id": "MW_BOARD", "name": "Mineral wool board (EIFS insulation)", "category": "Insulation", "base_unit": "board", "unit_price": 1.0, "yield": 0.72, "yield_unit": "m2/board", "waste_pct": 5.0, "notes": "Standard board 1200x600mm = 0.72 m²/board"},
    {"product_id": "EIFS_ADHESIVE", "name": "EIFS board adhesive", "category": "Adhesives", "base_unit": "kg", "unit_price": 1.0, "yield": 5.0, "yield_unit": "m2/kg", "waste_pct": 8.0, "notes": "1 kg covers ~5 m²"},
    {"product_id": "EIFS_FASTENERS", "name": "EIFS mechanical fasteners (anchors/washers)", "category": "Fasteners", "base_unit": "unit", "unit_price": 1.0, "yield": 1.0, "yield_unit": "unit/unit", "waste_pct": 5.0, "notes": "Priced per piece, qty set by multiplier"},
    {"product_id": "CEMENT_BOARD", "name": "Cement board", "category": "Boards", "base_unit": "board", "unit_price": 1.0, "yield": 2.88, "yield_unit": "m2/board", "waste_pct": 7.0, "notes": "Standard board 1200x2400mm = 2.88 m²/board"},
    {"product_id": "GLASSMAT_GYP", "name": "Exterior gypsum board (glass-mat gypsum sheathing)", "category": "Boards", "base_unit": "board", "unit_price": 1.0, "yield": 2.88, "yield_unit": "m2/board", "waste_pct": 7.0, "notes": "Standard board 1200x2400mm = 2.88 m²/board"},
    {"product_id": "GYPSUM_BOARD", "name": "Interior gypsum board (drywall)", "category": "Boards", "base_unit": "board", "unit_price": 1.0, "yield": 2.88, "yield_unit": "m2/board", "waste_pct": 7.0, "notes": "Standard board 1200x2400mm = 2.88 m²/board"},
    {"product_id": "OSB_11", "name": "OSB board 11 mm", "category": "Boards", "base_unit": "sheet", "unit_price": 1.0, "yield": 2.88, "yield_unit": "m2/sheet", "waste_pct": 10.0, "notes": "Standard sheet 1200x2400mm = 2.88 m²/sheet"},
    {"product_id": "OSB_15", "name": "OSB board 15 mm", "category": "Boards", "base_unit": "sheet", "unit_price": 1.0, "yield": 2.88, "yield_unit": "m2/sheet", "waste_pct": 10.0, "notes": "Standard sheet 1200x2400mm = 2.88 m²/sheet"},
    {"product_id": "OSB_18", "name": "OSB board 18 mm", "category": "Boards", "base_unit": "sheet", "unit_price": 1.0, "yield": 2.88, "yield_unit": "m2/sheet", "waste_pct": 10.0, "notes": "Standard sheet 1200x2400mm = 2.88 m²/sheet"},
    {"product_id": "PLYWOOD_12", "name": "Plywood board 12 mm", "category": "Boards", "base_unit": "sheet", "unit_price": 1.0, "yield": 2.88, "yield_unit": "m2/sheet", "waste_pct": 10.0, "notes": "Standard sheet 1200x2400mm = 2.88 m²/sheet"},
    {"product_id": "PLYWOOD_15", "name": "Plywood board 15 mm", "category": "Boards", "base_unit": "sheet", "unit_price": 1.0, "yield": 2.88, "yield_unit": "m2/sheet", "waste_pct": 10.0, "notes": "Standard sheet 1200x2400mm = 2.88 m²/sheet"},
    {"product_id": "PLYWOOD_18", "name": "Plywood board 18 mm", "category": "Boards", "base_unit": "sheet", "unit_price": 1.0, "yield": 2.88, "yield_unit": "m2/sheet", "waste_pct": 10.0, "notes": "Standard sheet 1200x2400mm = 2.88 m²/sheet"},
    {"product_id": "JOINT_TAPE", "name": "Drywall joint tape", "category": "Accessories", "base_unit": "ml", "unit_price": 1.0, "yield": 1.0, "yield_unit": "ml/ml", "waste_pct": 10.0, "notes": "Roll tape, priced per ml"},
    {"product_id": "JOINT_COMPOUND", "name": "Joint compound / finishing compound", "category": "Accessories", "base_unit": "kg", "unit_price": 1.0, "yield": 3.5, "yield_unit": "m2/kg", "waste_pct": 10.0, "notes": "1 kg covers ~3.5 m²"},
    {"product_id": "INSULATION_BATT", "name": "Insulation batt (glass/mineral wool)", "category": "Insulation", "base_unit": "m2", "unit_price": 1.0, "yield": 0.72, "yield_unit": "m2/batt", "waste_pct": 5.0, "notes": "Standard batt 1200x600mm = 0.72 m²/batt"},
    {"product_id": "VAPOR_BARRIER", "name": "Vapor barrier (if applicable)", "category": "Membranes", "base_unit": "m2", "unit_price": 1.0, "yield": 1.0, "yield_unit": "m2/m2", "waste_pct": 5.0, "notes": "Roll membrane, priced per m²"},
    {"product_id": "SIDING_PANEL", "name": "Siding (generic exterior panel)", "category": "Cladding", "base_unit": "panel", "unit_price": 1.0, "yield": 2.88, "yield_unit": "m2/panel", "waste_pct": 10.0, "notes": "Standard panel 1200x2400mm = 2.88 m²/panel"},
    {"product_id": "WOOD_CLADDING", "name": "Wood cladding (boards/shingles)", "category": "Cladding", "base_unit": "m2", "unit_price": 1.0, "yield": 1.0, "yield_unit": "m2/m2", "waste_pct": 12.0, "notes": "Priced per m², varies by board size"},
    {"product_id": "METAL_SHEET", "name": "Metal sheet (metal cladding)", "category": "Cladding", "base_unit": "m2", "unit_price": 1.0, "yield": 1.0, "yield_unit": "m2/m2", "waste_pct": 10.0, "notes": "Priced per m², cut to measure"},
    {"product_id": "FURRING_STRIP", "name": "Furring strip/omega (ventilated cavity)", "category": "Structure", "base_unit": "ml", "unit_price": 1.0, "yield": 1.0, "yield_unit": "ml/ml", "waste_pct": 8.0, "notes": "Profile, priced per ml"},
    {"product_id": "INSECT_SCREEN", "name": "Insect screen for ventilation", "category": "Accessories", "base_unit": "ml", "unit_price": 1.0, "yield": 1.0, "yield_unit": "ml/ml", "waste_pct": 5.0, "notes": "Roll mesh, priced per ml"},
    {"product_id": "TRIM_SET", "name": "Trim profiles (J-trim, corners, joint covers)", "category": "Accessories", "base_unit": "ml", "unit_price": 1.0, "yield": 1.0, "yield_unit": "ml/ml", "waste_pct": 10.0, "notes": "Profiles, priced per ml"},
    {"product_id": "WOOD_FINISH", "name": "Wood stain/sealer/paint", "category": "Finishes", "base_unit": "lt", "unit_price": 1.0, "yield": 10.0, "yield_unit": "m2/lt", "waste_pct": 10.0, "notes": "1 lt covers ~10 m²"},
    {"product_id": "BUTYL_TAPE", "name": "Butyl tape (metal sheet)", "category": "Adhesives", "base_unit": "ml", "unit_price": 1.0, "yield": 1.0, "yield_unit": "ml/ml", "waste_pct": 5.0, "notes": "Roll tape, priced per ml"},
    {"product_id": "SCREWS_METAL_SELFDRILL", "name": "Self-drilling screws with washer (metal sheet)", "category": "Fasteners", "base_unit": "unit", "unit_price": 1.0, "yield": 1.0, "yield_unit": "unit/unit", "waste_pct": 5.0, "notes": "Priced per piece"}
  ],
  "systems": [
    {"system_id": "DEFS", "name": "DEFS Direct-Applied Finish System", "color_hex": "#FFB703", "description": "Exterior finish applied directly over substrate (no continuous insulation)"},
    {"system_id": "EIFS", "name": "EIFS Exterior Insulation and Finish System", "color_hex": "#219EBC", "description": "System with insulation + base coat + mesh + finish"},
    {"system_id": "SIDING", "name": "Siding (ventilated exterior cladding)", "color_hex": "#8E9AAF", "description": "Exterior cladding with WRB + substructure + siding panel"},
    {"system_id": "MADERA", "name": "Ventilated Wood Cladding", "color_hex": "#606C38", "description": "Wood cladding with WRB + furring strips + protective finish"},
    {"system_id": "CHAPA", "name": "Ventilated Metal Sheet Cladding", "color_hex": "#6C757D", "description": "Metal cladding with WRB + substructure + metal sheet + accessories"},
    {"system_id": "DRYWALL", "name": "Interior Drywall", "color_hex": "#9B5DE5", "description": "Interior partitions/linings with gypsum boards and joint compound"}
  ],
  "system_components": [
    {"system_id": "EIFS", "product_id": "WRB_TYVEK", "basis": "m2", "multiplier": 1.0, "notes": ""},
    {"system_id": "EIFS", "product_id": "EIFS_ADHESIVE", "basis": "m2", "multiplier": 1.0, "notes": ""},
    {"system_id": "EIFS", "product_id": "EPS_BOARD", "basis": "m2", "multiplier": 1.0, "notes": ""},
    {"system_id": "EIFS", "product_id": "EIFS_FASTENERS", "basis": "m2", "multiplier": 6.0, "notes": ""},
    {"system_id": "EIFS", "product_id": "BASECOAT", "basis": "m2", "multiplier": 1.0, "notes": ""},
    {"system_id": "EIFS", "product_id": "MESH_FIBER", "basis": "m2", "multiplier": 1.0, "notes": ""},
    {"system_id": "EIFS", "product_id": "FINISHCOAT", "basis": "m2", "multiplier": 1.0, "notes": ""},
    {"system_id": "EIFS", "product_id": "OSB_11", "basis": "m2", "multiplier": 1.0, "notes": ""},
    {"system_id": "SIDING", "product_id": "WRB_TYVEK", "basis": "m2", "multiplier": 1.0, "notes": ""},
    {"system_id": "SIDING", "product_id": "FURRING_STRIP", "basis": "ml", "multiplier": 1.5, "notes": ""},
    {"system_id": "SIDING", "product_id": "SIDING_PANEL", "basis": "m2", "multiplier": 1.0, "notes": ""},
    {"system_id": "SIDING", "product_id": "OSB_11", "basis": "m2", "multiplier": 1.0, "notes": ""},
    {"system_id": "MADERA", "product_id": "WRB_TYVEK", "basis": "m2", "multiplier": 1.0, "notes": ""},
    {"system_id": "MADERA", "product_id": "FURRING_STRIP", "basis": "ml", "multiplier": 1.5, "notes": ""},
    {"system_id": "MADERA", "product_id": "WOOD_CLADDING", "basis": "m2", "multiplier": 1.0, "notes": ""},
    {"system_id": "MADERA", "product_id": "OSB_11", "basis": "m2", "multiplier": 1.0, "notes": ""},
    {"system_id": "CHAPA", "product_id": "WRB_TYVEK", "basis": "m2", "multiplier": 1.0, "notes": ""},
    {"system_id": "CHAPA", "product_id": "FURRING_STRIP", "basis": "ml", "multiplier": 1.5, "notes": ""},
    {"system_id": "CHAPA", "product_id": "METAL_SHEET", "basis": "m2", "multiplier": 1.0, "notes": ""},
    {"system_id": "CHAPA", "product_id": "OSB_11", "basis": "m2", "multiplier": 1.0, "notes": ""},
    {"system_id": "DRYWALL", "product_id": "METAL_STUD", "basis": "ml", "multiplier": 0.6, "notes": ""},
    {"system_id": "DRYWALL", "product_id": "METAL_TRACK", "basis": "ml", "multiplier": 0.25, "notes": ""},
    {"system_id": "DRYWALL", "product_id": "GYPSUM_BOARD", "basis": "m2", "multiplier": 2.0, "notes": ""},
    {"system_id": "DRYWALL", "product_id": "SCREWS_DRY", "basis": "m2", "multiplier": 20.0, "notes": ""},
    {"system_id": "DRYWALL", "product_id": "JOINT_TAPE", "basis": "ml", "multiplier": 0.3, "notes": ""},
    {"system_id": "DRYWALL", "product_id": "JOINT_COMPOUND", "basis": "m2", "multiplier": 1.0, "notes": ""},
    {"system_id": "DEFS", "product_id": "WRB_TYVEK", "basis": "m2", "multiplier": 1.0, "notes": ""},
    {"system_id": "DEFS", "product_id": "CEMENT_BOARD", "basis": "m2", "multiplier": 1.0, "notes": ""},
    {"system_id": "DEFS", "product_id": "BASECOAT", "basis": "m2", "multiplier": 1.0, "notes": ""},
    {"system_id": "DEFS", "product_id": "MESH_FIBER", "basis": "m2", "multiplier": 1.0, "notes": ""},
    {"system_id": "DEFS", "product_id": "FINISHCOAT", "basis": "m2", "multiplier": 1.0, "notes": ""},
    {"system_id": "DEFS", "product_id": "OSB_11", "basis": "m2", "multiplier": 1.0, "notes": ""}
  ]
}
