Model/infrastructure
Khalim Conn-Kowlessar 7e79c30af1 feat(modelling): Plan Measure carries per-measure kwh/cost savings
`PlanMeasure` grows optional `kwh_savings` (delivered energy) and
`energy_cost_savings` (£) — its slice of the telescoping bill cascade, signed
so positive is a saving and `None` until billing runs. `RecommendationRow`
declares the matching live `recommendation.kwh_savings` /
`energy_cost_savings` columns and maps them in `from_domain` (None → NULL).
The vestigial `recommendation.energy_savings` stays undeclared (legacy = 0).
No FE migration — the columns already exist on the live table (ADR-0014 / 0017).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-03 17:58:06 +00:00
..
chatgpt moved classifier data transformation to an easy one 2026-06-01 14:53:34 +00:00
epc_client feat(ingestion): relocate EpcClientService to infrastructure + SolarRepo (#1133) 2026-06-01 16:28:48 +00:00
landlord_overrides move landlord overrides 2026-06-01 15:46:46 +00:00
openai updated rdsap option; seperated s3 location in infrastrucutre; added open ai api 2026-06-01 16:33:14 +00:00
postgres feat(modelling): Plan Measure carries per-measure kwh/cost savings 2026-06-03 17:58:06 +00:00
s3 updated rdsap option; seperated s3 location in infrastrucutre; added open ai api 2026-05-22 14:00:33 +00:00
solar GoogleSolarApiClient raises BuildingInsightsNotFoundError on 404 entity-not-found 🟩 2026-06-01 16:28:47 +00:00
__init__.py added postcode splitter rewrite to ddd 2026-05-19 16:35:09 +00:00
address2uprn_queue_client.py get rid of comments 2026-05-20 13:21:11 +00:00
sqs_client.py get rid of comments 2026-05-20 13:21:11 +00:00