mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-06-08 11:17:27 +00:00
docs: Thread 2 cost +4 closed by S0380.213 heat-network standing charge
Record the £120 standing-charge fix (Table 12 note (l) + §C3.2, case 14 (351)), the corrected diagnosis (standing charge, not cost scaling — the 4.24 p/kWh heat price was already right), the double-count avoidance, and the remaining ~7% demand over-count (SAP -2). Bump HEAD/baseline/next-slice. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
ee484d9f4a
commit
b9bbcecb42
1 changed files with 24 additions and 12 deletions
|
|
@ -6,13 +6,14 @@ state after closing the 0240 investigation and fixing the first of several
|
|||
API-mapper/cascade bugs the audit surfaced.
|
||||
|
||||
- **Branch:** `feature/per-cert-mapper-validation`
|
||||
- **HEAD:** `08dd0b4c` (S0380.212). Confirm with `git rev-parse HEAD`.
|
||||
- **Baseline:** `2384 passed, 1 skipped, 0 failed` (AGENT_GUIDE §4 suite command).
|
||||
- **HEAD:** `ee484d9f` (S0380.213). Confirm with `git rev-parse HEAD`.
|
||||
- **Baseline:** `2386 passed, 1 skipped, 0 failed` (AGENT_GUIDE §4 suite command).
|
||||
ALSO run `domain/sap10_ml/tests/` when touching `rdsap_uvalues.py` — 2 PRE-EXISTING
|
||||
stone-formula failures there, see Thread 1.
|
||||
- **Next slice number:** **S0380.213**.
|
||||
- **Open:** Thread 2 *cost* tail only — 9390 SAP +4 (heat-network cost missing
|
||||
1/heat_source_eff scaling). CO2/PE collision FIXED (S0380.212). Threads 1 + 3 **CLOSED**.
|
||||
- **Next slice number:** **S0380.214**.
|
||||
- **Open:** Thread 2 *demand* tail only — 9390 ~7% demand over-count (SAP -2, PE 220 vs
|
||||
205) = heat-source-efficiency-default / fabric residual. CO2/PE collision (S0380.212) +
|
||||
standing charge (S0380.213) FIXED. Threads 1 + 3 **CLOSED**.
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -25,6 +26,7 @@ API-mapper/cascade bugs the audit surfaced.
|
|||
| **S0380.210** | **CLOSED cert 0390** (Thread 3). Cavity wall "as built, **partial** insulation (assumed)" (type 4) was mis-routed to the Table 6 "Filled cavity" row (band F 0.40) → should be "Cavity as built" (band F 1.0). New `_cavity_described_as_filled` in `rdsap_uvalues.py` excludes "partial insulation" from the filled trigger (keeps "insulated (assumed)" → filled). SAP +7 → +0, PE −27.97 → +0.53, CO2 −2.71 → −0.12. Mirrors S0380.209 on the cavity path. |
|
||||
| **S0380.211** | **CLOSED Thread 1 (roof).** 0240 Ext1 vaulted (code 5) NI roof returned 0.68 (§5.11.4 50 mm) → should be Table 18 col (1) age-band (band J 0.16), matching 33 cohort-2 `ND` vaulted roofs. New `u_roof(is_sloping_ceiling=...)` flag threaded from heat_transmission (codes 5/8). 0240 PE +5.50 → +1.52, CO2 +0.28 → +0.07 (SAP 72). Also corrected the S0380.210 cavity unit test in `domain/sap10_ml/tests/` (suite-command gap — see Thread 1). |
|
||||
| **S0380.212** | **Thread 2 CO2/PE collision FIXED.** EPC fuel 20 = "mains gas (community)" collided with Table-12 biomass code 20 → community CO2 6.4× low. New `_heat_network_factor_fuel_code` translates 20→51 for heat-network mains only (5 sites: SH+HW CO2/PE/price). 9390 CO2 0.44→3.03 t (lodged 2.8), PE 204→220. Case-14-validated ((367) 0.2100 / (467) 1.1300). Cost +4 tail open. |
|
||||
| **S0380.213** | **Thread 2 cost +4 FIXED** via the heat-network standing charge. API community fuel 20 isn't a Table-32 gas code → `_is_gas_code` False → £0 standing (vs SAP 10.2 Table 12 note (l) £120; case 14 `(351)`=£120). New `_heat_network_standing_charge_gbp` (£120 full / £60 DHW-only, §C3.2) REPLACES the fuel standing for heat-network mains (no double-count; CH corpus stays £120). 9390 SAP +4 → -2 (exposes a ~7% demand over-count — follow-up). |
|
||||
|
||||
Both also carry a memory: [[project_case7_combi_exonerated]], [[project_as_built_insulated_assumed_bug]].
|
||||
|
||||
|
|
@ -125,12 +127,22 @@ the API-only register residual; 9390 is unpinned, retired P2.2 per ADR-0010 §10
|
|||
Summary path uses code 1 (no collision) → CH1-6 corpus untouched. Locked by 2 unit tests
|
||||
in `test_cert_to_inputs.py`.
|
||||
|
||||
**STILL OPEN — 9390 SAP +4 (separate cost-scaling gap):** the heat-network cost path
|
||||
(`_fuel_cost_gbp_per_kwh`, cert_to_inputs.py ~L1888) does NOT apply the
|
||||
`1/heat_source_eff` (1/0.80) scaling the CO2/PE paths do, so community fuel cost
|
||||
under-counts → SAP over-reads. Validate the fix against case 14's **10b fuel-cost block**
|
||||
(+ Table 32 note (l) £120 community standing charge). Run the heating-systems corpus after
|
||||
(touchy area, [[project_heating_systems_corpus]]).
|
||||
**Cost +4 — FIXED (S0380.213), via the standing charge (NOT cost scaling).** The earlier
|
||||
"missing 1/heat_source_eff cost scaling" hypothesis was WRONG: case 14's 10b block shows
|
||||
the heat price (`(340)`/`(307)` = 4.24 p/kWh) is applied to delivered heat, NOT scaled —
|
||||
and Table-32 code 51 already = 4.24 p/kWh (the price collision was harmless, 4.23≈4.24).
|
||||
The real gap was the **£120 heat-network standing charge** (SAP 10.2 Table 12 note (l) +
|
||||
§C3.2; case 14 `(351)` = £120): the API community fuel (20) isn't a Table-32 gas code so
|
||||
`_is_gas_code` returned False → £0 standing (the Summary path masks it via code 1). New
|
||||
`_heat_network_standing_charge_gbp` REPLACES the fuel standing for heat-network mains
|
||||
(£120 full / £60 DHW-only) — not additive, so the CH corpus (already £120 via the gas
|
||||
branch) isn't double-counted to £240. 9390 SAP +4 → **-2**.
|
||||
|
||||
**STILL OPEN — 9390 ~7% demand over-count (SAP -2):** the standing fix EXPOSED it — PE 220
|
||||
vs lodged 205, CO2 3.03 vs 2.8 all run ~7% high. Likely the heat-source-efficiency default
|
||||
(`_HEAT_NETWORK_HEAT_SOURCE_EFFICIENCY[301]=0.80`) being too low for 9390's actual scheme,
|
||||
or a fabric/demand difference. 9390 is API-only (no worksheet) + unpinned, so this is a
|
||||
low-priority residual; needs a 9390-specific efficiency/fabric investigation.
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -172,7 +184,7 @@ that test.
|
|||
| cert | SAP resid | diagnosis |
|
||||
|---|---|---|
|
||||
| 0390-2954-3640 | ~~+7~~ **+0** | **CLOSED S0380.210** — cavity partial-insulation → as-built row |
|
||||
| 9390-2722-3520 | +4 (unpinned) | **CO2/PE collision FIXED S0380.212** (CO2 0.44→3.03 t); SAP +4 cost-scaling tail open |
|
||||
| 9390-2722-3520 | −2 (unpinned) | **CO2/PE collision FIXED S0380.212** + **standing charge S0380.213** (SAP +4→−2); remaining ~7% demand over-count (heat-source-eff default?) |
|
||||
| 0240-0200-5706 | −1 | NOT a bug — unpreserved 2013+ pump; true SAP 72. Roof PE-pin tightened by **S0380.211** (PE +5.50 → +1.52) |
|
||||
| 2130-1033-4050 | +1 | minor fabric precision (multi-part solid-brick wall); low value |
|
||||
| 7536-3827-0600 | +1 | minor fabric precision (multi-bp D/L/F cavity); low value |
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue