Khalim Conn-Kowlessar
ef34f76116
Resolve electric-underfloor overrides to their own SAP codes dragging electricity 🟥
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-01 16:34:41 +00:00
Khalim Conn-Kowlessar
94a5e79067
Resolve an electric-CPSU override to SAP 192 electric on an off-peak meter 🟥
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-01 16:08:42 +00:00
Jun-te Kim
646f66ff89
Resolve dominant-single glazing deterministically in the mix guard
...
A landlord glazing split like "4% Double glazing 2002 or later, 96% Single
Glazing" is a near-uniform *single*-glazing dwelling, but the LLM classifier
latched onto the 4% minority and wrote a "Double glazing…" override — over-
crediting the dwelling.
glazing_mix_guard rescued genuine mixes (no type >= 90%) to MIXED but returned
None for near-uniform splits, trusting the LLM to have applied the dominant type.
It hadn't. Single glazing is era-free, so a dominant-single split is fully
determined: the guard now returns SINGLE for it (dominant double/triple still
carry era ambiguity, so they stay the LLM's job — the existing "96% double" case
still defers).
Adds a portfolio-scoped backfill (reuses the same guard, so it can't drift from
the live path) and applied it to portfolio 796 (Hyde): 115 glazing overrides
corrected from a spurious Double back to Single.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-01 15:59:18 +00:00
Khalim Conn-Kowlessar
2b5d38a7f9
Deterministically guard the Gas CPSU solid-fuel and electric-boiler descriptions 🟥
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-01 15:58:28 +00:00
Khalim Conn-Kowlessar
e83c420f3b
Resolve an electric-boiler override to SAP 191 dragging electricity 🟥
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-01 15:58:27 +00:00
Khalim Conn-Kowlessar
f253a7b9ba
Resolve solid-fuel room-heater overrides off Gas CPSU to their SAP codes 🟥
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-01 15:58:25 +00:00
Jun-te Kim
5b4a1b4966
Classify PCDB-index gas boilers with no SAP code for heating recs
...
Gov-API certs that lodge a gas boiler as main_heating_category=2 + a PCDB
main_heating_index_number but omit sap_main_heating_code were carried with
a null code, so the heating generators (which gated on sap_main_heating_code
alone) never evaluated them for a boiler upgrade or a system tune-up — they
silently got nothing (£0 works, plateau at D). The SAP calculator already
handles this shape (cert_to_inputs._is_wet_boiler_main), so the calculator
modelled these as wet boilers while the recommenders ignored them.
Mirror the calculator's classification in the generator:
- _is_wet_boiler / _is_electric_boiler fall back, when no SAP code is
lodged, to a PCDB Table 105 boiler index or main_heating_category in
{1,2} (heat pumps excluded); electric boilers stay excluded by the code
range when lodged, else by an electricity main fuel.
- _already_condensing reads the boiler's declared PCDB winter efficiency
when there is no Table 4b code, so a modern condensing boiler lodged this
way still isn't offered a pointless like-for-like swap (gets a tune-up).
Verified read-only on portfolio 814 / scenario 1271: pids 742304, 742306,
742322, 742325, 742336 now get a gas_boiler_upgrade (two cross D->C on the
boiler alone) where they had £0 works; predicted properties whose heating
donor is a PCDB-shape boiler (e.g. 742095/742102/742105) also recover a
tune-up. Fixes the A#2 slice of #1388 (and unblocks 742302/742367).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-01 14:52:47 +00:00
Daniel Roth
0488696df8
Merge pull request #1397 from Hestia-Homes/fix/1376-hhrsh-baseline-archetype
...
Add the HHRSH baseline archetype so it stops scoring as old storage (#1376 )
2026-07-01 15:41:52 +01:00
Daniel Roth
ae4a8569e9
Merge pull request #1396 from Hestia-Homes/community-heating-hhrsh
...
Don't recommend HHRSH or ASHP to properties with community heating
2026-07-01 15:33:57 +01:00
Khalim Conn-Kowlessar
9711b2e5f5
Deterministically guard the high-heat-retention storage description 🟥
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-01 14:30:13 +00:00
Khalim Conn-Kowlessar
ca10966c38
Drag HHRSH's intrinsic control, electricity fuel and off-peak meter 🟥
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-01 14:27:59 +00:00
Khalim Conn-Kowlessar
79f48c0564
Resolve a high-heat-retention storage override to SAP code 409 🟥
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-01 14:26:25 +00:00
Daniel Roth
baaadcdf98
Merge pull request #1392 from Hestia-Homes/fix/1376-water-heating-house-coal
...
Reclassify water-heating overrides off the house-coal dumping ground (#1376 )
2026-07-01 15:19:39 +01:00
Daniel Roth
576fc948a6
Gate community-heated dwellings from ASHP recommendation 🟥
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-01 14:17:41 +00:00
Daniel Roth
afe6638b36
Gate community-heated dwellings from HHRSH recommendation 🟥
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-01 14:13:57 +00:00
Daniel Roth
221e310fd8
Merge pull request #1382 from Hestia-Homes/incorrect-overrides
...
Fix HHRSH eligibility for on-gas-street electric dwellings; rename mains_gas → gas_connection_available
2026-07-01 14:53:14 +01:00
Khalim Conn-Kowlessar
d7f069b7c5
Deterministically guard structured biomass and immersion water-heating descriptions 🟥
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-01 13:05:47 +00:00
Khalim Conn-Kowlessar
da15418fd8
Resolve biomass, dual-fuel and biodiesel water-heating overrides off house coal 🟥
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-01 13:02:38 +00:00
Khalim Conn-Kowlessar
c24e465974
Resolve a from-main wood-logs water-heating override to the wood fuel 🟥
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-01 12:59:56 +00:00
KhalimCK
9db8b60a54
Merge pull request #1384 from Hestia-Homes/fix/1376-glazing-proportion-reconcile
...
Defer aggregate-mix glazing overrides to the cert's per-window glazing (#1376 )
2026-07-01 13:37:28 +01:00
Daniel Roth
90abcd9f54
Merge branch 'main' into incorrect-overrides
2026-07-01 12:30:15 +00:00
Khalim Conn-Kowlessar
f11fc9bc04
Resolve a MIXED glazing override to no overlay, keeping the cert per-window glazing 🟩
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-01 11:06:50 +00:00
Khalim Conn-Kowlessar
4e4a2d21c4
Leave a uniform or unparseable glazing description to the LLM classifier 🟩
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-01 11:05:10 +00:00
Khalim Conn-Kowlessar
f959cc14c9
Classify an aggregate-mix glazing description as MIXED 🟥
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-01 11:03:28 +00:00
Daniel Roth
9b58bebfb8
Rename SapEnergySource.mains_gas to gas_connection_available 🟩
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-01 10:59:21 +00:00
KhalimCK
9968e2b9df
Merge pull request #1379 from Hestia-Homes/fix/1376-flat-roof-insulation-thickness
...
Score flat roofs by their known insulation depth, not the age-band default (#1376 )
2026-07-01 11:58:46 +01:00
Daniel Roth
a174301136
rename mains_gas to gas_connection_available
2026-07-01 10:50:58 +00:00
Daniel Roth
5d99956133
On-gas-street electric dwelling (API fuel code 29) is offered HHRSH 🟥
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-01 10:36:52 +00:00
Khalim Conn-Kowlessar
acf05584d6
Add flat-roof insulation-thickness taxonomy members lock-step with the overlay 🟩
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-01 10:16:35 +00:00
Khalim Conn-Kowlessar
736b5877e9
Carry a flat roof's known insulation depth into the overlay 🟥
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-01 10:13:31 +00:00
Daniel Roth
266a276dae
revert changes
2026-07-01 09:52:06 +00:00
Daniel Roth
0192dd8efd
HHRSH not offered to solid-biomass dwelling with mains_gas=True despite off-gas heating fuel 🟥
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-01 09:41:09 +00:00
Khalim Conn-Kowlessar
4396e5fb22
Let a deterministic guard override the fallback classifier per description 🟥
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-01 09:39:16 +00:00
Khalim Conn-Kowlessar
fe663deef5
Leave a genuine (non-party-ceiling) roof description to the LLM classifier 🟩
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-01 09:38:03 +00:00
Khalim Conn-Kowlessar
7f00ee69e1
Resolve every party-ceiling marker variant to its member 🟥
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-01 09:37:21 +00:00
Khalim Conn-Kowlessar
6fc10683d2
Resolve a party-ceiling roof marker to the party-ceiling member 🟥
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-01 09:35:24 +00:00
Daniel Roth
a8821c9cdb
Merge pull request #1370 from Hestia-Homes/feature/ventilation-audit-changes
...
Ventilation audit changes: directly populate Total Effective Area for trickle vents from form data, rather than calculating it
2026-07-01 09:20:54 +01:00
Khalim Conn-Kowlessar
2fab2ad82e
Recognise community CHP and boilers as a heat-network system 🟥
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-30 20:15:38 +00:00
Khalim Conn-Kowlessar
c2a842e9b9
Drag a gas room heater's coherent companions 🟥
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-30 18:04:30 +00:00
Khalim Conn-Kowlessar
60e27c80a1
Recognise gas room-heater variants by their SAP codes 🟥
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-30 18:03:07 +00:00
Khalim Conn-Kowlessar
34302adce5
Drag an oil room heater's coherent companions 🟥
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-30 17:55:07 +00:00
Khalim Conn-Kowlessar
fe97a7fc1c
Recognise a modern oil room heater as its own archetype 🟥
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-30 17:53:54 +00:00
Khalim Conn-Kowlessar
098427e620
Drag heat-network category and a community gas fuel for community boilers 🟥
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-30 17:38:08 +00:00
Khalim Conn-Kowlessar
c7b2fe7a1b
Recognise community boilers as a heat-network system 🟥
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-30 17:36:41 +00:00
Khalim Conn-Kowlessar
0c12f70589
Drag an air source heat pump's coherent companions 🟩
...
Heat pump drags category 4 + electricity (29). Meter stays single-rate: a heat
pump does not imply an off-peak tariff the way storage/CPSU do (SAP §12 Rule 3
is conditional), so forcing Dual would mis-bill it.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-30 17:33:05 +00:00
Khalim Conn-Kowlessar
848252e5d4
Drag an air source heat pump's coherent companions 🟥
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-30 17:30:38 +00:00
Khalim Conn-Kowlessar
1552e24fa5
Recognise an air source heat pump via the default ASHP code 🟩
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-30 17:30:00 +00:00
Khalim Conn-Kowlessar
646bff38a6
Recognise an air source heat pump via the default ASHP code 🟥
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-30 17:28:48 +00:00
Khalim Conn-Kowlessar
390df5a6bd
Default a solid-fuel room heater's natural fuel to house coal 🟥
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-30 16:54:07 +00:00
Khalim Conn-Kowlessar
5a29238480
Drag electricity as an electric room heater's natural fuel 🟥
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-30 16:45:20 +00:00