mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-06-08 11:17:27 +00:00
Extracts `heat_transmission_section_from_cert(epc)` wrapping the §3 inline call in cert_to_inputs (window-area/window-U/dwelling-exposure plumbing). Replaces the inline call. Adds §3 cascade pins for the four aggregate line refs: (31) total_external_element_area_m2 (33) fabric_heat_loss_w_per_k (36) thermal_bridging_w_per_k (37) total_w_per_k Results at abs=1e-4 (1/24 PASS): fixture | LINE_31 diff | LINE_33 diff | LINE_36 diff | LINE_37 diff --------|--------------|--------------|--------------|------------- 000474 | 0.0014 | 0.086 | 0.0002 | 0.086 000477 | 0.0004 | 0.105 | ✓ | 0.104 000480 | 0.006 | 0.017 | 0.0009 | 0.018 000487 | 8.82 | 37.88 | 1.32 | 39.21 000490 | 0.000 | 0.064 | 0.000 | 0.064 000516 | 0.012 | 0.183 | 0.002 | 0.184 Three buckets: - 000487 (RR fixture defect): large gaps — fixture lodges Simplified Type 1 RR but PDF has detailed §3.10 lodgement including a U=0.86 external gable. Slice 22 closes (mirrors S16a). - 000474/000477/000480/000490/000516 (precision residuals): LINE_33 drifts 0.02-0.18 W/K — sub-display-precision (PDF lodges to 4 d.p. per element, our calc combines full-precision per-storey perimeters + 4-d.p. U values). The aggregate diff of ~0.1 W/K is just over the abs=1e-4 floor but well under the worksheet's display granularity. Cascade pins now: §1 (12 PASS) + §2 (96 PASS) + §3 (1 PASS, 23 FAIL). 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/.