mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-07-22 08:48:38 +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>
48 lines
2.9 KiB
Markdown
48 lines
2.9 KiB
Markdown
# 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_openings` dims 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.
|