mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-07-27 23:35:01 +00:00
SapHeating.cylinder_heat_loss is read by the calculator (cert_to_inputs §4 cylinder loss) but had no column, so it was silently dropped on save: a dwelling reloaded from Postgres lost its lodged cylinder loss and fell back to the Table 2b age-band default — worst case -15.53 SAP over the corpus round-trip (#1665). Add heating_cylinder_heat_loss (nullable double precision) to EpcPropertyModel, write it in from_domain and reconstruct it in the SapHeating compose path, mirroring heating_cylinder_volume_measured_l. Remove the now-false _UNPERSISTED_ALLOWLIST entry ("dormant — not read by the calculator") so the ADR structural guard enforces it. Verified: worst cylinder cert 10091630692 round-trip -15.53 -> 0.0000. Companion assessment-model migration (heating_cylinder_heat_loss column) must land + be applied per-environment before the backend deploys (deploy gate). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| modelling | ||
| __init__.py | ||
| bulk_address_upload_table.py | ||
| config.py | ||
| engine.py | ||
| epc_property_table.py | ||
| landlord_built_form_type_override_table.py | ||
| landlord_construction_age_band_override_table.py | ||
| landlord_glazing_override_table.py | ||
| landlord_main_fuel_override_table.py | ||
| landlord_main_heating_system_override_table.py | ||
| landlord_override_enums.py | ||
| landlord_property_type_override_table.py | ||
| landlord_roof_type_override_table.py | ||
| landlord_wall_type_override_table.py | ||
| landlord_water_heating_override_table.py | ||
| magic_plan_tables.py | ||
| product_table.py | ||
| property_baseline_performance_table.py | ||
| property_details_spatial_table.py | ||
| property_override_table.py | ||
| property_table.py | ||
| solar_table.py | ||
| subtask_table.py | ||
| task_table.py | ||
| uploaded_file_table.py | ||