From 75ef250ec84ec256255f748cc867698d72b455f9 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sun, 7 Jun 2026 21:53:25 +0000 Subject: [PATCH] =?UTF-8?q?docs:=20session-4=20handover=20=E2=80=94=20expo?= =?UTF-8?q?sed-floor=20fix=20shipped,=20floor-3=20enum=20unconfirmed?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Record that profiler lead #1 (floor_codes=3) is not a clean single cause (bimodal + confounded), that the paired worksheet certs confirm only codes 1/6/7 (code 3 unmapped → needs a worksheet for 0380-2087), and that immersion_type=2 / main_control=2107 / roof_codes=1 are scatter, not dispatch bugs. The exposed-floor-on-flats fix (§3.12) shipped at b40e0f67. Co-Authored-By: Claude Opus 4.8 --- docs/HANDOVER_API_PROFILING.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/docs/HANDOVER_API_PROFILING.md b/docs/HANDOVER_API_PROFILING.md index b3491452..e3b9e6d4 100644 --- a/docs/HANDOVER_API_PROFILING.md +++ b/docs/HANDOVER_API_PROFILING.md @@ -39,6 +39,27 @@ profile-surfaced buckets below. (4)(5)(6) cleared **all 4 raises** — eval now has zero raises. 7. `(profiler)` **`scripts/profile_api_error.py`** — the new diagnostic (below). +## SESSION-4 UPDATE (HEAD `b40e0f67`) — read before re-working the leads below +- **Lead #1 `floor_codes=3` is NOT clean — worked it, enum UNCONFIRMED.** It's bimodal + (mid-floor flats over-rate, top-floor maisonettes 0434/0761 want ~zero floor loss) and + confounded (9763 +19.48 is a WALL bug: walls=8.19 W/K for 59.8 m²). The 48 paired + API+Summary worksheet certs (`sap worksheets/Additional data with api/` + `additional with + api 2/`, folder=API cert id) confirm **code 7↔"G Ground", code 1↔"E To external air", + code 6↔no-heat-loss** but **NONE cover code 2 or 3** → code 3 is genuinely unmapped. + RdSAP §3.12 (p.25) flat floor categories: exposed→Table20, semi-exposed(unheated)→Table20, + above-partial(non-domestic)→0.7, ground→ISO13370. **NEXT: get a worksheet for + `0380-2087-8190-2996-3075`** (mid-floor flat, single BP, roof correctly party so the floor + is the ONLY heat-loss unknown; lodged 66, we +3.71). Tried Table-20 for codes 2/3: overshoots + (9494 +0.56→-3.67), reverted — and picking ground-U-vs-Table20 by eval score is a data-fit. +- **SHIPPED `b40e0f67`:** exposed-floor-on-flats (code 1) area fix — §3.12. A flat's code-1 + floor was area-zeroed by `_dwelling_exposure`; now the per-BP `is_exposed_floor` overrides the + flat suppression upward (mirrors the "another dwelling below" party override). 45.1→45.3%. +- **Leads re-checked, NOT clean:** `immersion_type=2` (+1.86) is high-scatter (mean|err| 3.71, + bidirectional). `main_control=2107` (+1.63) is correctly mapped ("Programmer, TRVs and bypass" + type 2 Table 4c(2)) — over-rate is diffuse gas-boiler/flat-fabric, not a dispatch bug. + `roof_codes=1` broad bucket is mean −0.15 (the −1.78 was top-floor-electric-flat outliers + −29/−25). Remaining gains need per-cert worksheets (start code-3) or the unsupported-schema ticket. + ## KEY INSIGHT (load-bearing, from the user) **The gov EPC API JSON is the published OUTPUT of RdSAP software (Elmhurst), not its input.** So any API field Elmhurst doesn't expose as an *input* is register metadata the RdSAP10 method