Skip to content

UK spine: housing benefit £2.7bn against OBR £12.1bn — pensioner and supported-accommodation HB missing after the UC migration #867

Open

Description

@juaristi22

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.

Refs #762, #736, #665.

Activity

  1. juaristi22 commented on Sep 16, 2026

    @juaristi22
    CollaboratorAuthor

    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.

  2. juaristi22 commented on Oct 14, 2026

    @juaristi22
    CollaboratorAuthor

    Status 2026-10-14, for the next triage round.

    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:

    1. Restate the reasons of obr.housing_benefit and the three dwp.hb.households* exclusions, which still describe spine-q and expire 2026-12-08.
    2. The SPI channel's benefit-receipt fill (UK spine: composition-faithful SPI income draw — bridge predictors and rank-preserving replacement (with-children UC residual) #840's lane): re-measure the HB reporters by channel on the post-Draw SPI-channel incomes at the FRS twin's conditional rank (#840) #1256 spine.
    3. Decide whether the supported and temporary-accommodation part of the OBR line is declared as a reconciliation the household frame cannot carry, or whether working-age legacy reporters get the legacy-closure draw (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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions