Community-heating overrides default to Group 3 control 2313 🟥

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Khalim Conn-Kowlessar 2026-07-03 16:32:15 +00:00
parent 77110f2260
commit 2bfda711d8

View file

@ -115,24 +115,26 @@ def test_overlay_raises_on_an_incomplete_companion_set(
"main_heating_value",
["Community heating, boilers", "Community heating, CHP and boilers"],
)
def test_community_heating_drags_the_conservative_group_3_control(
def test_community_heating_drags_the_default_group_3_control(
main_heating_value: str,
) -> None:
# The landlord names the scheme, not its control or charging arrangement.
# The conservative Table 4e Group 3 default is 2301 ("flat rate charging,
# no thermostatic control of room temperature"): the largest Group 3
# temperature adjustment (+0.3 C) AND the worst Table 4c(3) charging
# factors (space 1.10, DHW 1.05) — an unobserved control is never
# over-credited and an unobserved charging arrangement is never assumed
# usage-linked (ADR-0053). Leaving it unset inherits the replaced system's
# control instead (the ADR-0048 bug class).
# The Table 4e Group 3 default is 2313 ("flat rate charging, room
# thermostat and TRVs"): community schemes skew modern and the portfolio's
# own lodged community certs are overwhelmingly thermostatted (modal 2306;
# none lodge 2301), so the KIT axis concedes to the evidence — while the
# CHARGING axis stays flat-rate (space 1.05 / DHW 1.05): the billing
# arrangement is scheme paperwork an override genuinely cannot see, so
# usage-linked (1.0/1.0) is never assumed (ADR-0053, decided with Khalim).
# Leaving the control unset inherits the replaced system's instead (the
# ADR-0048 bug class).
# Act
simulation = main_heating_overlay_for(main_heating_value, 0)
# Assert — SAP Table 4e Group 3 conservative heat-network control.
# Assert — SAP Table 4e Group 3 default heat-network control.
assert simulation is not None
assert simulation.heating is not None
assert simulation.heating.main_heating_control == 2301
assert simulation.heating.main_heating_control == 2313
def test_air_source_heat_pump_drags_the_conservative_group_2_control() -> None: