Accrue Table 3 primary-circuit loss for water-only heat-network cylinders 🟩

SAP 10.2 §4.3 (p.24) scopes itself to "where hot water is provided by a
heat network" and requires the Table 3 primary loss, so the gate keys on
the DHW source. Checked off the WHC before the main-keyed branches so a
non-boiler space main (cert 9093's warm air) can't zero it out.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Daniel Roth 2026-07-15 10:28:19 +00:00
parent d10b5210c6
commit ef44a744a3

View file

@ -6592,6 +6592,18 @@ def _primary_loss_applies(
# kWh/yr — zero before this branch.
if water_heating_code in _WATER_HEATING_BOILER_CIRCULATOR_CODES:
return True
# SAP 10.2 §4.3 "Heat networks" (PDF p.24), scoped "Where hot water is
# provided by a heat network": "Primary circuit loss for insulated
# pipework and cylinderstat should be included (see Table 3)." A water-
# ONLY community scheme (WHC 950/951/952) feeds the dwelling-side
# cylinder via primary pipework from the network connection whatever
# the space main is, so the loss applies exactly as for heat-network
# mains with WHC 901/902/914 (below). Checked off `water_heating_code`
# before the main-keyed branches so a non-boiler space main (warm air,
# HP, direct-acting electric) can't zero it out — cert 9093 is the
# cohort case (whc 950 + warm-air main 502).
if water_heating_code in _WATER_HEAT_NETWORK_ONLY_CODES:
return True
# SAP 10.2 Table 3 (PDF p.160) zero-loss list names "Direct-acting
# electric boiler" verbatim. RdSAP 10 §12 (p.62) classifies SAP code
# 191 as the direct-acting electric boiler: its cylinder is immersion-