mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-06-08 11:17:27 +00:00
Populates §4 LINE_42..LINE_65 + per-fixture HW inputs (HAS_BATH, MIXER_SHOWER_FLOW_RATES_L_PER_MIN, COLD_WATER_TEMPS_C, LOW_WATER_USE, COMBI_LOSS_OVERRIDE, ELECTRIC_SHOWER_OVERRIDE) in 000477, 000480, 000487, 000516 — values extracted from the Elmhurst U985 worksheets supplied 2026-05-20. 000474 + 000490 get the same input constants for uniform parametrization. Adds electric_shower_monthly_kwh_override to water_heating_from_cert to unlock 000487 (instantaneous electric shower, no mixer). The orchestrator's has_shower flag now also accounts for the electric path. Extends 6 parametrized §4 tests from (000474, 000490) to ALL_FIXTURES and adds a new ALL_FIXTURES-parametrized e2e test exercising the orchestrator end-to-end through (42)..(65) for every Elmhurst fixture. Tolerance on (43)/(44) loosened to 5e-3 to absorb Elmhurst's 4-d.p. display rounding. Result: 150/150 tests pass; §1-§4 conform at ≤1e-2 kWh / 5e-3 L for every fixture. Deferred branches surfaced via overrides: - PCDB Table 3b combi loss (000474, 000477, 000516) - Non-time-clock Table 3a combi loss rows (000480, 000487) - Electric-shower (64a)m derivation from cert codes (000487) Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| src/domain | ||
| pyproject.toml | ||
| README.md | ||
domna-domain
Shared domain types — Property, Properties, BaselinePerformance, Plan, PlanPhase, Scenario, ScenarioPhase, ScenarioSnapshot, Recommendation, OptimisedPackage, EpcPropertyData, etc.
Boundary: types only. No persistence, no IO, no business logic. Other packages and services depend on domna-domain; this package depends on nothing internal.
Domain definitions live in ../../CONTEXT.md. New types added here must match the glossary terms.
Layout
src/domain/
├── __init__.py
├── property.py # Property, Properties, PropertyIdentity
├── site_notes.py
├── landlord_overrides.py
├── baseline_performance.py # lodged + effective pair (ADR-0004)
├── plan.py # Plan, PlanPhase, OptimisedPackage
├── scenario.py # Scenario, ScenarioPhase, ScenarioSnapshot (ADR-0005)
├── recommendation.py
├── geospatial.py
├── solar.py
├── anomaly_flags.py
└── ml/
├── __init__.py
├── transform.py # EpcMlTransform (versioned per §8.3)
└── schema.py
When datatypes/epc/domain/ folds in, the EPC schema types move under src/domain/epc/.