Metrics route (#370): net_cost/gross_per_unit now use computeLedger's
all-in definitions (was construction−funding, delivery/contingency
excluded); adds ADR-0010 complianceBand+complianceDate params (validated,
lodged-only membership, applied at all four query sites, scenario-side
only); renames useOriginalBaseline → useLodgedBaseline reading lodgedSapSql
with a keep-on-unknown COALESCE so new-approach homes aren't dropped.
New drill-down endpoint /reporting/properties: one filter per request
(band/estimated/expired/likely-downgrade/likely-upgrade/measure),
paginated, powering Screen C and the CSVs. Band-movement filters use the
certificate-gated lodgedEpcBandSql per CONTEXT.md.
Reporting page swaps the thin local getScenarios for
listScenariosWithStatus (config + derived modelled state, ADR-0003).
Route tests on the mocked-db pattern; full suite 430 green.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>