mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-07-12 13:29:04 +00:00
A dwelling's heating is one conceptual system, but its fields are scattered across EpcPropertyData (a gov-API schema mirror): the cluster on sap_heating, the electricity tariff on sap_energy_source.meter_type, hot-water flags loose at top level. Three places synthesise a heating system — Measure Options, Landlord Overrides, EPC Prediction's donor — and each hand-copied a different ad-hoc subset. The override and donor both dropped meter_type, so an electric-storage system landed on the template's single-rate meter and billed overnight heat at the peak rate: property 713406 scored SAP 13 (G) vs ~50 (E), inflating the HHRSH measure to +45.8 and overshooting the plan to band A. Establish a single Coherent Heating System boundary (CONTEXT.md) that every synthesiser must cover, with a source-appropriate fill policy (ADR-0035): - Override overlay *completes* the partial system the landlord named. Companion fields are now DERIVED from the SAP code, not hand-attached per archetype: the off-peak meter from the calculator's single off-peak classification (new OFF_PEAK_IMPLYING_HEATING_CODES = SAP §12 Rules 1-2), and an unobserved storage charge control defaults to the conservative manual control (Table 4e 2401). So adding a heating archetype is just adding its code — companions can't be forgotten. A contract test guards it (every off-peak code drags a Dual meter). - Prediction's heating donor now *carries* the donor's meter_type alongside its sap_heating cluster — the donor is already coherent. Coherence is a synthesis-time obligation only; the calculator still scores a real lodged cert exactly as lodged. Verified on 713406: baseline 13 -> 47.8 (E), matching its recorded rating; the phantom HHRSH recommendation is gone and the plan no longer overshoots to A. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| 0001-two-source-paths.md | ||
| 0002-property-aggregate-root.md | ||
| 0003-python-writes-landlord-overrides-directly.md | ||
| 0003-strict-ingestion-modelling-separation.md | ||
| 0004-baseline-performance-lodged-effective-pair.md | ||
| 0005-multi-phase-scenarios-per-phase-recompute.md | ||
| 0006-deterministic-kwh-no-baseline-ml.md | ||
| 0007-kwh-as-ml-target.md | ||
| 0008-physics-as-feature.md | ||
| 0009-deterministic-sap-calculator.md | ||
| 0010-sap10-calculator-spec-target-and-validation.md | ||
| 0011-composable-stage-orchestrators.md | ||
| 0012-unit-of-work-per-stage-batch-transaction.md | ||
| 0013-bulk-upload-finaliser-writes-properties.md | ||
| 0013-calculator-produces-effective-performance-shadow-first.md | ||
| 0014-bill-derivation-from-real-fuel-rates.md | ||
| 0015-mappers-own-cert-normalization.md | ||
| 0016-package-rescore-over-warm-start-optimisation.md | ||
| 0017-plan-persistence-evolve-live-tables.md | ||
| 0018-valuation-uplift-percentage-primary.md | ||
| 0019-wall-insulation-eligibility.md | ||
| 0020-conservation-status-as-property-attributes.md | ||
| 0021-roof-insulation-eligibility.md | ||
| 0022-glazing-eligibility-and-overlay.md | ||
| 0023-lighting-eligibility-and-overlay.md | ||
| 0024-heating-eligibility-and-overlay.md | ||
| 0025-ashp-bundle-costing.md | ||
| 0026-solar-pv-eligibility-sizing-overlay-costing.md | ||
| 0027-boiler-and-tune-up-costing.md | ||
| 0027-rdsap-20-0-0-reduced-field-synthesis.md | ||
| 0028-pre-sap10-rdsap-family-coefficient-transfer.md | ||
| 0028-secondary-heating-removal.md | ||
| 0029-epc-prediction-from-comparable-properties.md | ||
| 0030-epc-prediction-validation-is-sap-version-aware-and-component-first.md | ||
| 0031-epc-prediction-production-wiring.md | ||
| 0032-landlord-override-epc-overlay.md | ||
| 0033-age-band-resolves-assumed-fabric-states.md | ||
| 0034-epc-prediction-cohort-broadens-to-nearby-postcodes.md | ||
| 0035-coherent-heating-system-synthesis.md | ||