Skip to content

Lift the benefit cap only for the support component and the people HB reg 75F and UC reg 83 name, and cap only the family's benefits - #2076

Open
MaxGhenis wants to merge 9 commits into
legacy-award-readers-claimant-partnerfrom
benefit-cap-75f-claimant-partner
Open

MaxGhenis wants to merge 9 commits into
legacy-award-readers-claimant-partnerfrom
benefit-cap-75f-claimant-partner

Conversation

@MaxGhenis

Copy link
Copy Markdown
Collaborator

Summary

The benefit cap lifted in two cases the law does not, and counted benefits it should not:

  1. ESA without the support component. Any income-related ESA of the claimant or partner, and any member's contributory ESA (here and again in is_benefit_cap_exempt_other), lifted the cap. HB Regs 2006 reg 75F(1)(a) and UC Regs 2013 reg 83(1)(a) need ESA "which includes a support component".
  2. Other members' benefits.
    • The exemption summed every benefit-unit member's attendance allowance, DLA, PIP, industrial injuries benefit, Carer's Allowance and Carer Support Payment.
    • It also counted any member's armed forces compensation (in is_benefit_cap_exempt_other), LCWRA flag or caring.
    • Reg 75F(1) and reg 83(1) name the claimant and partner, plus, for some benefits, a child or young person they are responsible for. A non-dependent adult's attendance allowance lifted the family's cap.
  3. Other members' benefits in the capped total. benefit_cap_reduction summed every member's contributory ESA and JSA, incapacity benefit and SDA, and the whole unit's income-related ESA and income-based JSA. UC Regs 2013 reg 80(1) and HB Regs 2006 reg 75A count the benefits "to which the single person or couple is entitled". With UC of £20,000 before the cap, a non-dependent adult's £5,000 of ESA cut the family's UC from £14,753 to £9,753. Count only the claimant's and partner's legacy awards in means tests and passports #2027's review found this, and Count only the claimant's and partner's legacy awards in means tests and passports #2027 now leaves the whole cap to this PR.

A third defect hid the first. Datasets set is_disabled_for_benefits, the default for uc_limited_capability_for_WRA, from receipt of any of ten benefits, ESA included (policyengine-uk-data disability_benefits.py). So the UC LCWRA exception lifted the cap for every ESA recipient, whatever their ESA group. Universal Credit takes the ESA work capability assessment (UC Regs 2013 reg 40(1)(a)(ii)). So a person whose own ESA lacks the support component is now taken not to have LCWRA, whatever the flag. The work allowance and the reduced minimum age need only limited capability for work, so they get a separate uc_limited_capability_for_work, which such a person keeps.

Stacked on #2027 (legacy-award-readers-claimant-partner, head f551e542b, last merged in at 19a13f2c5), which is stacked on #2013, #2001 and #1896.

Law

Fetched verbatim from legislation.gov.uk (/data.xml, current revised text) on 2026-10-02.

HB Regs 2006 regs 75A, 75E(2), 75F; UC Regs 2013 regs 2, 40(1), 79(1), 80(1), 83(1); UC (TP) Regs 2014 reg 19(4); WRA 2007 ss.2(2), 4(4); WRA 2012 s.96(10); HB Regs 2006 regs 2(1), 19, 20(1); UC Regs 2013 regs 4(6), 5(5)

HB Regs 2006 (SI 2006/213) reg 75F:

(1) The benefit cap does not apply where— (a) the claimant or the claimant's partner is receiving an employment and support allowance under Part 1 of the Welfare Reform Act which includes a support component; (b) the claimant or the claimant's partner is receiving an industrial injuries benefit by virtue of Part 5 of the Act; (c) the claimant or the claimant's partner is receiving an attendance allowance; (ca) the claimant or the claimant's partner is receiving pension age disability payment; (d) the claimant or the claimant's partner is receiving a war pension; (e) the claimant, the claimant's partner or a child or young person for whom the claimant or the claimant's partner is responsible, is receiving a disability living allowance; (eza) the claimant, the claimant's partner or a child or young person for whom the claimant or the claimant's partner is responsible, is receiving child disability payment; (ezb) the claimant, the claimant's partner or a young person for whom the claimant or the claimant's partner is responsible, is receiving Scottish adult disability living allowance; (ea) the claimant, the claimant's partner or a young person for whom the claimant or the claimant's partner is responsible, is receiving a personal independence payment, adult disability payment or an armed forces independence payment under the Armed Forces and Reserve Forces (Compensation Scheme) Order 2011; (f) [entitled but not receiving, in hospital or a care home] ... (g) the claimant is receiving universal credit. (h) the claimant, the claimant's partner, or a young person for whom the claimant or the claimant's partner is responsible, is entitled to a carer's allowance under section 70 of the Act; (ha) the claimant, the claimant's partner, or a young person for whom the claimant or the claimant's partner is responsible, is entitled to carer support payment; (i) the claimant, the claimant's partner or a young person for whom the claimant or the claimant's partner is responsible, is entitled to a guardian's allowance under section 77 of the Act.

