mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-07-12 13:29:04 +00:00
Replace the flat placeholder scalars (boiler £3000; tune-up £500/£900) with a per-dwelling composite cost, mirroring the ASHP architecture (ADR-0025): a `HeatingRates` table (data, `heating_rates.json`), typed `BoilerCostInputs` / `TuneUpCostInputs`, pure `Products.boiler_bundle_cost` / `tune_up_cost`, and modelling-layer interpreters that read the dwelling into those inputs. The cost mirrors the Simulation Overlay component-for-component, sharing the controls + cylinder pricing across both options: - tune-up (standard) = standard controls + cylinder fixes - tune-up (zone) = zone controls + cylinder fixes - boiler upgrade = £3200 all-in + standard controls (only when the upgrade fired a controls change) + cylinder fixes Standard controls are priced INCREMENTALLY — only the parts missing to reach SAP 2106 (programmer £120 / room thermostat £150 / TRV £35×radiators), read from a Table 4e Group-1 feature map so a dwelling that already has a room thermostat + TRVs is only charged the programmer. Zone controls are a full smart kit (hub £205 + smart TRV £50×radiators) — the smart TRV is itself the room sensor, so there is no separate per-room sensor line. Cylinder fixes: jacket £50 (when under-insulated) + thermostat £150 (when absent). The boiler is a like-for-like wet swap (no radiators/flue/pipework — eligibility already requires an existing wet boiler), so those dead-code extras are not modelled. Figures are research-validated 2025/26 UK installed costs (legacy Costs.py lineage); fully-loaded totals with one contingency on top (Model B, not the legacy VAT/preliminaries engine). Contingency: boiler 0.26; tune-ups 0.10 (was a 0.15 placeholder). ADR-0027 records the design; CONTEXT.md's Heating Eligibility entry updated to cover the partial boiler/tune-up family + composed cost. Products cost pins (delta<=1e-9) + interpreter tests + generator composite-cost assertions. Co-Authored-By: Claude Opus 4.8 <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 | ||