diff --git a/datatypes/epc/domain/mapper.py b/datatypes/epc/domain/mapper.py index 24ee6d65e..3539fd0eb 100644 --- a/datatypes/epc/domain/mapper.py +++ b/datatypes/epc/domain/mapper.py @@ -738,6 +738,13 @@ class EpcPropertyDataMapper: # fires trigger (a) (sap_version < 10.2 → Effective = the SAP-10.2 # calc) instead of keeping the lodged SAP-2012 score (ADR-0037). sap_version=schema.sap_version, + # gov property_type code → str, mirroring from_rdsap_schema_17_1. + # Feeds the calculator's house/flat heat-transmission split. + property_type=( + str(schema.property_type) + if schema.property_type is not None + else None + ), dwelling_type=( schema.dwelling_type if isinstance(schema.dwelling_type, str) diff --git a/datatypes/epc/schema/sap_schema_17_1.py b/datatypes/epc/schema/sap_schema_17_1.py index cbd58d72a..ab4a33fa3 100644 --- a/datatypes/epc/schema/sap_schema_17_1.py +++ b/datatypes/epc/schema/sap_schema_17_1.py @@ -202,6 +202,10 @@ class SapSchema17_1: # Drives Rebaselining trigger (a): sap_version < 10.2 → Effective = the # SAP-10.2 calc, not the lodged figure (ADR-0037). Optional defensively. sap_version: Optional[float] = None + # gov property_type code (0 house, 1 bungalow, 2 flat, 3 maisonette, 4 park + # home). Feeds the calculator's house/flat heat-transmission split; left + # absent the dwelling is classified as neither → mis-scored (ADR-0037). + property_type: Optional[int] = None # measured living-room area (m²); the engine consumes it via a back-solved # habitable_rooms_count (Table 27). Optional — 100% present in the corpus. living_area: Optional[Union[int, float]] = None