Electric underfloor override drags the conservative Group 7 control (2701) 🟩

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Khalim Conn-Kowlessar 2026-07-03 11:37:19 +00:00
parent 566374bf34
commit 07362b357a

View file

@ -140,6 +140,12 @@ _ELECTRIC_UNDERFLOOR_CODES = frozenset({421, 422, 424})
# generator's `is_heat_network_main` gate read as community heating: no heating
# upgrade was offered at all and the baseline mis-rated 51 vs 67 (ADR-0050).
_UNDERFLOOR_CATEGORY = 8
# SAP Table 4e Group 7 underfloor control: 2701 ("no time or thermostatic
# control of room temperature", +0.3 C) is the conservative default when the
# landlord named only the system — the largest mean-internal-temperature
# adjustment in the group, so an unobserved control is never over-credited
# (the underfloor mirror of storage-manual 2401 and room-heater 2601, ADR-0050).
_UNDERFLOOR_CONTROL = 2701
# Heat pumps (SAP Table 4a 211-224 wet, 521-527 warm-air) are category 4 and
# unambiguously electric (natural fuel 29). Modellable on the default code's SPF
@ -278,6 +284,8 @@ def _control_for(code: int) -> Optional[int]:
return _FULL_BOILER_CONTROL
if code in _CATEGORY_10_ROOM_HEATER_CODES or code in _ELECTRIC_ROOM_HEATER_CODES:
return _ROOM_HEATER_CONTROL
if code in _ELECTRIC_UNDERFLOOR_CODES:
return _UNDERFLOOR_CONTROL
return None