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

2.9 KiB
Raw Blame History

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.