mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-06-08 11:17:27 +00:00
Spec text (RdSAP 10 §15, p.66): "For consistency of application, after expanding the RdSAP data into SAP data using the rules in this Appendix, the data are rounded before being passed to the SAP calculator. The rounding rules are: U-values: 2 d.p. / All element areas (gross) including window areas and conservatory wall area: 2 d.p. / [...]" Applied 2-d.p. rounding to every per-element gross area inside heat_transmission_from_cert: gross_wall + party_wall (in _part_geometry), window total area, door area, top_floor (roof) area, ground_floor area, roof-window area, alt-wall area, RR-detailed-surface area. U-values already came from table lookups at 2 d.p. §3 cascade pins (LINE_31/33/36/37) now close at abs=1e-4 for 5 of 6 fixtures. 000487 remains failing on the RR defect (slice 25). Scoreboard: section_cascade_pins: 151 → 170 PASS (+19) e2e SapResult: 27 → 29 PASS (+2) Per-fixture §3 status: field | 474 | 477 | 480 | 487 | 490 | 516 LINE_31 | ✓ | ✓ | ✓ | ✗ | ✓ | ✓ LINE_33 | ✓ | ✓ | ✓ | ✗ | ✓ | ✓ LINE_36 | ✓ | ✓ | ✓ | ✗ | ✓ | ✓ LINE_37 | ✓ | ✓ | ✓ | ✗ | ✓ | ✓ Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| domain | ||
| fetchers | ||
| repos | ||
| utils | ||
| README.md | ||
Shared packages
Workspace packages consumed by services/*. Each package is its own Python distribution with its own pyproject.toml; services import via the workspace dependency mechanism ({ workspace = true }).
| Package | Purpose |
|---|---|
domain/ |
Shared domain types — Property, BaselinePerformance, Plan, Scenario, EpcPropertyData, etc. No persistence, no IO, no business logic. |
repos/ |
Persistence layer — one repo per aggregate. Owns the SQL. Depends on domain. |
fetchers/ |
External API clients (gov EPC, Ofgem, Google Solar, etc.). Depend on domain for response shapes. |
utils/ |
Cross-cutting infra — logging, S3, CloudWatch URL builders, SQS task helpers. |
Adding a new shared package
Only when a real second consumer materialises. Don't pre-shatter (repos-epc, repos-property, ...) — split when a deployment needs to drop a dep, not before.
See ../ara_backend_design.md §11 for the broader monorepo layout and ../CONTEXT.md for the domain glossary that names the types living in domain/.