From 0f091e3ab1b0ed511b84f7155d913fc670a045e6 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 3 Jul 2026 14:04:21 +0000 Subject: [PATCH] =?UTF-8?q?Record=20ADR-0052:=20electric=20boiler/CPSU=20o?= =?UTF-8?q?verrides=20drag=20category=202=20+=20conservative=20Group=201?= =?UTF-8?q?=20control=20=F0=9F=9F=AA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit #1444 Parts A+B for codes 191/192, diagnosed on portfolio 796: 30 of the first 40 live overrides inherit a replaced system's category (6/4/7) — suppressing HHRSH or billing direct-acting heat as storage. Co-Authored-By: Claude Opus 4.8 --- ...gory-2-and-conservative-group-1-control.md | 88 +++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 docs/adr/0052-electric-boiler-and-cpsu-overrides-drag-category-2-and-conservative-group-1-control.md diff --git a/docs/adr/0052-electric-boiler-and-cpsu-overrides-drag-category-2-and-conservative-group-1-control.md b/docs/adr/0052-electric-boiler-and-cpsu-overrides-drag-category-2-and-conservative-group-1-control.md new file mode 100644 index 000000000..170e40be5 --- /dev/null +++ b/docs/adr/0052-electric-boiler-and-cpsu-overrides-drag-category-2-and-conservative-group-1-control.md @@ -0,0 +1,88 @@ +# Electric boiler and CPSU overrides drag category 2 and the conservative Group 1 control + +## Status + +accepted + +## Context + +[ADR-0048](0048-heating-override-forces-category-and-control-defers-fuel-and-meter.md) +requires a system-replacing heating override to emit a complete companion set +(category and control archetype-forced, never inherited) and deferred the +electric boiler / CPSU expansion; [ADR-0050](0050-electric-underfloor-override-drags-category-8-and-conservative-group-7-control.md) +completed the underfloor half. This ADR completes the electric-boiler half +(#1444 Parts A+B for codes **191/192** — the archetypes "Direct-acting +electric", "Electric boiler", "Electric CPSU"). + +A portfolio-796 scan of the 126 live 191/192 overrides found **30 of the first +40 in a suppressed or mis-billed state** from inherited companions: + +- **Inherited category 6** (replaced community heating — the bulk): the heating + generator's `is_heat_network_main` gate reads the dwelling as a heat network, + so the **HHRSH bundle is never offered** — only tune-ups. Same class as + ADR-0050's evidence property. +- **Inherited category 4** (replaced heat pump — property 711954): *every* + heating bundle suppressed. +- **Inherited category 7** (replaced storage heaters — property 721912): the + SAP 10.2 Table 12a resolver's category-7 branch bills the direct-acting + boiler as storage — **100% at the off-peak low rate** — the precise + ADR-0048 room-heater mis-billing, resurfaced. +- Stale controls ride along (community 23xx, storage 2401, room-heater 2603), + applying the wrong Table 4e temperature adjustment. + +## Decision + +The electric-boiler codes (SAP Table 4a **191** direct-acting electric boiler, +**192** electric CPSU) join the forced-companion branches of +`main_heating_system_overlay`: + +1. **Category 2** ("boiler system with radiators or underfloor heating") in + `_category_for` — deterministic from SAP Table 4a; the same category the + gas-boiler overlay already stamps. Table 12a billing for these codes is + code-keyed (191 → `DIRECT_ACTING_ELECTRIC_BOILER`, 192 → the deliberate + Appendix-F fallback), so the category change *removes* stale-category + misrouting rather than selecting a new billing row. +2. **Control 2101** (SAP Table 4e **Group 1**, "no time or thermostatic control + of room temperature", **+0.6 °C**) in `_control_for` — the conservative + default within the group the category fixes: the largest Group 1 + mean-internal-temperature adjustment, so an unobserved control is never + over-credited (the boiler mirror of storage 2401 / room-heater 2601 / + underfloor 2701). This **supersedes the earlier "direct-acting electric + drags no control" choice** — code 191 is a wet Group-1 boiler, and leaving + the control unset inherits the replaced system's (the ADR-0048 bug class), + which is strictly worse than a conservative assumption. + + Deliberate asymmetry with gas boilers: the gas archetypes force **2106** + (full modern controls) because they also assume a modern condensing install + (ADR-0035, decided with Khalim) — the whole system is modelled modern. The + electric-boiler archetypes describe an *existing* system of unknown vintage + modelled at code 191/192's intrinsic efficiency, so the conservative + default applies. + +Fuel (electricity 29, ADR-0045) and meter (192 off-peak Dual via §12; 191 +Single) were already correct and are unchanged. A forced 2101 also makes the +system tune-up options available (2101 is improvable) — a coherent cheap lever +for these dwellings. + +## Consequences + +- The suppressed cohort regains its heating pathway: category 6/4 inheritors + become HHRSH-eligible (verified live: 711954 gains the HHRSH option), and + category-7 inheritors stop billing direct-acting heat at the all-night low + rate (721912). +- The "incomplete companion set" error log no longer fires for + Direct-acting electric / Electric boiler / Electric CPSU. Remaining gap-log + archetypes (#1444): heat pumps (Group 2 control), community heating + (Group 3 control — interacts with the Table 4c(3) charging factor, needs an + accredited worksheet), then the log flips to a raise (Part C). +- Overrides re-model with a different (usually lower) baseline where a stale + category was over-crediting — an accuracy correction, not a regression. + +### Alternatives rejected + +- **Keep "no control" for direct-acting electric.** Rejected: `None` is not + "no control assumed" — by last-wins composition it means *inherit the + replaced system's control*, the silent mis-rating ADR-0048 exists to stop. +- **Force modern controls (2106) like the gas boilers.** Rejected: nothing in + the electric-boiler archetype implies a modern install; assuming full + controls over-credits every dwelling whose controls were never observed.