From a4dfb7a021c3be02ff68361a5ddd9946be75b2a7 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 21 May 2026 07:09:23 +0000 Subject: [PATCH] =?UTF-8?q?docs:=20gap-list=20entry=20for=20boiler/HP=20Ma?= =?UTF-8?q?nufacturer=20efficiency=20(PCDB)=20=E2=80=94=20000490=20+3=20SA?= =?UTF-8?q?P=20driver?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Surfaces the documented driver behind the 000490 e2e overshoot (inputs.main_heating_efficiency = 0.80 vs PDF Vaillant Ecotec Pro 0.882) as item #1 in the Prioritised gap list. Per ADR-0010 §4 this is a prerequisite — not a section-sweep slice — so closing the 000490 SAP gap waits for the PCDB seam. Co-Authored-By: Claude Opus 4.7 --- docs/sap-spec/SPEC_COVERAGE.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/docs/sap-spec/SPEC_COVERAGE.md b/docs/sap-spec/SPEC_COVERAGE.md index 6c9d01a9..e0a9b737 100644 --- a/docs/sap-spec/SPEC_COVERAGE.md +++ b/docs/sap-spec/SPEC_COVERAGE.md @@ -53,12 +53,13 @@ The canonical SAP10.2 algorithm lives in [`2026-05-19-17-18 RdSap10Worksheet.xls ## Prioritised gap list (by likely MAE impact) -1. **Table 11 Secondary heating allocation** — most boiler-main certs allocate 10% of space heating to a secondary system (often a less-efficient room heater on a different fuel). We model 0%. Likely +1-2 SAP-point bias on affected certs. -2. **Wind-shelter factor on infiltration** (§2 worksheet lines 19-21) — multiplies infiltration by `1 - 0.075 × sheltered_sides`. We have no shelter input; assume 2 sheltered sides default. Net effect on infiltration ACH probably ~10%. -3. **Table 12a high-rate fraction for off-peak dwellings** — we currently bill 100% of E7 space heating at the low rate. Real spec says e.g. heat pumps on 7h tariff at 80% high-rate. Affects ~5% of certs. -4. **Cylinder-loss factor cascade** — currently uses simplified buckets in `domain.ml.demand._STORAGE_LOSS_FACTOR`. Spec has more precise interpolation rules from cylinder volume + insulation thickness. -5. **Standing charges in cost** — Table 12 note (a) gives the rule for when standing charges are included (energy use vs rating). May affect bias. -6. **Per-junction thermal bridging (Table R2)** — only relevant when assessor lodged junction-count data, otherwise global y is the spec answer for RdSAP-driven assessments. +1. **Boiler / heat-pump efficiency Manufacturer override (PCDB integration)** — `MainHeatingDetail` lodges the PCDB pointer (`main_heating_index_number`) but no scalar efficiency. With `NoOpPcdbLookup` (ADR-0009 grill outcome #1) still in place, `cert_to_inputs` falls back to the SAP10 Table 4a category default (typically 0.80 for gas boilers, SCOP 2.30 for heat pumps) on every cert. Per [ADR-0010 §4](../adr/0010-sap10-calculator-spec-target-and-validation.md#4-pcdb-integration-is-promoted-from-session-c-to-a-prerequisite) this accounts for ~19 SAP points of MAE on heat-pump certs and most per-cert variance on the 78 % of gas-boiler certs lodging `main_heating_data_source=1` (PCDB-typical 0.88–0.94 vs 0.80 default). Directly visible on 000490 e2e: `inputs.main_heating_efficiency = 0.80` vs PDF Vaillant Ecotec Pro Manufacturer-declared 0.882 — drives +3 SAP overshoot via the `q_useful / η` cascade in both space heating and HW. Closing requires a real PCDB CSV ingest + `PcdbLookup` Protocol impl + precedence wiring in `cert_to_inputs._main_heating_efficiency` and `_water_efficiency_with_category_inherit`. Promoted to prerequisite under ADR-0010, not a section-sweep slice. +2. **Table 11 Secondary heating allocation** — most boiler-main certs allocate 10% of space heating to a secondary system (often a less-efficient room heater on a different fuel). We model 0%. Likely +1-2 SAP-point bias on affected certs. +3. **Wind-shelter factor on infiltration** (§2 worksheet lines 19-21) — multiplies infiltration by `1 - 0.075 × sheltered_sides`. We have no shelter input; assume 2 sheltered sides default. Net effect on infiltration ACH probably ~10%. +4. **Table 12a high-rate fraction for off-peak dwellings** — we currently bill 100% of E7 space heating at the low rate. Real spec says e.g. heat pumps on 7h tariff at 80% high-rate. Affects ~5% of certs. +5. **Cylinder-loss factor cascade** — currently uses simplified buckets in `domain.ml.demand._STORAGE_LOSS_FACTOR`. Spec has more precise interpolation rules from cylinder volume + insulation thickness. +6. **Standing charges in cost** — Table 12 note (a) gives the rule for when standing charges are included (energy use vs rating). May affect bias. +7. **Per-junction thermal bridging (Table R2)** — only relevant when assessor lodged junction-count data, otherwise global y is the spec answer for RdSAP-driven assessments. Status now: 100-cert MAE 4.49, 300-cert MAE 5.45, bias near zero (±0.2). Worksheet-driven phase begins with **Secondary heating Table 11** as the next slice.