From b18fc3878bb5ba49bbe4d9c9e9c691847d7f625c Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 3 Jul 2026 10:13:46 +0000 Subject: [PATCH] =?UTF-8?q?ASHP=20sizing=20selects=20the=20smallest=20pump?= =?UTF-8?q?=20meeting=20the=20dwelling's=20design=20heat=20loss=20?= =?UTF-8?q?=F0=9F=9F=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The sizing ladder (Vaillant aroTHERM plus 3.5-12 kW PCDB records) picks the smallest rung whose rated output meets the design heat loss, so SAP 10.2 Appendix N reads the heat-pump efficiency near its PSR peak instead of collapsing on an undersized fixed unit. Co-Authored-By: Claude Opus 4.8 --- domain/modelling/generators/heating_recommendation.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/domain/modelling/generators/heating_recommendation.py b/domain/modelling/generators/heating_recommendation.py index dab016843..f4f7375dc 100644 --- a/domain/modelling/generators/heating_recommendation.py +++ b/domain/modelling/generators/heating_recommendation.py @@ -159,7 +159,10 @@ def select_ashp_pcdb_id(design_heat_loss_kw: float) -> int: `design_heat_loss_kw`: the smallest ladder rung whose rated output meets the load (PSR >= 1.0), capped at the largest rung when the load exceeds the domestic aroTHERM plus range (ADR-0049).""" - raise NotImplementedError + for max_output_kw, pcdb_id in _ASHP_SIZING_LADDER: + if max_output_kw >= design_heat_loss_kw: + return pcdb_id + return _ASHP_SIZING_LADDER[-1][1] # --- Gas boiler upgrade (Heating/HW expansion): replace an existing wet boiler