Model/docs/sap-spec/pcdb_table_506_heat_interface_units.jsonl
Khalim Conn-Kowlessar fe04cd3a35 pcdb slice 1: pcdb10.dat ETL → 8 per-table NDJSON files + parser + 8 tests
Parser/ETL for BRE PCDB pcdb10.dat (April 2026 revision). domain.sap.tables.pcdb.parser exposes parse_table_105 (typed GasOilBoilerRecord with brand/model/winter+summer+comparative-HW efficiency/output kW/final year) plus parse_table_raw for generic positional ingestion (pcdb_id + raw row only). etl.py runs the full ETL: reads pcdb10.dat as latin-1, writes per-table .jsonl files under docs/sap-spec/. Idempotent; runnable via PYTHONPATH=packages/domain/src python -m domain.sap.tables.pcdb.etl.

Per Q1=D grilling: all 8 tables of interest ingested — 105 (Gas/Oil Boilers, typed) plus 122/143/313/353/362/391/506 (raw). Per-table typed refinement deferred to the follow-up slices that wire each table's cert-side cascade. Per Q3=B: typed fields decode against ncm-pcdb.org.uk ground-truth records (Baxi 000098 + Potterton 000619 + Saunier Duval 000732 verified by user); full raw row preserved on every record for forensics. Per Q2 user choice: NDJSON .jsonl format chosen over indented JSON to keep diff-friendliness while halving file size (17MB total vs 31MB pretty-printed).

Edge cases handled: latin-1 encoding (manufacturer addresses carry the degree sign), `'obsolete'` status string where a year would otherwise live, `'>70kW'` range indicator on output-power fields — non-numeric values fall to None with the raw string preserved on `raw`.

Slice 2 lands the domain.sap.tables.pcdb runtime lookup module (per-table by-pcdb-id dicts loaded at import time). Slice 3 wires Table 105 into cert_to_inputs.main_heating_efficiency / water_efficiency precedence cascades per Q5=B (space heating + water heating scalar override; equation D1 monthly + Appendix N HP factor + FGHRS/WWHRS/HIU deferred).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-21 09:43:41 +00:00

14 lines
2.4 KiB
JSON
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{"pcdb_id": 400001, "raw": ["400001", "300903", "0", "2021/Aug/09 11:54", "", "SAP Default products", "HIU", "Indirect HIU", "2021", "current", "1", "1.44", "", "", "", "", ""]}
{"pcdb_id": 400002, "raw": ["400002", "300903", "0", "2021/Aug/09 11:54", "", "SAP Default products", "HIU", "Direct HIU", "2021", "current", "2", "1.44", "", "", "", "", ""]}
{"pcdb_id": 400003, "raw": ["400003", "020101", "0", "2025/Mar/05 11:31", "Baxi Heating UK Ltd", "Baxi", " AquaHeat", "HI / HWI – 4/50", "2024", "current", "1", "0.88", "26", "", "0.07"]}
{"pcdb_id": 400004, "raw": ["400004", "020101", "0", "2025/Mar/05 11:31", "Baxi Heating UK Ltd", "Baxi", " AquaHeat", "HI / HWI – 14/50", "2024", "current", "1", "0.88", "26", "", "0.07"]}
{"pcdb_id": 400005, "raw": ["400005", "020051", "0", "2025/May/30 11:00", "Bosch Thermotechnik GmbH", "Bosch", "Flow 8500", "40 H", "2023", "current", "1", "0.77", "28", "", "0.06"]}
{"pcdb_id": 400006, "raw": ["400006", "020051", "0", "2025/May/30 11:00", "Bosch Thermotechnik GmbH", "Bosch", "Flow 8500", "50 H", "2023", "current", "1", "0.63", "28", "", "0.06"]}
{"pcdb_id": 400007, "raw": ["400007", "020051", "0", "2025/May/30 11:00", "Bosch Thermotechnik GmbH", "Bosch", "Flow 8500", "60 H", "2023", "current", "1", "0.8", "29", "", "0.06"]}
{"pcdb_id": 400008, "raw": ["400008", "020255", "0", "2025/May/30 11:00", "YGHP", "YGHP", "Indirect V2", "199P35007", "2023", "current", "1", "0.78", "28", "", "0.04"]}
{"pcdb_id": 400009, "raw": ["400009", "020101", "0", "2025/Jul/31 11:00", "Baxi Heating UK Ltd", "Baxi", " AquaHeat", "HD / HWI – 12/50", "2025", "current", "2", "0.55", "27", "", "0.06"]}
{"pcdb_id": 400010, "raw": ["400010", "020294", "0", "2025/Sep/12 11:00", "Switch2", "Switch2", " ICON Connected HIU", "", "2024", "current", "1", "0.9", "27", "", "0.06"]}
{"pcdb_id": 400011, "raw": ["400011", "300903", "0", "2025/Oct/01 11:00", "", "SAP 10 3 Default products", "HIU", "Indirect HIU", "2025", "current", "1", "0.8", "", "", "", "", ""]}
{"pcdb_id": 400012, "raw": ["400012", "020177", "0", "2025/Oct/31 11:00", "Modutherm", "Modutherm", "MTA Plus Twin 40-70", "", "2022", "current", "1", "0.74", "26", "", "0.03"]}
{"pcdb_id": 400013, "raw": ["400013", "020031", "0", "2025/Oct/31 11:00", "Cetetherm", "Cetetherm", "Pioneer", "", "2023", "current", "1", "0.88", "25", "", "0.07"]}
{"pcdb_id": 400014, "raw": ["400014", "020257", "0", "2025/Dec/10 11:00", "Intatec", "Intatec", "Hiper II", "", "2023", "current", "1", "0.87", "30", "", " 0.03"]}