mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-07-12 13:29:04 +00:00
Make run_modelling_e2e the single script that does everything for a portfolio, so the 291-property run needs one invocation with per-property recovery (no all-or-nothing chunking): - On --persist, a lodged-EPC Property now also gets its Baseline Performance row written via PropertyBaselineOrchestrator (per Property, so one bad cert does not abort the batch). Predicted (EPC-less) Properties have no lodged figures, so they get a Plan but no baseline row. - The run CSV gains api_sap (register) vs baseline_sap (calculator) + sap_delta, so calculator-vs-API divergence is reviewable per property. Fill the off-catalogue overlay for the measures the live material catalogue cannot price, so they stop crashing the run: - double_glazing (£550/window) and secondary_glazing (£400/window): priced per window (the generator multiplies by single-glazed window count, matching the legacy window_glazing). Grounded in 2025/26 UK installed costs; per-window is the right unit for windows (fixed per-unit install dominates) — per-m2 fits walls/floors, not glazing. - gas_boiler_upgrade / system_tune_up / system_tune_up_zoned: these are priced off the heating rate sheet (Products()), with get() reading the catalogue only for an id — so the overlay entry exists to satisfy that lookup (material_id stays None, as with ASHP); the rate sheet remains authoritative. Validated on a 12-property sample (incl. a secondary-glazing case and a SAP-Schema-16.2 cert): 12/12 baseline rows + plans, 0 errors. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| bulk_upload | ||
| comparable_properties | ||
| epc | ||
| fuel_rates | ||
| geospatial | ||
| landlord_overrides | ||
| magic_plan | ||
| materials | ||
| plan | ||
| product | ||
| property | ||
| property_baseline | ||
| scenario | ||
| solar | ||
| spatial | ||
| tasks | ||
| unstandardised_address | ||
| uploaded_file | ||
| __init__.py | ||
| postgres_unit_of_work.py | ||
| unit_of_work.py | ||