assessment-model/docs/adr/0010-compliance-window-is-a-report-view-parameter.md
Khalim Conn-Kowlessar 83f65567cf docs: reporting glossary terms + ADR-0010 compliance-window filter
Gross/Net cost, Project delivery, Current stock, Likely downgrade/upgrade
(band movement) added to CONTEXT.md from the reporting-redesign grilling
session. ADR-0010 records the compliance-window filter as a report-view
parameter, not a Scenario constraint. Also commits the previously
untracked ADR-0001/0002 docs.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 22:08:35 +00:00

2.8 KiB

10. The compliance-window filter is a report-view parameter, not a Scenario constraint

Date: 2026-07-07

Status

Accepted

Context

A recurring landlord question on Reporting: "what if we don't do works on properties whose EPC keeps them compliant, from a government perspective, beyond 2030?" — i.e. exclude homes that can demonstrate the target band with an in-date certificate past a cut-off date, and see what the scenario costs without them.

Two places this could live: as a constraint on the Scenario (the optimiser never plans works for those homes) or as a filter on the report view (the modelling is unchanged; the report recomputes as if those homes' plans were dropped).

Decision

A report-view parameter on the scenario metrics endpoint (alongside hideNonCompliant and the lodged-baseline toggle), configurable in the UI:

  • Membership rule: a home is "compliant beyond the window" iff its lodged certificate shows the selected band or better (default C) and remains valid past the selected date (default 1 Jan 2030). Both band and date are user-configurable. predicted homes never qualify — there is no certificate to rely on (see EPC provenance in CONTEXT.md).
  • Scenario-side only: skipped homes' plans drop out of the works-list aggregates (costs, funding, benefits, homes upgraded) and they hold their current band in the after-distribution. Current-stock figures are untouched; the filter only exists when a scenario is selected.

Alternatives considered

  • Scenario constraint (optimiser skips the homes): the "true" answer — the engine would redistribute budget across the remaining stock. Rejected here because Scenario configuration is immutable (ADR-0003) and adding a post-hoc exclusion would either mutate that config or mint a near-duplicate Scenario per date/band permutation. It also couples an exploratory, slider-like question to a full modelling round-trip.
  • Whole-report filter: hide the homes from every figure including current stock. Rejected: the portfolio's home count would disagree with every other surface, and the landlord's question is about works, not about the stock.

Consequences

  • The filtered works list is an approximation: plans were optimised with the skipped homes in scope, so shared-cost effects (e.g. scaffolding batching) are not re-optimised away. Acceptable for an exploratory filter; the exact answer is future work — a re-model with an explicit exclusion set, which would be a new Scenario capability, not this filter.
  • The parameter travels in the URL, so filtered views are shareable and the PDF can reproduce them.
  • If landlords start committing budgets against filtered numbers rather than exploring with them, that is the signal to build the re-model path.