From d38ec808bfa72e42514a11249228d4499a523bd2 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 2 Feb 2026 14:58:54 +0000 Subject: [PATCH] added flat_insulated_efficiency_thickness --- backend/onboarders/epc_descriptions.py | 27 +++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/backend/onboarders/epc_descriptions.py b/backend/onboarders/epc_descriptions.py index e9b770fd..a92565d1 100644 --- a/backend/onboarders/epc_descriptions.py +++ b/backend/onboarders/epc_descriptions.py @@ -396,7 +396,32 @@ def flat_insulated_efficiency_age_band(age_band: EpcConstructionAgeBand) -> EpcE def flat_insulated_efficiency_thickness(insulation_thickness: int | None) -> EpcEfficiency: - pass + """ + 12mm -> Very Poor + 25mm - 50mm -> Poor + 75mm - 125mm -> Pitched, insulated, average + 150mm - 250mm -> good + 270mm+ -> very good + :param insulation_thickness: Insulation thickness in mm + :return: EpcEfficiency + """ + + if insulation_thickness is None: + raise ValueError("Insulation thickness is required for flat insulated efficiency calculation") + + if insulation_thickness >= 270: + return EpcEfficiency.VERY_GOOD + + if 150 <= insulation_thickness <= 250: + return EpcEfficiency.GOOD + + if 75 <= insulation_thickness <= 125: + return EpcEfficiency.AVERAGE + + if 25 <= insulation_thickness <= 50: + return EpcEfficiency.POOR + + return EpcEfficiency.VERY_POOR def loft_insulated_efficiency(age_band: EpcConstructionAgeBand) -> EpcEfficiency: