Model/infrastructure/postgres
Khalim Conn-Kowlessar 24492aa4ba Merge origin/main into feature/bill-derivation (calculator + mapper fixes)
Pulls in 42 commits of calculator/mapper accuracy fixes from the per-cert
mapper-validation and floor/roof/heating fronts.

Conflict resolutions:
- mapper `_is_elmhurst_roof_window`: main dropped the branch's "wall location →
  vertical" guard (it broke cert 000516's rooflight), but that re-broke cert
  001431's two External-wall U>3.0 windows (which must stay vertical). The two
  certs lodge a BYTE-IDENTICAL §11 row, so neither location nor U separates
  them — the real discriminator is the room-in-roof context. Replaced the
  unconditional U>3.0 backstop with one gated on the BP having a room-in-roof
  (`_elmhurst_bp_has_room_in_roof`): 000516's Main BP has a "Room in roof type
  1" (→ rooflight), 001431's does not (→ vertical). Validated against BOTH —
  full Elmhurst worksheet suite 1038 pass + the 001431 window-extraction pin.
- property_postgres_repository: kept main's `ids_by_uprn` method + the branch's
  `_restrictions_of` helper.
- sap_fuel.py: the branch relocated it to domain/billing/ (already carrying
  main's to_table_32_code normalization), so kept the old path deleted.

Fallout from main's fabric fixes (validated by the boiler-3 real-cert pin which
still reproduces at delta 0):
- re-pinned the boiler-1 + boiler-instant-hw ASHP snapshot scores;
- main's §14.2 gas-boiler main-fuel derivation resolved the BGB/102 baseline
  gap, so `test_gas_boiler_instant_hw_before_baselines` is now a passing test
  (was an xfail tripwire).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-08 13:12:21 +00:00
..
modelling feat(modelling): wire Valuation Uplift onto the Plan 2026-06-04 08:59:04 +00:00
__init__.py added postcode splitter rewrite to ddd 2026-05-19 16:35:09 +00:00
bulk_address_upload_table.py tests files 2026-06-04 11:47:42 +00:00
config.py added postcode splitter rewrite to ddd 2026-05-19 16:35:09 +00:00
engine.py tests wrong environemnt 2026-05-29 16:17:06 +00:00
epc_property_table.py review: store epc_building_part.wall_insulation_thickness as JSONB 2026-06-05 10:07:24 +00:00
landlord_built_form_type_override_table.py pr review, move domain and orhcestration 2026-06-01 14:00:31 +00:00
landlord_override_enums.py landlord overrid orchestration 2026-05-26 15:27:45 +00:00
landlord_property_type_override_table.py pr review, move domain and orhcestration 2026-06-01 14:00:31 +00:00
landlord_roof_type_override_table.py pr review, move domain and orhcestration 2026-06-01 14:00:31 +00:00
landlord_wall_type_override_table.py pr review, move domain and orhcestration 2026-06-01 14:00:31 +00:00
product_table.py feat(modelling): ProductRepository + Postgres materials-table source 2026-06-03 08:32:38 +00:00
property_baseline_performance_table.py refactor(billing): relocate Bill Derivation to domain/billing/ (cross-stage) 2026-06-03 17:19:23 +00:00
property_details_spatial_table.py feat(spatial): per-UPRN cache repo for the OS spatial reference 2026-06-04 17:15:51 +00:00
property_override_table.py property override 2026-06-05 12:18:13 +00:00
property_table.py tests files 2026-06-04 11:47:42 +00:00
solar_table.py feat(ingestion): relocate EpcClientService to infrastructure + SolarRepo (#1133) 2026-06-01 16:28:48 +00:00
subtask_table.py added postcode splitter rewrite to ddd 2026-05-19 16:35:09 +00:00
task_table.py added postcode splitter rewrite to ddd 2026-05-19 16:35:09 +00:00