From bec6e17347fffd5152ebffc690c1a1216c503a8d Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 23 Jul 2026 13:24:28 +0000 Subject: [PATCH] =?UTF-8?q?Recognise=20the=20pitched=20sloping-ceiling=20d?= =?UTF-8?q?escriptions=20as=20roof=20types=20=F0=9F=9F=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.8 (1M context) --- domain/epc/property_overrides/roof_type.py | 27 ++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/domain/epc/property_overrides/roof_type.py b/domain/epc/property_overrides/roof_type.py index bc3073f86..59437c91d 100644 --- a/domain/epc/property_overrides/roof_type.py +++ b/domain/epc/property_overrides/roof_type.py @@ -70,6 +70,33 @@ class RoofType(Enum): PITCHED_LOFT_400MM = "Pitched, 400 mm loft insulation" PITCHED_LOFT_400_PLUS_MM = "Pitched, 400+ mm loft insulation" + # A pitched roof whose ceiling follows the slope (gov-API roof_construction + # code 8) — no loft void, so its insulation sits at the rafter/slope line, NOT + # on horizontal ceiling joists. Distinct from both the PITCHED_LOFT_* ladder + # (loft joists) and PITCHED_INSULATED_AT_RAFTERS (a rafter-cavity over a loft). + # "as built" defers the insulation assumption to the construction age band + # (Table 18 col (3) via `is_pitched_sloping_ceiling`); the mm ladder carries + # the depth into the overlay, scored on Table 17 col (1a) "insulated slope". + # The value column is an FE-owned pgEnum kept lock-step with + # assessment-model#449 / migration 0278 (ADR-0002, ADR-0066). + PITCHED_SLOPING_CEILING_AS_BUILT = "Pitched, sloping ceiling, as built" + PITCHED_SLOPING_CEILING_12MM = "Pitched, sloping ceiling, 12 mm insulation" + PITCHED_SLOPING_CEILING_25MM = "Pitched, sloping ceiling, 25 mm insulation" + PITCHED_SLOPING_CEILING_50MM = "Pitched, sloping ceiling, 50 mm insulation" + PITCHED_SLOPING_CEILING_75MM = "Pitched, sloping ceiling, 75 mm insulation" + PITCHED_SLOPING_CEILING_100MM = "Pitched, sloping ceiling, 100 mm insulation" + PITCHED_SLOPING_CEILING_125MM = "Pitched, sloping ceiling, 125 mm insulation" + PITCHED_SLOPING_CEILING_150MM = "Pitched, sloping ceiling, 150 mm insulation" + PITCHED_SLOPING_CEILING_175MM = "Pitched, sloping ceiling, 175 mm insulation" + PITCHED_SLOPING_CEILING_200MM = "Pitched, sloping ceiling, 200 mm insulation" + PITCHED_SLOPING_CEILING_225MM = "Pitched, sloping ceiling, 225 mm insulation" + PITCHED_SLOPING_CEILING_250MM = "Pitched, sloping ceiling, 250 mm insulation" + PITCHED_SLOPING_CEILING_270MM = "Pitched, sloping ceiling, 270 mm insulation" + PITCHED_SLOPING_CEILING_300MM = "Pitched, sloping ceiling, 300 mm insulation" + PITCHED_SLOPING_CEILING_350MM = "Pitched, sloping ceiling, 350 mm insulation" + PITCHED_SLOPING_CEILING_400MM = "Pitched, sloping ceiling, 400 mm insulation" + PITCHED_SLOPING_CEILING_400_PLUS = "Pitched, sloping ceiling, 400+ mm insulation" + ROOF_ROOM_INSULATED = "Roof room(s), insulated" ROOF_ROOM_INSULATED_ASSUMED = "Roof room(s), insulated (assumed)" ROOF_ROOM_LIMITED_INSULATION = "Roof room(s), limited insulation"