(2) In this regulation "war pension" has the meaning in regulation 2 (interpretation) and includes— (a) a guaranteed income payment; ...

Reg 75E(2):

This paragraph applies where the claimant is, or the claimant and the claimant's partner are jointly, entitled to working tax credit.

UC Regs 2013 (SI 2013/376) reg 83(1):

The benefit cap does not apply in relation to any assessment period where— (a) the LCWRA element is included in the award of universal credit or the claimant is receiving an employment and support allowance that includes the support component; (b) a claimant is receiving industrial injuries benefit; (c) a claimant is receiving attendance allowance; (ca) a claimant is receiving pension age disability payment; (d) a claimant is receiving a war pension; (e) a claimant is receiving a payment under article 15(1)(c) or article 29(1)(a) of the Armed Forces and Reserve Forces (Compensation Scheme) Order 2011; (f) a claimant, or a child or qualifying young person for whom a claimant is responsible, is receiving disability living allowance; (fa) a claimant, or qualifying young person for whom a claimant is responsible, is receiving Scottish adult disability living allowance; (g) a claimant, or a qualifying young person for whom a claimant is responsible, is receiving personal independence payment; (h) [entitled but not receiving, in hospital or a care home] ...; (ha) a claimant, or a child or qualifying young person for whom a claimant is responsible, is receiving child disability payment; (hb) a claimant, or qualifying young person for whom a claimant is responsible, is receiving adult disability payment; (i) a claimant, or a qualifying young person for whom a claimant is responsible, is entitled to carer's allowance; (ia) a claimant, or a qualifying young person for whom a claimant is responsible, is entitled to carer support payment; (j) the carer element is included in the award of universal credit; (k) a claimant is entitled to guardian's allowance under section 77 of the Contributions and Benefits Act.

UC Regs 2013 reg 2: "attendance allowance" includes "armed forces independence payment under the Armed Forces and Reserve Forces (Compensation Scheme) Order 2011". WRA 2012 s.40: "claimant" means a single claimant or each of joint claimants.

UC Regs 2013 reg 40(1):

A claimant has limited capability for work and work-related activity if— (a) it has been determined that— (i) the claimant has limited capability for work and work-related activity on the basis of an assessment under this Part, or (ii) the claimant has limited capability for work related activity on the basis of an assessment under Part 5 of ESA Regulations; ...

UC (Transitional Provisions) Regs 2014 reg 19(4): where it had been determined that a claimant moving from old style ESA "had limited capability for work-related activity ... (b) the claimant is to be treated as having limited capability for work and work-related activity for the purposes of regulation 27(1)(b) of those Regulations".

Welfare Reform Act 2007 s.2(2) (contributory allowance), and s.4(4) in the same words (income-related allowance):

The conditions of entitlement to the support component are— (a) that the assessment phase has ended, (b) that the claimant has limited capability for work-related activity, and (c) that such other conditions as may be prescribed are satisfied.

UC Regs 2013 reg 79(1) and reg 80(1), the capped total:

79(1) Unless regulation 82 or 83 applies, the benefit cap applies where the welfare benefits to which a single person or couple is entitled during the reference period exceed the relevant amount ...

80(1) ... the amount of a welfare benefit to be used when determining total entitlement to welfare benefits is the amount to which the single person or couple is entitled during the reference period ...

HB Regs 2006 reg 75A:

Unless regulation 75E or 75F applies, a benefit cap applies where the relevant authority makes a determination that during the reference period the total amount of welfare benefits to which— (a) where the claimant is a member of a couple, each member of the couple is or jointly are entitled; or (b) in any other case, the claimant is entitled, exceeds the relevant amount.

Welfare Reform Act 2012 s.96(10): "welfare benefit" means bereavement allowance, child benefit, child tax credit, employment and support allowance (including income-related), housing benefit, incapacity benefit, income support, jobseeker's allowance (including income-based), maternity allowance, severe disablement allowance, universal credit, widow's pension, widowed mother's allowance or widowed parent's allowance.

HB Regs 2006 reg 2(1): "child" means a person under the age of 16. Reg 19(1): a "young person" is a person who falls within the definition of qualifying young person in section 142 of the Act; reg 19(2) excludes a person on income support, income-based JSA or income-related ESA, or entitled to universal credit. Reg 20(1): a person is responsible for a child or young person who is normally living with them. UC Regs 2013 reg 5(5): "A person who is receiving universal credit, an employment and support allowance or a jobseeker's allowance is not a qualifying young person." Reg 4(6): a child or qualifying young person looked after by a local authority is treated as not being anyone's responsibility.

Changes

