Pin uprn_10093116334 (full-SAP gas-combi bungalow): engine 81 vs Elmhurst 77

5th sibling full-SAP cert validated against Elmhurst (semi-detached bungalow,
same street/boiler PCDB 17505 as 10093116324). Engine 81 (lodged 82); Elmhurst
worksheet 77. The +4 is the documented full-SAP→RdSAP residual. Build verified
clean (storeys=1, no phantom conservatory). Worklist strategy note added.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Jun-te Kim 2026-06-17 09:32:57 +00:00
parent 3eb0022034
commit 317220beba
4 changed files with 23 additions and 1 deletions

View file

@ -26,6 +26,15 @@ UPRNs needed for end-to-end testing (also tracked in The 100 below).
**All 7 e2e UPRNs now map and produce engine SAP scores.** Schema coverage added this session: SAP-16.2, SAP-16.3 (reduced-field → RdSAP-17.1 path), SAP-17.0 (full-SAP → 17.1 path).
## Strategy note (2026-06-17)
Doing the **similar certs first** for speed: the `10093116xxx` series are all
2017 Emsworth new-builds (full-SAP, mains-gas combi, measured U-values), so the
Elmhurst assessment config (House/Semi or bungalow · band L · cavity/As-Built ·
pitched/Unknown roof · combi/no-cylinder) is reused per cert — each build is
fast. Pattern is rock-solid: engine ≈ lodged1, Elmhurst worksheet ≈ engine4/5
(documented full-SAP→RdSAP residual). Pin the engine value. DONE: 528/543/529/324.
Skip the 🚩 MVHR / 🚩 heat-pump-fuel and ⛔ sparse certs.
## The 100
- [x] 🔧 10093116528 — SAP-17.1 (full-SAP semi) · eng 82 / elm 81 · 🔧 air-perm AP50 fix: q50 Blower-Door routed to (18)=AP50/20 not the AP4/Pulse formula (was eng 78). Residual +1 = lodged-U vs RdSAP age-band-U; FGHRS (60031) omitted both sides. Worked-ref 10092973954 re-pinned 77→80 by same fix.
@ -70,7 +79,7 @@ UPRNs needed for end-to-end testing (also tracked in The 100 below).
- [ ] 10093049867 — SAP-17.0 · eng 81 / lodged 87
- [ ] 10093116336 — SAP-17.1 · eng 83 / lodged 84
- [ ] 100020235156 — SAP-16.2 · eng 75 / lodged 74
- [ ] 10093116334 — SAP-17.1 · eng 81 / lodged 82
- [x] 10093116334 — SAP-17.1 (2017 gas-combi semi-detached BUNGALOW, TFA 52, sibling of 324) · eng 81 / elm 77 (lodged 82) · PINNED engine 81. +4 = documented full-SAP→RdSAP residual (measured U + PCDB combi 17505 88.5% vs RdSAP band-L defaults + generic 84%). Build clean. No mapper change.
- [⛔] 10014314853 — SAP-16.3 · NOT MAPPABLE (ValueError: RdSapSchema17_1: missing required field )
- [ ] 10013924849 — RdSAP-21.0.1 · eng 82 / lodged 80
- [ ] 100062116493 — SAP-16.2 · eng 69 / lodged 68

View file

@ -203,6 +203,19 @@ _EXPECTATIONS: Final[tuple[RealCertExpectation, ...]] = (
cert_num="0455-3835-7888-9493-2531",
sap_score=79,
),
# UPRN 10093116334 — SAP-Schema-17.1, FULL-SAP 2017 mains-gas combi
# SEMI-DETACHED BUNGALOW (Emsworth, TFA 52 m²), sibling of 10093116324 (same
# street, same boiler PCDB 17505). Lodged 82; engine 81. Elmhurst worksheet 77
# (evidence saved). The +4 (81 vs 77) is the same documented full-SAP→RdSAP
# residual: engine uses the cert's measured U-values + PCDB combi 88.5%;
# Elmhurst forces RdSAP band-L defaults + generic 84% combi. Build verified
# clean (storeys=1, no phantom conservatory). PINNED to the observed 81.
RealCertExpectation(
schema="SAP-Schema-17.1",
sample="uprn_10093116334",
cert_num="8926-7436-5650-8360-6972",
sap_score=81,
),
# UPRN 10002468137 → cert 0215-2818-7357-9703-2145. RdSAP-Schema-17.1,
# all-electric high-heat-retention storage heaters on Economy 7, solid-
# brick uninsulated end-terrace. Validated against Elmhurst RdSAP10 on