Model/harness/sample_catalogue.json
Khalim Conn-Kowlessar 0f89845321 feat(modelling): wire the ASHP bundle into the candidate pool
recommend_heating now receives planning_restrictions in the orchestrator (the
ASHP planning gate); the ASHP bundle joins the free candidate pool for every
house/bungalow. Catalogue + contingency (legacy 0.25) gain air_source_heat_pump;
report.py _triggers_for explains the ASHP trigger; the harness forcing test
covers it. Integration tests seed an air_source_heat_pump MaterialRow (ASHP
fires on every house, the broadest trigger yet). NB the optimiser correctly does
NOT select ASHP for an EPC-band goal — gas->electric does not improve the SAP
cost-rating; ASHP is a CO2/PE measure, selectable once non-EPC goals land. ASHP
bundle COMPLETE (S5-S7). ADR-0024.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-06 17:12:07 +00:00

16 lines
821 B
JSON

{
"cavity_wall_insulation": { "unit_cost_per_m2": 18.5 },
"loft_insulation": { "unit_cost_per_m2": 12.0 },
"sloping_ceiling_insulation": { "unit_cost_per_m2": 40.0 },
"flat_roof_insulation": { "unit_cost_per_m2": 60.0 },
"suspended_floor_insulation": { "unit_cost_per_m2": 25.0 },
"solid_floor_insulation": { "unit_cost_per_m2": 45.0 },
"mechanical_ventilation": { "unit_cost_per_m2": 450.0 },
"external_wall_insulation": { "unit_cost_per_m2": 100.0 },
"internal_wall_insulation": { "unit_cost_per_m2": 90.0 },
"double_glazing": { "unit_cost_per_m2": 600.0 },
"secondary_glazing": { "unit_cost_per_m2": 510.0 },
"low_energy_lighting": { "unit_cost_per_m2": 8.0 },
"high_heat_retention_storage_heaters": { "unit_cost_per_m2": 3500.0 },
"air_source_heat_pump": { "unit_cost_per_m2": 12000.0 }
}