ESA with the support component

  • New has_own_esa_award (Person): the person claims ESA themselves. That means reported contributory ESA or a reported income-related award. When the family's income-related award is entered directly, the award goes to the claimant or partner who heads the benefit unit (else the eldest), so a couple's award has one recipient.
  • New esa_includes_support_component (Person): whether the person's ESA includes the support component (WRA 2007 ss.2(2), 4(4)).
    • Datasets and users can supply it.
    • Otherwise it is assumed for anyone with an ESA award of their own.
    • FRS 2024-25 supports the default: of the ESA recipients in FRS-sourced records who answered the ESA group question, 584 of 629 (93%) are in the support group.
  • The exception needs a claimant or partner who receives ESA with the support component. Receiving means their own contributory ESA, or the couple's income-related award (is_on_income_related_esa, from Count only the claimant's and partner's legacy awards in means tests and passports #2027).
  • The esa_contrib > 0 term leaves is_benefit_cap_exempt_other.

On the default: policyengine-uk-data also builds esa_support_group_proxy, from labour-market status (working age, reported status long-term sick or disabled, no hours of work, and its ESA health-condition proxy). It agrees with the survey's own answer for 524 of those 629 records (83%). Assuming the support component agrees for 584 (93%). So the model uses the constant default and does not read the proxy. The survey's own answer is the better source; see the follow-ups.

Who counts

