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: