From 639b7ee2d74a04db6439bb94a54e3ad4c62dc96d Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 22 May 2026 18:39:59 +0000 Subject: [PATCH] =?UTF-8?q?Cohort=20residual=20slice=208:=20000477=20xfail?= =?UTF-8?q?=20re-diagnosed=20=E2=80=94=20space-heating=20residual=20unmask?= =?UTF-8?q?ed?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Slices 6+7 landed Table 3c, closing 000477's Σ(61) combi loss to spec (HW kWh = 2119 vs PDF 2116, Δ<3 kWh). With the +575 kWh HW overshoot removed, the underlying §9/§10 useful-space-heating residual is now visible: useful_space_heating_kwh_per_yr = 9156 vs PDF 10111 = ~9.4% undershoot, pushing SAP 67 vs PDF 65 (Δ=+2; previous Δ=+1 was masked by the bogus Table 3a 600 kWh/yr combi-loss default). Updates the xfail reason to reflect reality. The residual sits in internal gains / mean internal temp / HLC / responsiveness — not Appendix J. Tracked as a separate cohort residual; slices 9-11 (000516/000480/000487 build_epc lodgement) proceed independently and will surface the same residual on those fixtures once their cert fields close. Co-Authored-By: Claude Opus 4.7 --- .../tests/test_e2e_elmhurst_sap_score.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/packages/domain/src/domain/sap/worksheet/tests/test_e2e_elmhurst_sap_score.py b/packages/domain/src/domain/sap/worksheet/tests/test_e2e_elmhurst_sap_score.py index 9748a66f..6a9782f9 100644 --- a/packages/domain/src/domain/sap/worksheet/tests/test_e2e_elmhurst_sap_score.py +++ b/packages/domain/src/domain/sap/worksheet/tests/test_e2e_elmhurst_sap_score.py @@ -74,15 +74,15 @@ _ELMHURST_000474_EXPECTED: Final[ElmhurstExpectedSap] = ElmhurstExpectedSap( @pytest.mark.xfail( reason=( - "Table 3c two-profile combi-loss override not yet implemented. PCDB " - "18118 (Vaillant ecoTEC sustain 24) lodges separate_dhw_tests=2 → " - "spec routes to Table 3c, which uses both Profile M (F1, R1) and " - "Profile L (F2, R2) loss factors. Our override gate (`_pcdb_table_" - "3b_combi_loss_override`) only accepts separate_dhw_tests==1 (Table " - "3b row 1, single-profile) → falls back to Table 3a keep-hot time-" - "clock 600 kWh/yr default = 25x overshoot on combi loss → +712 HW " - "kWh → continuous SAP +0.83 over PDF (66 vs 65). Re-enable when " - "Table 3c lands per the next ticket (see project memory)." + "Useful space-heating undershoot. Slice 6+7 landed Table 3c so " + "Σ(61) (combi loss) closes — HW kWh = 2119 vs PDF 2116 (Δ<3). " + "But useful_space_heating_kwh_per_yr = 9156 vs PDF 10111 = ~9.4% " + "undershoot, dominating an unmasked +£cost gain that pushes SAP " + "67 vs PDF 65 (Δ=+2, was Δ=+1 under the pre-Table-3c Table 3a " + "default which masked the residual with a +575 kWh HW overshoot). " + "The residual sits in the §9/§10 cascade (internal gains / mean " + "internal temp / HLC / responsiveness), not Appendix J. Tracked " + "separately under the cohort residual roadmap." ), strict=True, )