You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
UK spine: housing benefit £2.7bn against OBR £12.1bn — pensioner and supported-accommodation HB missing after the UC migration #867
Found while measuring the first calibrated rowwise UK local candidate (#762, receipts R8–R15 on uk-rowwise-candidate-762-b). The row is a reviewed measure exclusion under #762 A16, expiring 2026-10-03, tracked on #736.
Measured on spine-m (FRS 2024-25, policyengine-uk 2.92.1, calibration year 2025), single-block engine resolution:obr.housing_benefit — spine £2.67bn against the OBR EFO £12.10bn (−78 % at initialization). Block-insensitive (identical under per-block and single-block resolution), so the miss is real.
What binding it does: under the ruled grain_equal weighting the solver chases the aggregate by multiplying the few HB households — £9.4bn at 512 epochs, £11.4bn at 1500 — which halves the effective sample (ESS fraction 0.161 → 0.105 at K=15) and doubles Glasgow's social-rent count. Excluded, the concentration returns (max/median weight 2,857 → 398, R13).
Likely cause: housing benefit after the UC migration. OBR's HB line is dominated by pensioner HB and supported / temporary accommodation, which the FRS either does not capture as HB or which the spine's take-up / migration stages route into the UC housing element. The FRS-reported HB caseload should be checked against DWP Stat-Xplore HB caseload by age band and accommodation type.
Ask: reconcile the spine's HB caseload and spend against the DWP HB caseload (pensioner / working-age / supported accommodation) and the OBR spend line; add an imputation or reclassification stage for the missing pensioner and supported-accommodation HB; and, if the OBR line legitimately includes spend the household frame cannot carry, declare that reconciliation on the target.
Acceptance: the row sits within 25 % at initialization on the next spine and the A16 exclusion retires.
Re-adjudicated to 2026-12-08 in #937 on the mechanism receipts (tools/diagnose_uk_legacy_benefits.py, experiments/882-uc-repairs-receipts.md). The source is not the gap: FRS 2024-25 reports 1,559,991 Housing Benefit benefit units at design weights, 99.9 percent renters, against a DWP GB caseload of 1.94m in January 2025 falling to 1.46m by December. The spine carries 1.21m GB reporters because the SPI support channel re-imputes benefit receipt onto its synthetic households without tenure coherence: 363k of its 451k Housing Benefit reporters sit in owner-occupied households and can never be paid (the frs channel's 758k are all renters). The engine then pays only reporting units with a rented tenure, not drawn into Universal Credit, under the capital limit and carrying the household's rent (rent is the household head's benefit unit's; claims_all_entitled_benefits is a scalar on microdata, so there is no take-up lever). The 55 percent would_claim_uc draw had marked 3.75m all-pension-age units as claimants, inert for UC but zeroing Housing Benefit for 377k reporters on Q50f; #937 gates the draw to units with an adult under State Pension age (rate unchanged, U8 population re-signed): on the licensed twins at design weights the engine's Housing Benefit rises from 401,489 to 644,183 units (£2.61bn to £4.11bn), almost all pension-age. Q50f pays 235k units and £2.13bn against the OBR £12.10bn. Bound as diagnostics on the calendar-2025 window: dwp.hb.households, _social_rented, _private_rented from the Stat-Xplore client-type-by-tenure cube (chronicle#259). Remaining repair: the SPI channel's benefit-receipt fill (a #840/#145 item); the OBR line also carries supported and temporary accommodation the frame has no concept for.
The pension-age half binds and fits: #937 gated the would_claim_uc draw to units with a working-age adult, #1012's housing shell made SPI-row tenure coherent, #1084 bound dwp.hb.households_pension_age (0.0% final on the published cut) and #1121 bound dwp.hb.amount_pension_age on the calendar-2025 window. The residual is working-age Housing Benefit, including supported and temporary accommodation, which neither the frame nor the engine carries: the 2026-10-06 K=25 evaluation measured obr.housing_benefit at −39%. On survey data policyengine-uk pays HB to reporters only (claims_all_entitled_benefits is false on any file with reported benefits), so 2.102.5's pension-age new claims do not reach Microcosm.
Open:
Restate the reasons of obr.housing_benefit and the three dwp.hb.households* exclusions, which still describe spine-q and expire 2026-12-08.
Activity
juaristi22 commentedon Sep 16, 2026
Re-adjudicated to 2026-12-08 in #937 on the mechanism receipts (
tools/diagnose_uk_legacy_benefits.py,experiments/882-uc-repairs-receipts.md). The source is not the gap: FRS 2024-25 reports 1,559,991 Housing Benefit benefit units at design weights, 99.9 percent renters, against a DWP GB caseload of 1.94m in January 2025 falling to 1.46m by December. The spine carries 1.21m GB reporters because the SPI support channel re-imputes benefit receipt onto its synthetic households without tenure coherence: 363k of its 451k Housing Benefit reporters sit in owner-occupied households and can never be paid (thefrschannel's 758k are all renters). The engine then pays only reporting units with a rented tenure, not drawn into Universal Credit, under the capital limit and carrying the household's rent (rent is the household head's benefit unit's;claims_all_entitled_benefitsis a scalar on microdata, so there is no take-up lever). The 55 percentwould_claim_ucdraw had marked 3.75m all-pension-age units as claimants, inert for UC but zeroing Housing Benefit for 377k reporters on Q50f; #937 gates the draw to units with an adult under State Pension age (rate unchanged, U8 population re-signed): on the licensed twins at design weights the engine's Housing Benefit rises from 401,489 to 644,183 units (£2.61bn to £4.11bn), almost all pension-age. Q50f pays 235k units and £2.13bn against the OBR £12.10bn. Bound as diagnostics on the calendar-2025 window:dwp.hb.households,_social_rented,_private_rentedfrom the Stat-Xplore client-type-by-tenure cube (chronicle#259). Remaining repair: the SPI channel's benefit-receipt fill (a #840/#145 item); the OBR line also carries supported and temporary accommodation the frame has no concept for.juaristi22 commentedon Oct 14, 2026
Status 2026-10-14, for the next triage round.
The pension-age half binds and fits: #937 gated the
would_claim_ucdraw to units with a working-age adult, #1012's housing shell made SPI-row tenure coherent, #1084 bounddwp.hb.households_pension_age(0.0% final on the published cut) and #1121 bounddwp.hb.amount_pension_ageon the calendar-2025 window. The residual is working-age Housing Benefit, including supported and temporary accommodation, which neither the frame nor the engine carries: the 2026-10-06 K=25 evaluation measuredobr.housing_benefitat −39%. On survey data policyengine-uk pays HB to reporters only (claims_all_entitled_benefitsis false on any file with reported benefits), so 2.102.5's pension-age new claims do not reach Microcosm.Open:
obr.housing_benefitand the threedwp.hb.households*exclusions, which still describe spine-q and expire 2026-12-08.would_claim_uc_at_legacy_closure, pe-uk#2119 from 2.128.0, at uk-data#534's rates) at the bump after UK: policyengine-uk 2.130.1 and the fourth batch of #1095 ports, with the release's weight year, identifiers and birth months fixed #1271. See the legacy-benefit item on UK: track the defects uk-data is fixing that microcosm still has #1095.Re-pin the UK parity register to uk-data a43e8c5 (#1278)
Name the parity register's Housing Benefit and employment-count gaps (#…
Re-pin the UK parity register to uk-data a43e8c5 (#1278)
Name the parity register's Housing Benefit and employment-count gaps (#…