Let pension-age families make new Housing Benefit claims - #1901
Merged
Merged
Conversation
housing_benefit_eligible required a reported Housing Benefit claim and would_claim_uc False for every family. would_claim_uc defaults to True in household calculations, so pension-age renters never received Housing Benefit there. In the Enhanced FRS, pension-age families who report Housing Benefit lost it whenever the Universal Credit take-up draw came out True. New Housing Benefit claims are barred except where the claimant and any partner have reached the qualifying age for State Pension Credit (SI 2014/1230 reg 6A(4); NI SR 2016/226 reg 4A(4)). Universal Credit is not available to them (WRA 2012 s.4(1)(b)). A family in which every adult is over State Pension age is now eligible on that route, without a reported claim and whatever would_claim_uc says. Other families keep the continuing-award rule: a reported claim and no Universal Credit claim. Also corrects the Housing Benefit docs page and the take-up parameter description, which said only existing claimants are eligible. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Sep 30, 2026
…tion Review follow-up: a protected mixed-age couple can be eligible for both, so the invariant is about receipt. Also note that every adult stands in for the claimant and partner, and that the 1 July 2026 end of working-age awards (SI 2025/1148 art. 7) is not modelled. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Collaborator
Author
|
Merged at 59560c3 on Max's direct request for this fix (2026-09-29). Gates at merge: all 7 checks passed on the latest run and the PR was MERGEABLE. An independent Opus 5.5 review (Subfleet job 20260930-030326-hb1901-review) returned APPROVE with no blockers; its three wording points (receipt vs eligibility for the HB/UC exclusion, the unmodelled 1 July 2026 working-age abolition, every adult as a proxy for claimant and partner) are applied in 59560c3. Axiom parity: TheAxiomFoundation/rulespec-uk#370 (queued). Coordination with #1896 is noted there. |
This was referenced Sep 30, 2026
Open
MaxGhenis
added a commit
that referenced
this pull request
Sep 30, 2026
housing_benefit_eligible (from #1901) read is_adult; like is_uc_eligible and is_pension_credit_eligible it now tests the claimant and any partner (SI 2014/1230 reg 6A(4)), so a pensioner with an 18 or 19 year old dependant can claim Housing Benefit and not Universal Credit. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Sep 30, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
housing_benefit_eligiblerequired a reported Housing Benefit claim (housing_benefit_reported > 0) andwould_claim_ucFalse for every family.would_claim_uchas no formula and defaults to True outside datasets, so in household (situation) simulations no pension-age renter ever received Housing Benefit:The same gate hit the Enhanced FRS:
policyengine-uk-datadrawswould_claim_ucfor every benefit unit (pensioners included), so wholly pension-age families who report Housing Benefit lost it whenever that draw came out True (39% of pension-age units).Law
is_SP_ageis the right test.All texts read on legislation.gov.uk on 2026-09-29.
Change
housing_benefit_eligible= (pension-age route | continuing award) & (social tenant | LHA-eligible) & capital within the limit, wherewould_claim_ucis ignored.housing_benefit_reported > 0and notwould_claim_uc(the previous rule, unchanged for working-age and mixed-age families; for mixed-age couples it stands in for the SI 2019/37 saving).The pension-age test counts the same members as
is_uc_eligible(any working-age adult) andis_pension_credit_eligible(all adults over State Pension age), so a family on that route gets no UC; the continuing-award route requires not claiming UC, anduniversal_creditisdefined_forwould_claim_uc. So no family receives both (a protected mixed-age couple can be eligible for both, and takes HB).would_claim_housing_benefitis unchanged, so dataset take-up still follows reported claims.Also corrected: the Housing Benefit docs page (eligibility section; it also said
would_claim_housing_benefitis drawn stochastically, but it is a formula), the unusedhousing_benefit/takeup.yamldescription ("only current claimants are eligible (no new claims)"), and the comment inuc_legacy_mutual_exclusion.yaml.Invariants (property-tested in
test_housing_benefit_pension_age_properties.py)benunit_rent; HB ≤LHA_capfor LHA tenants; no HB for non-renters or above the capital limit; never HB > 0 and UC > 0 for the same family (a model convention: specified and temporary accommodation is not modelled).claims_all_entitled_benefitsFalse): HB > 0 implies reported HB; for families with a working-age adult, eligibility equals the previous continuing-award formula (differential against the old rule).would_claim_ucnever changes a wholly pension-age family's HB.Six family shapes (single/couple pension-age, mixed-age, single/couple working-age, and a pensioner with an 18–19-year-old dependant), all five tenures, Hypothesis
derandomize=True, 10 examples of up to 30 families each (45 s). Invariants 2 and 4 fail on main.Tests
housing_benefit_pension_age_claims.yaml, 12 cases with hand-checked values: single pensioner council tenant (Guarantee Credit passport, HB = rent); pensioner couple capped at LHA (£8,000); a tapered new claim (£9,000 − 0.65 × (£20,000 − £13,312) = £4,652.80); capital over £16,000 without Guarantee Credit (ineligible); capital disregarded on Guarantee Credit;would_claim_ucTrue does not block; dataset-style reporter withwould_claim_ucTrue is paid; mixed-age couple without and with a continuing award; working-age council tenant (no new claim); pension-age owner-occupier; Northern Ireland. 7 of the 12 fail on main.policyengine-core teston all HB, UC/legacy mutual-exclusion and capital YAML files: 30 passed. The scratch run of the full suites on this design (1,264 YAML tests; 314 non-microsimulation pytest tests) found no existing test changes outcome: tests without anageinput default to 40.Dataset impact (Enhanced FRS 2024-25, current weights, real runs of main vs this branch)
Every gainer is a wholly pension-age family that reports HB but drew
would_claim_ucTrue; nobody loses HB. Pension-age families who report no HB still get none in the dataset (take-up there is reported-only), so the new-claim route shows up in household calculations, not in dataset totals.Caveats: the current weights were calibrated to an OBR HB total while the model paid these families nothing, so a
policyengine-uk-datarebuild will move these numbers. The dataset's pension-age HB is already well above DWP's split (GB 2025-26: about £11.35bn in PE vs £7.11bn over Pension Credit age in DWP's Spring 2026 tables, with working-age far below DWP); that mismatch predates this fix and comes from the weights, and this fix widens the pension-age gap by about £0.45bn until the rebuild.Not in this PR (follow-ups filed separately)
is_uc_eligibleandis_pension_credit_eligible; in law it is the claimant and any partner, so a pensioner with an 18–19-year-old dependant is still routed to UC. Replace generic child and adult flags with each programme's legal definitions #1896 moves UC and Pension Credit tois_claimant_or_partner; whichever of the two PRs merges second should move this test with them (and Replace generic child and adult flags with each programme's legal definitions #1896's code-health test flags theis_adultread here).guarantee_creditrather than receipt of it; the £5/£10 earnings disregards are uprated with CPI and applied to all income, not only earnings; the LHA cap is applied after the taper rather than to eligible rent.axiom: SI 2014/1230 reg 6A(4) — TheAxiomFoundation/rulespec-uk#370 queued
🤖 Generated with Claude Code