mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-07-19 17:03:02 +00:00
Schema coverage (datatypes/epc/domain/mapper.py): - SAP-Schema-18.0.0: full-SAP shape ≡ 17.1 → from_sap_schema_17_1, no normalisation. - SAP-Schema-16.0: same reduced-field 16.x path; default the omitted `tenure` field in _normalize_sap_schema_16_x (metadata; SAP cascade never reads it). Genuinely sparse 16.x certs (missing core fabric fields) still fail loud. - Regression tests + sap_18_0_0.json / sap_16_0.json fixtures; 0 new pyright errors. Autonomous triage of the worklist (scripts/hyde/autonomous_run_findings.md): - Found + diagnosed 2 bugs (flagged, NOT fixed): (1) MAPPER — full-SAP openings lodged in mm read as m → multi-million-m2 windows → SAP clamps to 1 (uprn_ 10093117227 / 10090317693 / 10091636031); (2) CALCULATOR — database heat-pump fuel code 39 mis-priced as gas, over-rates ~14 (uprn_10093114053). - Most certs map within +/-4 of lodged. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2.9 KiB
2.9 KiB
Autonomous corpus run — findings for review (2026-06-16)
Triaged the full remaining worklist (~95 UPRNs): capture → map → engine SAP, flagging |eng−lodged| ≥ 8. Most certs map within ±4 of lodged.
✅ Schema coverage ADDED this run (low-risk, tested, committed)
- SAP-18.0.0 → full-SAP shape, dispatched to
from_sap_schema_17_1(no normalisation). Maps fine (e.g. 10094601287 → 80/lodged 84). - SAP-16.0 → same reduced-field 16.x path; only omitted
tenure, now defaulted in_normalize_sap_schema_16_x. Maps (100020933894 → 61/lodged 56). - (16.2/16.3/17.0 were added earlier in the session.)
⛔ Genuinely SPARSE 16.x certs (insufficient data — cannot score)
Missing 18 required fields incl. core fabric (glazed_area, window, door_count, habitable_room_count, multiple_glazing_type). Fail loud at from_dict (correct):
- uprn_10090844948 (16.3), uprn_10014314798 (16.2), uprn_10014314853 (16.3), uprn_10014314830 (16.2). These are minimal "reduced-data" lodgements.
🐞 BUGS FOUND (diagnosed; NOT fixed — for your review)
1. Opening dimensions in millimetres read as metres — MAPPER bug (SEVERE)
Full-SAP certs whose sap_building_parts[].sap_openings[] lodge width/height in
mm (mixed with metre rows in the same array) → the 17.1 mapper treats all as
metres → multi-million-m² windows → HTC in the millions → SAP clamps to 1.
- uprn_10093117227 (eng 1 / lodged 80): opening "Side Elevation" 2025×2100 (mm)
- uprn_10090317693 (eng 1 / lodged 88): 940×2100, 700×1500 (mm)
- uprn_10091636031 (eng 1 / lodged 85)
- Fix idea: sanitise
sap_openingsdims in_sap_17_1_windows/doors — any dimension > ~50 m is impossible → it's mm, ÷1000. Cleanly separates the mm rows (1000/2025/2100) from the m rows (3.06/3.6/1). Safe, high-value (3+ certs broken).
2. Heat-pump fuel code 39 mis-priced as gas — CALCULATOR bug
- uprn_10093114053 (eng 93 / lodged 79, +14): PCDB heat pump COP 3.33, fuel 39.
- Code 39 absent from
table_12.UNIT_PRICE_P_PER_KWH→ gas default 3.64p; CO2 factor correctly electricity (0.136). Inconsistent across price vs Table-12a. - Affects ALL database heat-pump certs (fuel 39). See memory
heat-pump-fuel-39-mispriced. Needs SAP-domain confirmation of the correct electricity tariff (standard 30 vs heat-pump) → not an autonomous fix.
⚠ MODERATE eng-vs-lodged gaps (not catastrophic — sample, for review)
Direction is mostly engine UNDER lodged on full-SAP (17.0/17.1) certs:
- −15: uprn_100090108846 (RdSAP-20, off-peak fuel 29), uprn_100061086424 (RdSAP-17.0)
- −12: uprn_10090343767 (17.0) · −9: uprn_10090341811, 10093386427 · +9: uprn_10090342180
- A spread of −6…−8 on 17.0/17.1. Likely a mix of the full-SAP→RdSAP residual and possibly more heat-pump-fuel cases. Worth a focused pass after the 2 bugs above.
NOT diagnosed individually
The ~70 within-±4 certs are not listed; they look healthy.