From 72ccc920c5d8a5a56355b20407bfc90ca6743ba7 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 3 Jul 2026 16:32:58 +0000 Subject: [PATCH] =?UTF-8?q?Community-heating=20overrides=20default=20to=20?= =?UTF-8?q?Group=203=20control=202313=20=F0=9F=9F=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Per-axis choice (decided with Khalim): the kit axis concedes to the evidence (community schemes skew modern; lodged community certs are overwhelmingly thermostatted, none lodge 2301), the charging axis stays flat-rate — usage-linked billing is scheme paperwork an override cannot see. Co-Authored-By: Claude Opus 4.8 --- .../main_heating_system_overlay.py | 22 +++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/domain/epc/property_overlays/main_heating_system_overlay.py b/domain/epc/property_overlays/main_heating_system_overlay.py index 6d25d979c..243326cfd 100644 --- a/domain/epc/property_overlays/main_heating_system_overlay.py +++ b/domain/epc/property_overlays/main_heating_system_overlay.py @@ -185,14 +185,18 @@ _CONSERVATIVE_HEAT_PUMP_CONTROL = 2201 _HEAT_NETWORK_CATEGORY = 6 _HEAT_NETWORK_CODES = frozenset({301, 302, 303, 304}) _COMMUNITY_BOILER_CODES = frozenset({301, 302, 303}) -# SAP Table 4e Group 3 heat-network control: 2301 ("flat rate charging, no -# thermostatic control of room temperature") is the conservative default when -# the landlord named only the scheme. It is never-over-crediting on BOTH axes -# the control drives: the largest Group 3 temperature adjustment (+0.3 C, tied -# with 2302) and the worst Table 4c(3) charging factors (space 1.10, DHW 1.05 -# — an unobserved charging arrangement is never assumed usage-linked). The -# community mirror of storage 2401 / boiler 2101 / heat-pump 2201 (ADR-0053). -_CONSERVATIVE_HEAT_NETWORK_CONTROL = 2301 +# SAP Table 4e Group 3 heat-network control: 2313 ("flat rate charging, room +# thermostat and TRVs") is the default when the landlord named only the scheme +# — a per-axis choice (ADR-0053, decided with Khalim). KIT axis: community +# schemes skew modern and the portfolio's lodged community certs are +# overwhelmingly thermostatted (modal 2306; none lodge 2301), so a room +# thermostat + TRVs is the evidence-backed assumption (temperature adjustment +# 0.0). CHARGING axis: flat rate (Table 4c(3) space 1.05 / DHW 1.05) — the +# billing arrangement is scheme paperwork an override cannot see, so the +# usage-linked credit (1.0/1.0) is never assumed. An assessor-OBSERVED Group 3 +# control on the cert is kept in preference to this default (the overlay sets +# `keep_existing_heat_network_control`; the applicator honours it). +_DEFAULT_HEAT_NETWORK_CONTROL = 2313 _COMMUNITY_GAS_FUEL = 20 # SAP Table 4c full boiler-control code: programmer + room thermostat + TRVs. The @@ -324,7 +328,7 @@ def _control_for(code: int) -> Optional[int]: if code in _WET_HEAT_PUMP_CODES: return _CONSERVATIVE_HEAT_PUMP_CONTROL if code in _HEAT_NETWORK_CODES: - return _CONSERVATIVE_HEAT_NETWORK_CONTROL + return _DEFAULT_HEAT_NETWORK_CONTROL return None