Model/scripts/hyde/autonomous_run_findings.md
Jun-te Kim d41798f1c1 Add SAP-18.0.0 + SAP-16.0 schema coverage; autonomous-run triage findings
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>
2026-06-16 20:04:43 +00:00

48 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Autonomous corpus run — findings for review (2026-06-16)
Triaged the full remaining worklist (~95 UPRNs): capture → map → engine SAP,
flagging |englodged| ≥ 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.