Benefit or circumstance Law Lifts the cap when held by
ESA with the support component 75F(1)(a); 83(1)(a) claimant or partner
Attendance allowance, industrial injuries benefit, armed forces compensation (guaranteed income payments) 75F(1)(b)-(d), (2)(a); 83(1)(b)-(e) claimant or partner
DLA 75F(1)(e); 83(1)(f) claimant, partner, or a child or young person they are responsible for
PIP, Carer's Allowance, Carer Support Payment 75F(1)(ea), (h), (ha); 83(1)(g), (i), (ia) claimant, partner, or a young person they are responsible for
Armed forces independence payment 75F(1)(ea); UC reg 2 (counts as attendance allowance) claimant, partner, or a Housing Benefit young person
LCWRA element, carer element 83(1)(a), (j); regs 27(1), 29(1) a claimant with limited capability, or with caring responsibilities; or an element entered directly
Working tax credit 75E(2) the claimant or couple (unchanged)
  • One cap, two schemes. The model applies one cap to Universal Credit and Housing Benefit, so an exception in either scheme counts. It already does this for the family rate (is_responsible_for_child_or_young_person_for_uc_or_housing_benefit).
    • A child or young person is anyone is_child_or_young_person_for_legacy_benefits (HB regs 2, 19) or is_child_or_qualifying_young_person_for_universal_credit (UC regs 4-5) counts.
    • A 16-year-old also counts (UC reg 5(1)(a), the same annual approximation the family rate uses), unless they receive benefits in their own right (UC reg 5(5); HB reg 19(2)) or are looked after by a local authority (UC reg 4(6)).
    • The UC LCWRA and carer exceptions also reach Housing Benefit families, as before, but now only through a claimant.
  • LCWRA inferred from ESA, in one direction. uc_limited_capability_for_WRA still defaults to is_disabled_for_benefits. A person whose own ESA award lacks the support component is now taken not to have LCWRA, whatever the flag. A determination of limited capability for work-related activity is what gives ESA its support component, and Universal Credit takes it (UC Regs 2013 reg 40(1)(a)(ii); UC (TP) Regs 2014 reg 19(4)).
  • Limited capability for work. New uc_limited_capability_for_work = uc_limited_capability_for_WRA or is_disabled_for_benefits.
    • The work allowance (reg 22(1)(b)) and the reduced minimum age (reg 8(1)(a)) read it. So an ESA recipient outside the support group, who loses LCWRA, keeps both, and their results are as before for every input that does not set the new variables.
    • Reg 39(1)(a) would also give limited capability for work to any ESA award of the person's own. The model does not infer that yet, for the same every-member reason.
  • Carer element. For calculated elements, "a claimant who has limited capability or is a carer" is the same test in this model as "the award includes the LCWRA or carer element". Where reg 29(4) gives a carer with limited capability only the LCWRA element, that element lifts the cap instead.
  • AFIP. Armed forces independence payment now lifts the cap (Benefit cap applies to 2x too many households (5.3% of UC vs 1.6% administrative) #1818 defect 1; Fix benefit cap exemption defects (#1818) #1820 defect 3). It is a pure input that no dataset populates.
  • Clean-up. is_benefit_cap_exempt_earnings and is_benefit_cap_exempt_other lose the benefit sums they computed and never used. The earnings test and the State Pension age test return what they returned before. The labels that named the wrong test are corrected.

The capped total

benefit_cap_reduction now counts:

Another member's own award no longer reduces the family's Universal Credit or Housing Benefit. esa, jsa, household_benefits and household income keep the full awards. Maternity allowance and the bereavement benefits are welfare benefits too (s.96(10)); they were not in the model's total and are not added here.

Review of the other exceptions

Invariants (property-tested)

test_benefit_cap_specified_benefits_properties.py draws up to six families per simulation.

  • Members: a claimant and an optional partner. Up to three dependants, each a child (0-15), a looked-after child, a young person (16-18 in non-advanced education), a 16-year-old out of education, or a 16-year-old receiving benefits in their own right. One non-dependent adult (17-60, not in education).
  • Circumstances: every person starts with none. Each family gets up to two of sixteen circumstances on random members, and the non-dependant always gets one or two. The sixteen are AA, IIB, AFCS, DLA, PIP, AFIP, CA, CSP, contributory ESA, income-related ESA, contributory JSA, income-based JSA, incapacity benefit, SDA, the disability flag, and 35 hours of caring.
  • Support component: each simulation either supplies it for every person or for none. Policyengine-core gives a partly supplied input its default for the rest.
  • Coverage: hypothesis.event records every role and circumstance drawn.
  1. Adding a non-dependent adult never changes is_benefit_cap_exempt_health_disability, is_benefit_cap_exempt_other, is_benefit_cap_exempt, benefit_cap, benefit_cap_reduction or universal_credit (with £30,000 of UC before the cap), whatever disability or carer benefits, ESA, JSA, incapacity benefit, SDA, disability flag or caring they have.
  2. Differential. The exemption equals an independent reading of regs 75E(2), 75F(1), 83(1) and 40(1)(a)(ii), with the roles fixed by construction.
  3. An exempt family has no cap and no reduction. Any other family has the cap its roles imply: £14,753 for a single claimant with no child or young person, £22,020 otherwise (2025-26, outside London). Its reduction is at least UC less the cap. For the rate, any 16-year-old counts, as the model's family-rate helper still does (follow-up).
  4. Each head alone, exhaustively. For every role × every circumstance, one family whose only circumstance is that one, held by that member, matches the reference. There are 8 roles (claimant, partner, child, looked-after child, young person, 16-year-old, 16-year-old with own-right benefits, non-dependant) and 16 circumstances, so 128 families. The table runs once for each support mode: supplied true, false, and unset.

Properties 1-3 run 40 random examples each. Property 4 is a deterministic table. #2027's legacy-award invariance test reads the cap exemption again (#2027 had dropped it when it handed the cap over). All pass: 16 tests across the two files.

Known violations, out of scope. A non-dependant's age and earnings still lift the cap, through is_benefit_cap_exempt_other (#1944, #1907) and is_benefit_cap_exempt_earnings (#1999, #1820). The draws keep the non-dependant under State Pension age and without earnings.

On the base (3803dda0d), in the single-head table with the support component left to the default, 60 of the 128 families disagree with the reference. For example:

  • a non-dependant's or a looked-after child's anything lifts the cap;
  • a child's attendance allowance lifts it;
  • the claimant's AFIP does not.

On #2027's earlier head 200a1cdc4, Hypothesis's minimal counterexample for properties 1 and 2 was a 25-year-old claimant whose benefit unit adds a 17-year-old non-dependant receiving attendance allowance: the family became exempt.

Tests

YAML: gov/dwp/benefit_cap/benefit_cap_specified_benefits.yaml has 56 cases, each hand-computed from the regulation and the 2025-26 caps (UC reg 80A(2), HB reg 75CA). Every head has a case where a non-dependent adult holds the benefit.

  • ESA, claimant and partner, with and without the support component:
    • contributory ESA on UC: no reduction against £10,247 (18,000 + 7,000 − 14,753);
    • income-related ESA on Housing Benefit: HB of £9,000 against £8,753 (reduction £247, reg 75D(1));
    • couple: no reduction against £2,980.
  • ESA, other cases:
    • income-related ESA stopped by the capital test;
    • the default for a person's own ESA;
    • no ESA;
    • a directly entered award, for a single claimant and for a couple (one recipient);
    • a partner who reports the couple's award.
  • LCWRA inferred from ESA:
    • an ESA recipient flagged disabled but without the support component has no LCWRA and no element, and is capped (£10,247);
    • with the support component, LCWRA and the £5,079.24 element (423.27 × 12, 2025-26) without a flag;
    • the support component alone does not add LCWRA (the ESA head still lifts the cap);
    • a directly entered award with the flag gives the claimant the element, and without the support component no LCWRA and a reduction of £247.
  • Limited capability for work: an adult ESA recipient outside the support group, flagged disabled, keeps the work allowance, and a 17-year-old one meets the reduced minimum age.
  • IIB: for the partner, a young person and a non-dependant.
  • DLA:
    • for a child, a young person and a 16-year-old out of education (exempt);
    • for a 16-year-old receiving benefits in their own right, a 19-year-old out of education, a looked-after child, and a non-dependant (reduction £3,247) (not exempt).
  • PIP, Carer's Allowance and CSP: for a young person, the claimant and a non-dependant.
  • AFIP: for the claimant, a young person in education, a 16-year-old out of education, and a non-dependant.
  • LCWRA flag: for the claimant, a non-dependant and a child.
  • Other:
    • caring without a Carer's Allowance claim;
    • a carer or LCWRA element entered directly (reduction £0 with UC £18,000);
    • a non-dependant with every benefit at once;
    • working tax credit;
    • the unchanged earnings and age tests.

YAML, the capped total: gov/dwp/benefit_cap/benefit_cap_capped_total.yaml has 5 cases on UC and Housing Benefit amounts.

  • A non-dependant's £5,000 of income-related ESA with UC of £20,000: reduction £5,247 and UC £14,753.
  • A non-dependant's contributory ESA, JSA, incapacity benefit and SDA with UC of £18,000: reduction £3,247.
  • The claimant's own contributory JSA of £3,000 with UC of £15,000 counts: reduction £3,247 and UC £11,753.
  • A non-dependant's £6,000 of income-based JSA leaves the family's £9,000 of Housing Benefit alone.
  • The claimant's own £6,000 of income-based JSA counts: reduction £247 and HB £8,753.

Other YAML:

  • benefit_cap.yaml: a 16-year-old out of education gives the family rate (£22,020). This is unchanged; it pins the reg 5(1)(a) approximation. The family-rate helper does not yet apply reg 5(5), because the LHA non-dependant test shares the rule and must change with it (follow-up).
  • legacy_award_readers/passports.yaml (from Count only the claimant's and partner's legacy awards in means tests and passports #2027): the two benefit cap cases now state the support component.

On the base (3803dda0d):

  • benefit_cap_specified_benefits.yaml fails 36 of 56 cases.
    • 21 fail because the new variables do not exist there.
    • 15 fail on value:
      • every case where a non-dependent adult, a dependant with a claimant-only benefit, a 19-year-old, a looked-after child, a 16-year-old with own-right benefits or a disabled child without DLA lifted the cap;
      • AFIP for the claimant and for a young person;
      • an LCWRA element entered directly.
  • benefit_cap_capped_total.yaml fails 3 of 5 cases, all on value. A non-dependant's ESA exempts the whole family there, and a non-dependant's income-based JSA takes £247 off the family's Housing Benefit.

Runs:

  • Targeted runs on 19a13f2c5: gov/dwp and finance/benefit YAML, 669 passed; the cap and legacy-award properties, 16 passed.
  • Full suites on 830306211 (before the merge of f551e542b): YAML 1,635 passed; pytest 2,086 passed, 45 skipped. Full suites on 19a13f2c5: running.
  • ruff format and ruff check are clean.

Enhanced FRS impact

Real Microsimulation runs on a private copy of the Enhanced FRS 2024-25 (sha256 e433e532…), one per package state:

Then again on #2027's newer head f551e542b (payee-only "on") against this branch's 19a13f2c5. The results are identical in every aggregate and every benefit array.

Aggregates only.

The dataset as it stands: £0 in every year 2025-2030. Every benefit, household total (including gov_spending and hbai_household_net_income) and poverty rate is unchanged, and no benefit unit loses the overall exemption.

  • The exemption (3803dda0d → 521373814, and f551e542b → 19a13f2c5). Only the component flags move.
    • is_benefit_cap_exempt_other loses its armed forces and contributory ESA terms. That flips it for 912 records, about 780,000 benefit units weighted. All stay exempt: 845 through is_benefit_cap_exempt_health_disability, now limited to the claimant and partner, and the other 67 through earnings.
    • is_benefit_cap_exempt_health_disability turns false for 69 benefit units, about 27,000 weighted, in every year. All 69 stay exempt through earnings.
      • In 67, the only holder of PIP and contributory ESA is a child under 16. That is a data artefact: 89 children in SPI-synthetic households report both, which no child can receive, and it is filed separately.
      • In the other 2, the holder of PIP is a 19-year-old outside education, who is neither claimant nor young person.
    • The ESA rule changes nothing because the dataset does not report the ESA group. The support component takes its default for every ESA recipient, and every ESA recipient is flagged disabled.
    • The person scopes change nothing because every exempting benefit held by a non-dependant or a dependant sits in a family that is exempt another way.
  • The capped total (521373814 → 830306211). No benefit unit's reduction changes by more than a penny; the largest difference is £0.002, from the order of summation. The dataset has 74 non-dependant records, about 18,000 people weighted, and none reports ESA.

Sensitivity: the survey's own ESA group. The same copy, with esa_includes_support_component taken from FRS 2024-25 ESAGroup for the 629 ESA recipients in FRS-sourced records who answered it. Of those, 584 are in the support group. The stacked SPI-synthetic and capital-gains copies do not link back to FRS records and keep the default.

Base run on the same copy against the branch (f551e542b → 19a13f2c5; 3803dda0d → 830306211 gives the same table):

Year Lose the exemption (k) Newly capped on UC (k) Capped UC families, base → branch (k) LCWRA element (£bn) UC before cap (£bn) Cap reduction (£bn) UC (£bn) AHC poverty (pp)
2025 8.6 3.2 133.6 → 136.8 −0.194 −0.132 +0.021 −0.153 +0.008
2026 8.7 4.5 268.4 → 272.9 −0.175 −0.124 +0.025 −0.149 +0.008
2027 8.7 5.1 303.8 → 308.9 −0.179 −0.127 +0.027 −0.154 +0.008
2028 8.7 5.1 341.8 → 347.0 −0.177 −0.126 +0.030 −0.156 +0.008
2029 8.5 4.9 359.1 → 363.9 −0.181 −0.129 +0.029 −0.158 +0.007
2030 8.5 4.9 397.3 → 402.2 −0.110 −0.075 +0.031 −0.106 +0.006
  • About 38,000 benefit units lose the UC LCWRA element because a claimant's own ESA is outside the support group.
  • UC before the cap falls by less than the element, because some awards are already tapered to nil.
  • The cap then takes £0.02-0.03bn more from the families that lose the exemption. Housing Benefit does not change.
  • Since only about 62% of weighted ESA recipients link to an answer, this understates what a complete survey column would do.
  • For scale: the model already caps 268,000 UC families in 2026, against DWP's administrative count of 111,000 for November 2025 (Benefit cap applies to 2x too many households (5.3% of UC vs 1.6% administrative) #1818). These rules move it a little further from that figure.

Axiom

axiom: TheAxiomFoundation/rulespec-uk#425 queued

None of these provisions is in the corpus: HB Regs 2006 regs 75A, 75E and 75F; UC Regs 2013 regs 79, 80 and 83; WRA 2007 ss.2 and 4; WRA 2012 s.96. rulespec-uk encodes UC regs 80A, 81 and 82, and its reg 81 takes the capped total as an input. The issue holds the verbatim law, the required outputs, a pasteable review_finding and companion tests taken from this PR's YAML. It extends #389 (regs 79/83, the age question) and #416 (reg 75F(1)(a), from #2027).

Coordination

The same lines are edited by several other open PRs; whichever lands second resolves by hand:

Follow-ups

  • ESA group from the survey. FRS 2024-25 asks every ESA recipient which group they are in (ESAGroup, benefits table VAR3 for BENEFIT 16: 1 work-related activity group, 2 support group, 3 assessment phase). policyengine-uk-data can supply a complete esa_includes_support_component column from it. Until then, no dataset result depends on the support component.
  • Children with adult benefits in the data. 89 children under 16 in SPI-synthetic households report enhanced PIP and contributory ESA (policyengine-uk-data).
  • Reg 5(5) for the family rate and LHA. is_responsible_for_child_or_young_person_for_uc_or_housing_benefit and lha_renter_has_non_dependant should stop counting a 16-year-old who receives benefits in their own right or is looked after. Both have to change together.
  • Split the exceptions by scheme. UC reg 83 would apply only to UC awards and HB reg 75F only to Housing Benefit. That would remove the union's LCWRA and carer-element exceptions for Housing Benefit families, the young-person AFIP and WTC heads for UC, and so on.

🤖 Generated with Claude Code

MaxGhenis and others added 8 commits October 2, 2026 05:54
HB Regs 2006 reg 75F(1)(a) and UC Regs 2013 reg 83(1)(a) lift the cap where
"the claimant or the claimant's partner is receiving an employment and
support allowance ... which includes a support component". The model lifted
it for any income-related ESA of the claimant or partner and for any
member's contributory ESA, in both is_benefit_cap_exempt_health_disability
and is_benefit_cap_exempt_other.

Add has_own_esa_award (Person): the person claims ESA themselves (a reported
contributory or income-related award, or a directly entered income-related
award attributed to the claimant who heads the benefit unit). Add
esa_includes_support_component (Person): whether that ESA includes the
support component (WRA 2007 ss.2(2), 4(4)). Datasets or users can supply it;
otherwise it is assumed for anyone with an ESA award of their own, as for
about nine in ten ESA recipients in the Family Resources Survey 2024-25.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
HB Regs 2006 reg 75F(1) and UC Regs 2013 reg 83(1) name, for each benefit,
whose receipt lifts the cap. is_benefit_cap_exempt_health_disability summed
every benefit-unit member's attendance allowance, DLA, PIP, industrial
injuries benefit, Carer's Allowance and Carer Support Payment, and
is_benefit_cap_exempt_other exempted any member's armed forces compensation.
Any member with the LCWRA flag or caring responsibilities also lifted it.

Now:
- the claimant or partner only: attendance allowance, industrial injuries
  benefit and armed forces compensation (75F(1)(b)-(d); 83(1)(b)-(e));
- also a child or young person they are responsible for: DLA (75F(1)(e);
  83(1)(f));
- also a young person: PIP, Carer's Allowance and Carer Support Payment
  (75F(1)(ea), (h), (ha); 83(1)(g), (i), (ia)); armed forces independence
  payment for a Housing Benefit young person (75F(1)(ea); UC reg 2 counts
  it as attendance allowance);
- the UC LCWRA and carer elements: a claimant with limited capability or
  caring responsibilities (83(1)(a), (j); regs 27(1), 29(1)), or an element
  entered directly.

The cap serves both schemes, so a child or young person under either
scheme's definition counts. A 16-year-old who receives benefits in their own
right or is looked after counts for neither (UC regs 4(6), 5(5); HB reg
19(2)).

Datasets flag every ESA recipient as disabled, so the LCWRA exception lifted
the cap for every ESA recipient whatever their ESA group. Universal Credit
takes the ESA assessment (UC Regs 2013 reg 40(1)(a)(ii)), so for a person
with an ESA award of their own uc_limited_capability_for_WRA is now inferred
from the support component. The work allowance and the reduced minimum age
need only limited capability for work (regs 8(1)(a), 22, 39), which an ESA
award carries, so they read the new uc_limited_capability_for_work.

is_benefit_cap_exempt_earnings and is_benefit_cap_exempt_other lose their
unused benefit sums and keep their results.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Inferring limited capability for work-related activity from the ESA support
component in both directions gave a non-dependant's own ESA an LCWRA element
in the family's Universal Credit, because uc_LCWRA_element and the work
allowance still read every member of the benefit unit (#2027's legacy-award
invariance test caught it). Now a person whose own ESA lacks the support
component is taken not to have LCWRA (UC Regs 2013 reg 40(1)(a)(ii)), and
otherwise uc_limited_capability_for_WRA keeps its is_disabled_for_benefits
default. uc_limited_capability_for_work is LCWRA or the disability flag, so
the work allowance and reduced minimum age are as before for every input
that does not set the new variables. The cap property's family-rate
reference now counts any 16-year-old, as the family-rate helper does.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ut record

The Universal Credit reform hook calculates uc_LCWRA_element while the
simulation is being built, and uc_limited_capability_for_WRA now reads
has_own_esa_award. That went through claimant_or_partner_esa_income and so
entered_directly, which read Simulation._user_input_keys before any input
had created it (test_child_and_adult_definitions_properties builds its
situations without inputs). has_own_esa_award now takes an income-related
award with no member's report behind it as entered for the family, and
entered_directly treats a simulation with no recorded inputs as having none.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…efit-cap-75f-claimant-partner

#2027 now leaves the benefit cap to this branch and deletes utils/inputs.py
(entered_directly), deciding a directly entered award by value. Conflicts:
- is_benefit_cap_exempt_health_disability.py: keep this branch's version;
  an entered UC LCWRA or carer element is now recognised by value (positive
  although no member's circumstances give it) instead of entered_directly.
- passports.yaml: keep this branch's support-component cap cases.
- utils/inputs.py: deleted, as on #2027.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
UC Regs 2013 reg 80(1) caps "the amount to which the single person or
couple is entitled", and HB Regs 2006 reg 75A the welfare benefits to which
the claimant or couple is entitled. benefit_cap_reduction summed every
benefit-unit member's contributory ESA and JSA, incapacity benefit and SDA,
and the whole unit's income-related ESA and income-based JSA, so another
member's own award reduced the family's Universal Credit or Housing Benefit:
with UC of 20,000 before the cap, a non-dependent adult's 5,000 of ESA cut
the family's UC from 14,753 to 9,753 (#2027 review r2).

The capped total now takes the claimant's and partner's person-level awards,
claimant_or_partner_esa_income, claimant_or_partner_jsa_income, and the
family's Child Benefit, CTC, Income Support, UC and Housing Benefit. Household
income keeps the full awards. YAML tests check UC and Housing Benefit
amounts; the non-dependant invariance property now also covers
benefit_cap_reduction and universal_credit, with JSA, incapacity benefit and
SDA among the circumstances. #2027's legacy-award invariance reads the
benefit cap exemption again.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The non-dependent adult's support component cannot lift the family's cap, so
the two cases do not need the input and now also run on the base package,
where they fail on value.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…efit-cap-75f-claimant-partner

#2027 makes "on" a legacy award payee-only: of the claimant and partner,
only the one the award is payable to (who reports it, or the claimant who
heads the family when it is entered directly) is on it (HB Regs 2006 reg
2(1), (3), (3A)). The cap's ESA head reads is_on_income_related_esa for
receipt, so a partner who does not hold the couple's award no longer
receives it. Two YAML cases now expect the payee only, and the property
reference counts an income-related award as received by its reporter. The
direct-entry attribution in has_own_esa_award already picks the same person.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…efit-cap-75f-claimant-partner

#2027 now puts a member outside the couple on an income-related award only
when the award on their own report alone is positive. The cap's ESA head
reads is_on_income_related_esa only for the claimant and partner, so the
exemption is unchanged; the cap YAML and the single-head table pass.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@MaxGhenis

Copy link
Copy Markdown
Collaborator Author

Coordination with #2084 (UC claim by a member of a couple as a single person, UC Regs 2013 reg 3(3)).

This PR counts is_claimant_or_partner as the people UC reg 83(1) names ("a claimant"). Under reg 3(3), the other member of a couple claiming as a single person is a partner but not a claimant (WRA 2012 s.40). Their PIP, DLA, AA, IIDB, AFCS, carer's allowance, contributory ESA or LCWRA does not lift the UC cap. HB reg 75F names the claimant's partner, but Housing Benefit has no single claim by a member of a couple, so the UC rule decides here.

That PR edits main's versions of is_benefit_cap_exempt_health_disability.py and is_benefit_cap_exempt_other.py to exclude that member through other_member_of_single_claim_in_shared_rules(person, period) (in utils/uc_work_related_requirements.py). That helper is false unless a single claim actually exists, and false for a family claiming legacy benefits, because the cap is shared with Housing Benefit, which has no such single claim.

Whichever PR lands second should make the claimant set in the rewritten file is_claimant_or_partner & ~other_member_of_single_claim_in_shared_rules(person, period) for the reg 83 limbs. It should also keep the YAML cases "Reg. 83(1)(g) ..." and the legacy-family case in claims_as_single_person.yaml passing.

A separate point from that PR's review, not caused by either PR: has_pensioner (any member over State Pension age lifts the cap) has no basis in UC regs 82-83. ADM E5054 has a pension-age rule only for managed migration. HB reg 75C(2)(a) does have one, so it may belong to the Housing Benefit side only.

@MaxGhenis

Copy link
Copy Markdown
Collaborator Author

Coordination with #2088, which models the UC childcare work condition's partner exceptions (UC Regs 2013 reg 32(1)(b)). Limb (i) is "has limited capability for work". On main the only LCW proxy is uc_limited_capability_for_WRA, so #2088's new uc_unable_to_provide_childcare reads that, just as the work allowance and the reg 8 minimum age do on main.

What changes once both merge. Under this PR, an ESA award without the support component removes LCWRA but not LCW. So whichever of the two merges second should switch limb (i) in policyengine_uk/variables/gov/dwp/universal_credit/childcare_element/uc_unable_to_provide_childcare.py from uc_limited_capability_for_WRA to uc_limited_capability_for_work. The documentation string there names the proxy, so update it too.

If this PR merges first, I'll make the switch in #2088. If #2088 merges first, please switch it here when you merge main.

Tests to add with the switch. A working claimant whose partner has has_own_esa_award: true and esa_includes_support_component: false, plus is_disabled_for_benefits: true:

  • uc_childcare_work_condition should stay true (LCW holds);
  • uc_limited_capability_for_WRA is false.

🤖 Generated with Claude Code

@MaxGhenis

Copy link
Copy Markdown
Collaborator Author

Coordination with #2089 (each scheme its own benefit cap and LHA shared-accommodation rules), which is stacked on #2084.

#2089 deletes the shared exception files this PR rewrites, is_benefit_cap_exempt_health_disability.py, _other.py, _earnings.py and is_benefit_cap_exempt.py, and replaces them with one set per scheme:

  • UC (UC Regs 2013 regs 79, 82, 83): is_uc_benefit_cap_exempt = is_uc_benefit_cap_exempt_earnings (reg 82) | is_uc_benefit_cap_exempt_specified_benefit (reg 83).
  • HB (HB Regs 2006 regs 75A, 75E, 75F, 5): is_housing_benefit_benefit_cap_exempt = is_housing_benefit_benefit_cap_exempt_working_tax_credit (75E) | is_housing_benefit_benefit_cap_exempt_specified_benefit (75F) | housing_benefit_pension_age_regulations_apply (reg 5).
  • Capped total: benefit_cap_reduction is now uc_benefit_cap_reduction + housing_benefit_benefit_cap_reduction. The total of welfare benefits moved to benefit_cap_welfare_benefits.

Porting this PR onto the split (whichever of the two merges second):

  1. Person scopes.
    • UC reg 83(1) "a claimant": is_claimant_or_partner & ~other_member_of_single_claim(...). Its child-or-QYP tests use the UC definitions (reg 5, including the 16-year-old window).
    • HB reg 75F(1) "the claimant or the claimant's partner": is_claimant_or_partner. Its child-or-young-person tests use is_child_or_young_person_for_legacy_benefits and the Child Benefit qualifying young person.
    • The union of both schemes' person scopes that this PR builds is no longer needed: each scheme's file takes its own scope.
  2. ESA support component (esa_includes_support_component, has_own_esa_award) goes into both specified-benefit files: UC reg 83(1)(a) and HB reg 75F(1)(a).
  3. LCWRA and carer elements: UC file only (reg 83(1)(a), (j)). Working tax credit: HB file only (75E). AFIP: UC via reg 83(1)(c) (reg 2 "attendance allowance"); HB via 75F(1)(ea), which also covers a young person.
  4. is_benefit_cap_exempt_other (any member at State Pension age) is gone. UC has no age exception, and HB reads reg 5 (the variable from Apply the benefit cap to mixed-age couples on Universal Credit, and keep them off pensioner Council Tax Reduction #1944).
  5. Claimant/partner-scoped capped total: goes into benefit_cap_welfare_benefits (one total for both schemes; the model never pays a family both).

I will push a pre-resolved composition of the two branches, uc-hb-split-on-2076, and link it here. Its per-scheme exception files carry this PR's scopes, so the second to land can take them as they are.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant