diff --git a/domain/epc/property_overlays/main_heating_system_overlay.py b/domain/epc/property_overlays/main_heating_system_overlay.py index 6b7aca804..630c247a4 100644 --- a/domain/epc/property_overlays/main_heating_system_overlay.py +++ b/domain/epc/property_overlays/main_heating_system_overlay.py @@ -19,10 +19,21 @@ from __future__ import annotations from typing import Optional -from domain.modelling.simulation import EpcSimulation +from domain.modelling.simulation import EpcSimulation, HeatingOverlay + +# Canonical system archetype → representative `sap_main_heating_code` (SAP Table +# 4b boiler rows / Table 4a). Codes map to the modern/condensing variant (A-G +# efficiency deferred): 102 regular condensing, 104 condensing combi, 120 CPSU, +# 404 fan storage heaters, 191 direct-acting electric boiler. +_MAIN_HEATING_CODES: dict[str, int] = { + "Gas boiler, combi": 104, +} def main_heating_overlay_for( main_heating_value: str, building_part: int ) -> Optional[EpcSimulation]: - raise NotImplementedError + code = _MAIN_HEATING_CODES.get(main_heating_value) + if code is None: + return None + return EpcSimulation(heating=HeatingOverlay(sap_main_heating_code=code))