mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-06-08 11:17:27 +00:00
`EpcPropertyData.PhotovoltaicArray.pitch` is the RdSAP 10 §11.1 integer code (1=0°, 2=30°, 3=45°, 4=60°, 5=90°) — NOT degrees. The cascade's `cert_to_inputs._PV_PITCH_DEG_BY_CODE` reads the code, not the value. Slice 99d's mapper passed the raw degrees (45) directly, which fell through to the default 30° lookup (Appendix U3.3 S(SW, 30°) ≈ 1029 kWh/m²/yr vs S(SW, 45°) ≈ 1004 — 2.5% over-credit on the PV generation, manifesting as -£6.27 over-credit on total cost → +0.23 SAP delta). Added `_elmhurst_pv_pitch_code` helper that maps the lodged degrees to the nearest tabulated code (snap-to-nearest fallback for non- tabulated tilts; defaults to code 2 / 30° per the cascade's own `_PV_PITCH_DEG_DEFAULT`). Effect on cert 9501 Summary path: - pv_export_credit £256.30 → £250.02 (= worksheet 250.02 exact) - total_fuel_cost £842.94 → £849.21 (= worksheet 849.21 exact) - sap_continuous 68.7577 → **68.5252** (= worksheet 68.5252 exact; Δ -0.0000 at 1e-4) `test_summary_9501_full_chain_sap_matches_worksheet_pdf_exactly` added — the second flat-shaped cert pinned to worksheet SAP at 1e-4 after the cert 0330 / 001479 boiler-house chain tests. Third boiler validation cert closed. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| handler | ||
| tests | ||
| __init__.py | ||
| db_writer.py | ||
| elmhurst_extractor.py | ||
| extractor.py | ||
| local_runner.py | ||
| parser.py | ||
| pdf.py | ||