Repository navigation
End income-related ESA when the family claims Universal Credit - #2563
Conversation
A claim for Universal Credit brings the abolition of income-related ESA (Welfare Reform Act 2012 s.33(1)(b)) into force for the claimant's old style ESA award, whether or not UC is awarded (SI 2013/983 art. 4(1), (2)(a), (3)(a) and (9); NI: SR 2017/190 art. 6). The model paid it alongside UC. esa_income_report_closed (Person) ends the award on a report when the owner's legacy benefits close, or when they are the claimant or partner of a benefit unit that claims UC. esa_income, esa_income_eligible and award_of_members read it, so every reader of the claimant's or partner's award agrees. A non-dependant's own award is not part of the claim. Existing cases for legacy ESA claimants now say the family does not claim UC (would_claim_uc: false), which keeps what each one tests. Fixes #1914 (the UC overlap; the 1 July 2026 abolition follows #1910). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
These tests model families on legacy income-related awards. would_claim_uc defaults to true, and a UC claim now ends the couple's income-related ESA (esa_income_report_closed), so their builders say the family does not claim UC. Where a test is about UC too, the claim follows the scheme: the benefit cap's UC families claim and its HB families don't, and the winter heating families claim exactly when their award is UC. The benefit cap's reference counts the couple's income-related ESA only without a claim. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Aggregate impact on certified data: passBase Checks: 0 broken by this change, 1 failing on both sides, 0 fixed. Moves flagged for review: 110 (thresholds in Notes
Moves flagged for review
70 more flags are in the report artifact. Spending by benefit and service
Caseloads
Government balance, each component counted once
Model totals
Household income totals
Poverty rates
People in poverty
Inequality
Mean household net income in each side's own deciles
Standard reform costings (change in gov_balance)
Household net income by decileMean change in household net income per household, and as a share of the decile's base income; households stay in the base run's deciles.
No change in any year: receipts by tax head; population; standard reforms: change in each reform's target. Checks failing on both base and head (1)
Counted-once checkEach of 84 components was raised by £1 per unit in 2026-27, and every head of its totals was read household by household: its own head must rise by exactly £1, no other tax head may move, no other benefit may rise, and the model's own total must move by what its heads moved. A head that breaks a rule is measured again twice: with every other head held at its baseline value, and with every other head held at its value after the first £1 while the component rises again. It fails where either still shows the response. 0 failed; 0 were skipped. Provenance
Dataset: Receipts by tax head: head levels
Spending by benefit and service: head levels
Caseloads: head levels
Government balance, each component counted once: head levels
Model totals: head levels
Household income totals: head levels
Population: head levels
Poverty rates: head levels
People in poverty: head levels
Inequality: head levels
Mean household net income in each side's own deciles: head levels
Standard reform costings (change in gov_balance): head levels
Standard reforms: change in each reform's target: head levels
|
The carer reports income-related ESA in some of these tests, and a UC claim (would_claim_uc defaults to true) now ends it, so the family says it does not claim UC. CI shards 1 and 5 failed on these six tests at e9aec0d; all 20 pass locally. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Hand-off to the UK hub (sprint build for #1914)
Tests
Impact: ESA(IR) spending falls £1.33bn in 2025-26, £1.39bn in 2027-28 and £1.53bn in 2031-32. The caseload falls by 116k to 119k benefit units. CTR rises by £0.3m to £0.8m; UC is unchanged. The government balance improves by £1.33bn to £1.53bn. Absolute poverty rises by 21k to 24k people BHC and 34k to 42k AHC. Source: the Aggregate impact comment (certified EFRS 1.58.1, base main 9d81a5d). Open items
🤖 Generated with Claude Code |
Main's #2558 added a Pension Credit earnings-disregard case whose couple's benefit unit doesn't set would_claim_uc, so under this PR the default UC claim ends the partner's income-related ESA (claimant_or_partner_esa_income 0, not 5,000). Set would_claim_uc: false on that benefit unit, as this PR already does in 84 other legacy cases (independent review B1). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Merged by the UK hub (Claude session 8e19f9d5) at head
|
Fixes #1914 (the Universal Credit overlap). The 1 July 2026 abolition itself moves to #2562 (see "Not in this PR").
What and why
The model paid income-related ESA to a family that also claims Universal Credit.
esa_incomewas not gated on the claim, so on the Enhanced FRS (uk-data 1.56.16, 2027) it paid £1.64bn of ESA(IR) to 137.8k benefit units that also get UC (issue body). A UC claim ends an old style ESA award's income-related allowance. So the claimant's and partner's ESA(IR) now ends when their family claims UC.The law
esa_contrib, unchanged).The change
esa_income_report_closed(Person) is true when the award on a member's report has ended. That happens when their legacy benefits have closed (person_legacy_benefits_closed, as before), or when they are the claimant or partner of a benefit unit that claims UC (claims_universal_credit).person_legacy_benefits_closedinesa_income,esa_income_eligibleandutils/benefit_unit.award_of_members(through a per-awardREPORT_CLOSEDmap; income-based JSA keepsperson_legacy_benefits_closed). So every reader of the claimant's or partner's award agrees:claimant_or_partner_esa_income,is_on_income_related_esa, the passports, the CTR and HB means tests, and the benefit cap.person_legacy_benefits_closed, for two reasons. Abolish working-age Housing Benefit from 1 July 2026 (NI 1 October 2026) #1910, held under d837, edits that variable. And widening it would also end income-based JSA, which is out of scope here.claims_universal_credit, the same claim flag that already ends a working-age Housing Benefit continuing award and Child Tax Credit. Like them, a household entered withoutwould_claim_uc: falseclaims UC, becausewould_claim_ucdefaults to true.claims_universal_credit's documentation no longer lists income-related ESA among the overlaps it doesn't model.Before and after
Single claimant aged 40, reporting £5,000 a year of income-related ESA, no capital, 2025 (
esa_income_universal_credit_claim.yaml):would_claim_ucesa_income£7,000Case 1 in full (model run, 2025): on main, £5,000 of ESA(IR) plus £4,801.68 of UC (12 × £400.14), so £9,801.68 of benefits. Here, the UC alone: £4,801.68. Household net income falls by £5,000. Case 3 goes from £5,000 of ESA(IR) and no UC to neither.
Aggregate impact
From the Aggregate impact report at 1abee5e, refreshed at 09:25Z, with the same figures as at e9aec0d. It compares base 9d81a5d (main's head, the merge commit's first parent) with merge bd5cf1f, both on the certified Enhanced FRS 2024-25 (policyengine-uk-data 1.58.1). The report found 0 checks broken by this change, and 1 failing on both sides.
Tests
policyengine_uk/tests/policy/baseline/finance/benefit/family/esa_income/esa_income_universal_credit_claim.yamlhas six cases, hand-computed from the law above. Cases 1 and 3 to 6 fail on main and pass here. Case 2 is the no-claim control (it fails on main only becauseesa_income_report_closedis new).policyengine_uk/tests/test_esa_income_universal_credit_claim_properties.py(Hypothesis, derandomised) covers 2024 to 2027.would_claim_uc, which defaults to true, so the claim now ends their award. Each getswould_claim_uc: falseon the benefit unit whose claimant or partner reports ESA(IR). That keeps what the case tests: an ESA capital, work, passport or reader rule for a family on the legacy award. They were found by computingesa_income_report_closedfor every YAML case with a report: it ended a live report in 84 cases and left 45 alone, and after the change it ends none. Ten Python test files get the same change in their builders, for the same reason. Where a test covers UC as well, the claim follows the scheme instead:Local runs, in the worktree's locked venv (core 3.33.2) at load 70 to 240:
esa_income£7,000 against £2,000), and case 2, the control, passes.esa_income_reportedinput (23 files, 385 cases): all pass.-n 2, 7 min).code_healthmetadata checks (variables, input definitions, income and aggregation lists, uprating, fix-PR checker): 2,354 pass.uvx ruff@latest format --check .(0.17.1): clean.test_income_support_esa_entered_directly.py, whose carer reports ESA(IR) under the default UC claim. 1abee5e gives that familywould_claim_uc: false, and the file now passes 20/20 locally.Invariants
claimant_or_partner_esa_income= 0), and neither is on it (is_on_income_related_esa). So UC and the couple's ESA(IR) are never both paid, whether or not UC is awarded.esa_income,claimant_or_partner_esa_income,esa_income_eligibleand each member'sis_on_income_related_esaall match. A non-dependant's own award is what it would be without the couple's report.esa_income_report_closedisperson_legacy_benefits_closed, as before.Intended: claiming UC can raise
esa_income. While the claimant or partner reports an award,esa_income_eligibletests only them, and another member's report is paid or not with their claim. Once the claim ends the couple's award, that member is screened on their own claim, which is invariant 2.Not in this PR
fiscal_year_blendswitch, which is held under d837. It is tracked in Abolish income-related ESA from 1 July 2026 (NI 1 October 2026) #2562. Until it lands, a family that does not claim UC keeps its reported ESA(IR) after 1 July 2026.Reproducer:
policyengine_uk/tests/policy/baseline/finance/benefit/family/esa_income/esa_income_universal_credit_claim.yaml::Case 1, a single claimant who claims Universal Credit loses income-related ESA.,policyengine_uk/tests/test_esa_income_universal_credit_claim_properties.py::test_a_universal_credit_claim_ends_the_couples_income_related_esaaxiom: TheAxiomFoundation/rulespec-uk#433 queued
🤖 Generated with Claude Code