Model/applications/modelling_e2e
Khalim Conn-Kowlessar e80be44fd1 fix(modelling_e2e): persist predicted EPC + baseline for predicted properties
A predicted Property (no lodged EPC) got a Plan but nothing else: the synthesised
EPC was never written to epc_property, and Baseline Performance was skipped — so
property 729529 (portfolio 796 / scenario 1268), predicted from its DA16 1QZ
cohort, was "missed" with no predicted-EPC row and no baseline row.

Persist the synthesised EPC in the predicted slot (uow.epc.save(..., source=
"predicted"), ADR-0031) inside the Plan UoW, then run the Baseline orchestrator
for predicted Properties too — it re-hydrates the predicted EPC and establishes
the baseline from it. The earlier "lodged only" guard is dropped: by the write
block the Property always has a persisted EPC (lodged or predicted); one that
could be neither fetched nor predicted raised earlier.

Verified against the DB by invoking the real handler for 729529: predicted
epc_property rows 0->1 and property_baseline_performance rows 0->1. Baseline on
the predicted picture builds cleanly (RHI present, reason pre_sap10). Tests
updated: prediction + broadening paths now assert the predicted-slot epc.save and
the baseline run.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-23 17:49:08 +00:00
..
local_handler measured excluded plus get geospatial nearby stuff working 2026-06-22 16:12:16 +00:00
Dockerfile move handler stuff to applications directory 2026-06-22 13:35:23 +00:00
handler.py fix(modelling_e2e): persist predicted EPC + baseline for predicted properties 2026-06-23 17:49:08 +00:00
modelling_e2e_trigger_body.py process multiple properties in one message 2026-06-22 15:46:18 +00:00
requirements.txt various fixes 2026-06-22 14:21:52 +00:00