Model/domain/modelling/generators
Khalim Conn-Kowlessar 82c3422788 feat(modelling): generation-calibrated PV overshading derivation
Slice 3 of the Solar PV Recommendation Generator (ADR-0026). Per roof segment,
back-solve the effective overshading factor ZPV from Google's expected
generation against SAP's own unshaded annual output:

    ZPV = (yearlyEnergyDcKwh × 0.955) / (0.8 × kWp × S)

reusing the calculator's Appendix U3.3 annual solar radiation S via a new
public seam `pv_annual_solar_radiation_kwh_per_m2`. Dividing Google's
generation by SAP's S cancels orientation/tilt and isolates shading; the
result snaps to the RdSAP bucket {1:1.0, 2:0.8, 3:0.5, 4:0.35} via the
ADR-0026 midpoint cutpoints (≥0.90→1, 0.65–0.90→2, 0.425–0.65→3, <0.425→4;
ZPV>1→1). The real London example's planes all back-solve to ZPV>1 → code 1.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-08 09:59:48 +00:00
..
__init__.py refactor(modelling): group domain/modelling into generators/scoring/optimisation 2026-06-03 13:48:36 +00:00
floor_recommendation.py feat(modelling): persist recommendation.material_id from the catalogue 2026-06-04 08:26:58 +00:00
glazing_recommendation.py feat(modelling): detect single-glazing code 15 + glazing before/after pins 2026-06-05 11:23:57 +00:00
heating_recommendation.py feat(modelling): ASHP option carries the composite per-dwelling cost 2026-06-06 21:17:06 +00:00
lighting_recommendation.py feat(modelling): recommend_lighting upgrades all non-LED bulbs to LED 2026-06-05 12:23:27 +00:00
roof_recommendation.py feat(modelling): room-in-roof safety guard defers the roof generator 2026-06-05 10:06:08 +00:00
solar_recommendation.py feat(modelling): generation-calibrated PV overshading derivation 2026-06-08 09:59:48 +00:00
solid_wall_recommendation.py feat(modelling): explicit park-home guard in the solid-wall generator 2026-06-05 10:49:50 +00:00
ventilation_recommendation.py feat(modelling): persist recommendation.material_id from the catalogue 2026-06-04 08:26:58 +00:00
wall_recommendation.py feat(modelling): persist recommendation.material_id from the catalogue 2026-06-04 08:26:58 +00:00