mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-07-12 13:29:04 +00:00
The neighbour SAP-divergence cohort was (postcode, property_type, built_form), which mixed electric- and gas-heated dwellings. Electricity scores materially lower in SAP than mains gas for identical fabric, so a mixed-fuel postcode produced cross-fuel false outliers — an electric dwelling flagged only for being electric among gas neighbours. Add the main-heating fuel class to the cohort key (electricity variants — 29/30 + off-peak 31-40 — collapse to one class; every other code is its own bucket). Now every flagged divergence is a same-fuel comparison worth investigating. On portfolio 814 this refined 20 raw divergences to 17 same-fuel ones while keeping the genuine within-fuel outliers (e.g. the all-electric WC2B 4AW flats at SAP 26/38 vs a cohort median of 67). Reaches the fuel via epc_main_heating_detail through the indexed property_id — still never touches the recommendation table. Surfaced by the portfolio-814 recommendation audit (Work item B, #1388). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
11 KiB
11 KiB
Modelling anomaly audit
Scanned 338 properties · flagged 360 anomalies across 6 checks.
plan-score-below-baseline (HIGH) — 3
- property 742302 (uprn 100022921559): post SAP 70.5 below effective baseline 72.0 (Δ-1.5)
- property 742367 (uprn 5300072135): post SAP 68.9 below effective baseline 70.0 (Δ-1.1)
- property 742368 (uprn 5300072136): post SAP 70.4 below effective baseline 71.0 (Δ-0.6)
plan-stops-short-of-goal (HIGH) — 311
- property 742063 (uprn 10010200962): post D (60.29299) short of goal B on an unlimited-budget scenario (cost_of_works £10378)
- property 742064 (uprn 10010206037): post C (69.27856) short of goal B on an unlimited-budget scenario (cost_of_works £9339)
- property 742065 (uprn 10010206038): post C (78.81704) short of goal B on an unlimited-budget scenario (cost_of_works £1043)
- property 742066 (uprn 10010206039): post C (76.22735) short of goal B on an unlimited-budget scenario (cost_of_works £7876)
- property 742067 (uprn 10010206040): post C (72.775085) short of goal B on an unlimited-budget scenario (cost_of_works £7682)
- property 742068 (uprn 10010206041): post C (74.29278) short of goal B on an unlimited-budget scenario (cost_of_works £8510)
- property 742069 (uprn 10010206042): post C (70.24012) short of goal B on an unlimited-budget scenario (cost_of_works £7638)
- property 742070 (uprn 10010206043): post C (72.3706) short of goal B on an unlimited-budget scenario (cost_of_works £3702)
- property 742072 (uprn 34003067): post D (61.096947) short of goal B on an unlimited-budget scenario (cost_of_works £13391)
- property 742073 (uprn 34003068): post D (61.096947) short of goal B on an unlimited-budget scenario (cost_of_works £13391)
- property 742075 (uprn 34003070): post D (61.096947) short of goal B on an unlimited-budget scenario (cost_of_works £13391)
- property 742076 (uprn 34003071): post D (61.096947) short of goal B on an unlimited-budget scenario (cost_of_works £13391)
- property 742079 (uprn 12013027): post C (78.44673) short of goal B on an unlimited-budget scenario (cost_of_works £2892)
- property 742080 (uprn 12013028): post D (62.603214) short of goal B on an unlimited-budget scenario (cost_of_works £3372)
- property 742081 (uprn 12013029): post C (74.525345) short of goal B on an unlimited-budget scenario (cost_of_works £1029)
- property 742082 (uprn 12013030): post C (78.44673) short of goal B on an unlimited-budget scenario (cost_of_works £2892)
- property 742083 (uprn 12013031): post C (78.44673) short of goal B on an unlimited-budget scenario (cost_of_works £2892)
- property 742084 (uprn 12013032): post C (73.37248) short of goal B on an unlimited-budget scenario (cost_of_works £1057)
- property 742085 (uprn 12013033): post D (68.01724) short of goal B on an unlimited-budget scenario (cost_of_works £1057)
- property 742086 (uprn 12013034): post D (61.581734) short of goal B on an unlimited-budget scenario (cost_of_works £3610)
- property 742087 (uprn 12013038): post C (78.44673) short of goal B on an unlimited-budget scenario (cost_of_works £2892)
- property 742088 (uprn 12013042): post C (74.92009) short of goal B on an unlimited-budget scenario (cost_of_works £3404)
- property 742090 (uprn 12013044): post C (73.35894) short of goal B on an unlimited-budget scenario (cost_of_works £1057)
- property 742091 (uprn 12013045): post C (73.37248) short of goal B on an unlimited-budget scenario (cost_of_works £1057)
- property 742092 (uprn 12013046): post D (60.531925) short of goal B on an unlimited-budget scenario (cost_of_works £1029)
- property 742093 (uprn 12013047): post C (74.26961) short of goal B on an unlimited-budget scenario (cost_of_works £2899)
- property 742094 (uprn 12013048): post C (78.44673) short of goal B on an unlimited-budget scenario (cost_of_works £2892)
- property 742095 (uprn 100020233237): post C (68.751595) short of goal B on an unlimited-budget scenario (cost_of_works £0)
- property 742096 (uprn 100020233238): post C (68.751595) short of goal B on an unlimited-budget scenario (cost_of_works £0)
- property 742097 (uprn 100020233239): post C (72.782684) short of goal B on an unlimited-budget scenario (cost_of_works £7684)
- property 742098 (uprn 100020233240): post D (67.203026) short of goal B on an unlimited-budget scenario (cost_of_works £633)
- property 742099 (uprn 100020233241): post D (67.30785) short of goal B on an unlimited-budget scenario (cost_of_works £3400)
- property 742100 (uprn 100020233242): post C (68.658844) short of goal B on an unlimited-budget scenario (cost_of_works £35)
- property 742101 (uprn 100020233243): post D (66.59807) short of goal B on an unlimited-budget scenario (cost_of_works £3285)
- property 742102 (uprn 100020233244): post C (68.751595) short of goal B on an unlimited-budget scenario (cost_of_works £0)
- property 742103 (uprn 100020233204): post C (68.751595) short of goal B on an unlimited-budget scenario (cost_of_works £0)
- property 742104 (uprn 100020233205): post D (66.40878) short of goal B on an unlimited-budget scenario (cost_of_works £32)
- property 742105 (uprn 100020233206): post C (68.751595) short of goal B on an unlimited-budget scenario (cost_of_works £0)
- property 742106 (uprn 100020233207): post C (68.751595) short of goal B on an unlimited-budget scenario (cost_of_works £0)
- property 742107 (uprn 100020233208): post C (68.751595) short of goal B on an unlimited-budget scenario (cost_of_works £0)
- property 742108 (uprn 100020233209): post C (68.751595) short of goal B on an unlimited-budget scenario (cost_of_works £0)
- property 742109 (uprn 100020233210): post C (74.14777) short of goal B on an unlimited-budget scenario (cost_of_works £3070)
- property 742110 (uprn 100020233211): post C (68.751595) short of goal B on an unlimited-budget scenario (cost_of_works £0)
- property 742111 (uprn 100020233212): post C (68.751595) short of goal B on an unlimited-budget scenario (cost_of_works £0)
- property 742112 (uprn 100020233213): post C (68.751595) short of goal B on an unlimited-budget scenario (cost_of_works £0)
- property 742113 (uprn 100020233235): post C (69.19524) short of goal B on an unlimited-budget scenario (cost_of_works £4861)
- property 742114 (uprn 100020233236): post C (73.46247) short of goal B on an unlimited-budget scenario (cost_of_works £7126)
- property 742116 (uprn 100020942574): post D (67.459236) short of goal B on an unlimited-budget scenario (cost_of_works £28)
- property 742117 (uprn 100020942575): post D (67.459236) short of goal B on an unlimited-budget scenario (cost_of_works £28)
- property 742118 (uprn 100020942576): post D (67.459236) short of goal B on an unlimited-budget scenario (cost_of_works £28)
- … and 261 more (see CSV)
already-meets-goal-with-works (MEDIUM) — 4
- property 742077 (uprn 34156817): already B >= goal B but cost_of_works £4515
- property 742078 (uprn 34156818): already B >= goal B but cost_of_works £4515
- property 742207 (uprn 100081143001): already B >= goal B but cost_of_works £1029
- property 742269 (uprn 100022769436): already B >= goal B but cost_of_works £1029
zero-works-post-differs (MEDIUM) — 2
- property 742302 (uprn 100022921559): £0 works but post SAP 70.5 != effective 72.0
- property 742367 (uprn 5300072135): £0 works but post SAP 68.9 != effective 70.0
effective-lodged-divergence (LOW) — 9
- property 742131 (uprn 148013838): effective 62 vs lodged 47 (Δ+15, reason=pre_sap10)
- property 742132 (uprn 148013839): effective 62 vs lodged 47 (Δ+15, reason=pre_sap10)
- property 742204 (uprn 100081142998): effective 69 vs lodged 54 (Δ+15, reason=pre_sap10)
- property 742206 (uprn 100081143000): effective 69 vs lodged 54 (Δ+15, reason=pre_sap10)
- property 742208 (uprn 100081143002): effective 59 vs lodged 44 (Δ+15, reason=pre_sap10)
- property 742216 (uprn 100081143009): effective 69 vs lodged 54 (Δ+15, reason=pre_sap10)
- property 742355 (uprn 100022982934): effective 63 vs lodged 47 (Δ+16, reason=pre_sap10)
- property 742394 (uprn 100022909582): effective 71 vs lodged 86 (Δ-15, reason=pre_sap10)
- property 742395 (uprn 100022909583): effective 72 vs lodged 87 (Δ-15, reason=pre_sap10)
negative-bill-savings (LOW) — 31
- property 742065 (uprn 10010206038): energy_bill_savings £-454/yr on £1043 of works
- property 742066 (uprn 10010206039): energy_bill_savings £-417/yr on £7876 of works
- property 742068 (uprn 10010206041): energy_bill_savings £-442/yr on £8510 of works
- property 742145 (uprn 5300022461): energy_bill_savings £-799/yr on £3196 of works
- property 742146 (uprn 5300022470): energy_bill_savings £-799/yr on £3196 of works
- property 742147 (uprn 5300022471): energy_bill_savings £-799/yr on £3196 of works
- property 742148 (uprn 5300022472): energy_bill_savings £-685/yr on £3270 of works
- property 742149 (uprn 5300022473): energy_bill_savings £-799/yr on £3196 of works
- property 742150 (uprn 5300022474): energy_bill_savings £-799/yr on £3196 of works
- property 742151 (uprn 5300022475): energy_bill_savings £-799/yr on £3196 of works
- property 742153 (uprn 5300022477): energy_bill_savings £-746/yr on £3196 of works
- property 742155 (uprn 5300022479): energy_bill_savings £-799/yr on £3196 of works
- property 742156 (uprn 5300022462): energy_bill_savings £-799/yr on £3196 of works
- property 742157 (uprn 5300022480): energy_bill_savings £-517/yr on £11607 of works
- property 742158 (uprn 5300022481): energy_bill_savings £-799/yr on £3196 of works
- property 742159 (uprn 5300022482): energy_bill_savings £-799/yr on £3196 of works
- property 742160 (uprn 5300022483): energy_bill_savings £-799/yr on £3196 of works
- property 742161 (uprn 5300022484): energy_bill_savings £-799/yr on £3196 of works
- property 742162 (uprn 5300022485): energy_bill_savings £-799/yr on £3196 of works
- property 742163 (uprn 5300022486): energy_bill_savings £-799/yr on £3196 of works
- property 742164 (uprn 5300022487): energy_bill_savings £-799/yr on £3196 of works
- property 742166 (uprn 5300022489): energy_bill_savings £-799/yr on £3196 of works
- property 742167 (uprn 5300022463): energy_bill_savings £-799/yr on £3196 of works
- property 742168 (uprn 5300022490): energy_bill_savings £-799/yr on £3196 of works
- property 742169 (uprn 5300022491): energy_bill_savings £-799/yr on £3196 of works
- property 742170 (uprn 5300022492): energy_bill_savings £-799/yr on £3196 of works
- property 742171 (uprn 5300022464): energy_bill_savings £-799/yr on £3196 of works
- property 742172 (uprn 5300022465): energy_bill_savings £-799/yr on £3196 of works
- property 742174 (uprn 5300022467): energy_bill_savings £-922/yr on £1057 of works
- property 742176 (uprn 5300022469): energy_bill_savings £-799/yr on £3196 of works
- property 742265 (uprn 10033526327): energy_bill_savings £-896/yr on £10682 of works