diff --git a/domain/sap10_calculator/rdsap/cert_to_inputs.py b/domain/sap10_calculator/rdsap/cert_to_inputs.py index 1cdfd98e..13bf41ee 100644 --- a/domain/sap10_calculator/rdsap/cert_to_inputs.py +++ b/domain/sap10_calculator/rdsap/cert_to_inputs.py @@ -6234,6 +6234,10 @@ _SAP_DESIGN_HEAT_LOSS_DELTA_T_K: Final[float] = 24.2 _HP_SPACE_HEATING_IN_USE_FACTOR_N3_6: Final[float] = 0.95 _HP_IN_USE_FACTOR_CRITERIA_MET: Final[float] = 0.95 _HP_IN_USE_FACTOR_CRITERIA_FAIL: Final[float] = 0.60 +# SAP 10.2 Appendix N3.7 (PDF p.109): the heat-pump water-heating efficiency +# (in-use factor × η_water) is "subject to a minimum efficiency of 100%" — +# below that the direct-electric backup governs. +_HP_WATER_HEATING_MIN_EFFICIENCY: Final[float] = 1.0 def _heat_pump_cylinder_meets_pcdb_criteria( @@ -6325,7 +6329,12 @@ def _heat_pump_apm_efficiencies( main_heating_efficiency = ( _HP_SPACE_HEATING_IN_USE_FACTOR_N3_6 * eta_space_1_pct / 100.0 ) - water_efficiency_pct = in_use_water * eta_water_3_pct / 100.0 + # N3.7: in-use factor × η_water, subject to a minimum efficiency of 100% + # (the direct-electric backup floors the heat pump's water heating). + water_efficiency_pct = max( + in_use_water * eta_water_3_pct / 100.0, + _HP_WATER_HEATING_MIN_EFFICIENCY, + ) return (main_heating_efficiency, water_efficiency_pct)