Model/scripts/hyde/unknowns_review.md
Jun-te Kim 36b8b7a939 Add Hyde portfolio-796 unknowns review doc for Khalim sign-off 📝
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-19 19:57:34 +00:00

2.9 KiB

Hyde portfolio 796 — UNKNOWN overrides for review

After ChatGPT classification, 19 distinct descriptions did not auto-resolve (out of ~440 distinct across all components). Grouped below with a proposed value (must be one of the allowed enum values) + the row count it affects. Nothing is written to the DB until these are confirmed.

1. construction_age_band — 29,829 rows (DETERMINISTIC, no judgement)

The classifier didn't extract the band letter in batch, but the band IS the leading letter, so these are mapped mechanically ("D: 1950-1966"D). Just confirm the approach.

description → band rows
D: 1950-1966 D 4,978
K: 2007-2011 K 4,201
I: 1996-2002 I 3,708
B: 1900-1929 B 3,222
H: 1991-1995 H 2,747
E: 1967-1975 E 2,479
J: 2003-2006 J 2,221
F: 1976-1982 F 2,071
C: 1930-1949 C 1,840
G: 1983-1990 G 1,615
A: pre-1900 A 615
M: 2023 onwards M 132

2. roof_type (flat roofs) — 1,473 rows (NEEDS KHALIM'S CALL)

Flat-roof insulation drives the SAP roof U-value. Flat: As Built (1,172) + Flat: Unknown (194) are the load-bearing decision — proposed conservatively as no insulation (assumed).

description proposed value rows alt options
Flat: As Built Flat, no insulation (assumed) 1,172 Flat, insulated (assumed) / Flat, limited insulation (assumed) / Flat, no insulation (assumed)
Flat: Unknown Flat, no insulation (assumed) 194 Flat, insulated (assumed) / Flat, limited insulation (assumed) / Flat, no insulation (assumed)
Flat: 150mm Flat, insulated 59 Flat, insulated (assumed) / Flat, limited insulation (assumed) / Flat, no insulation (assumed)
Flat: 100mm Flat, insulated 32 Flat, insulated (assumed) / Flat, limited insulation (assumed) / Flat, no insulation (assumed)
Flat: 50mm Flat, limited insulation 13 Flat, insulated (assumed) / Flat, limited insulation (assumed) / Flat, no insulation (assumed)
SameDwellingAbove (same dwelling above) 3 Flat, insulated (assumed) / Flat, limited insulation (assumed) / Flat, no insulation (assumed)

3. wall_type — 7 rows

description proposed value rows
TimberFrame: Internal Timber frame, with additional insulation 7

How to apply after review

Edit the corrected_value column of overrides_edits.csv, then:

python scripts/hyde/build_property_overrides.py validate    --edits overrides_edits.csv
python scripts/hyde/build_property_overrides.py apply-edits --edits overrides_edits.csv --portfolio-id 796 --apply
python scripts/hyde/build_property_overrides.py write       --excel scripts/hyde/hyde_property_overrides.xlsx --portfolio-id 796 --apply

Note: a proper fix for the age classifier (a prompt hint so the production lambda extracts the band letter) is a separate follow-up; these script edits handle this run.