Repository navigation
Give the UC LCWRA and carer elements and the work allowance on the claimants' circumstances only - #1989
Conversation
…nts only The LCWRA element is for 'the fact that a claimant has limited capability for work and work-related activity' (UC Regs 2013 reg. 27(1)), the carer element is included 'where a claimant has regular and substantial caring responsibilities' (reg. 29(1)), and the work allowance turns on whether 'a single claimant' or 'joint claimants' have limited capability (reg. 22(1)(b)(i)). All three read every member of the benefit unit, so a disabled child gave the claimant the LCWRA element on top of the disabled child addition, and a qualifying young person who was a carer gave the claimant the carer element. The benefit cap exception for limited capability now tests that the LCWRA element is in the award (reg. 83(1)(a)) rather than any member's limited capability. A child's disability living allowance, a qualifying young person's personal independence payment and their entitlement to Carer's Allowance still exempt the award (reg. 83(1)(f), (g), (i)). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ability UC Regs 2013 reg. 27(4)(a): 'In the case of joint claimants, where each of them has limited capability for work and work-related activity, the award is only to include one LCWRA element'. The formula summed an element for each member. The Universal Credit rebalancing modifier already sets one amount per award for 2026 to 2029, so this changes 2025 and 2030 onwards. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…o a carer with the LCWRA element UC Regs 2013 reg. 29(2): 'an award is to include the carer element for both joint claimants if they both qualify for it, but only if they are not caring for the same severely disabled person'. The model does not record who is cared for; it already pays each of two carers Carer's Allowance, so it takes them to care for different people. Reg. 29(4): a claimant who is a carer and has limited capability for work and work-related activity has only the LCWRA element, unless that element is included for the other joint claimant. The formula included both elements for the same claimant. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…trial injuries benefit, Attendance Allowance and armed forces payments UC Regs 2013 reg. 83(1)(a) to (e) name 'the claimant' or 'a claimant' for ESA with the support component, industrial injuries benefit, attendance allowance and armed forces compensation payments, where reg. 83(1)(f) to (ia) add 'a child or qualifying young person for whom a claimant is responsible' for disability living allowance and 'a qualifying young person' for personal independence payment and Carer's Allowance. HB Regs 2006 reg. 75F(1) draws the same lines. The exemptions summed every member of the benefit unit for all of them. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ant with limited capability The contrib reform pays anyone 'receiving' the Universal Credit LCWRA element. Now that the element is the claimant's (UC Regs 2013 reg. 27(1)), a child's or qualifying young person's limited capability flag no longer qualifies them. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…s an element, against DWP's table of combinations Hypothesis properties: a dependant's disability, limited capability, caring or Carer's Allowance never changes the LCWRA element, the carer element or the work allowance; the elements match DWP's ADM F6037 table for all sixteen combinations of two claimants' carer and LCWRA status, with amounts written from the reg. 36 table; at most one LCWRA element and one carer element per claimant; a claimant's limited capability never lowers the elements; member order does not matter; and a dependant's ESA, industrial injuries benefit or armed forces compensation payment never exempts an award from the benefit cap, while a child's DLA always does. Towncrier fragment for the change. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ESA and IIB to the whole award The capped families' first dependant could be a 16-year-old outside non-advanced education, whom the model does not treat as a child or qualifying young person, so their DLA rightly did not exempt the award (reg. 83(1)(f)). A dependant's armed forces compensation payment makes them severely disabled for benefits, which changes the disabled child addition, so it is held only to the exemption flag. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Coordination with #2076. That PR scopes the benefit cap's exceptions to the people HB Regs 2006 reg 75F(1) and UC Regs 2013 reg 83(1) name, and counts only the claimant's or couple's benefits in
|
|
Coordination with #2084 (UC claim by a member of a couple as a single person, UC Regs 2013 reg 3(3)). That PR excludes the other member of a single claim (
|
|
Coordination with #2089 (each scheme its own benefit cap), stacked on #2084. #2089 deletes This PR's claimant-only changes to the cap exceptions belong in the UC file only. The UC file already reads |
|
Base moved: #1978 merged To keep this PR stacked, merge Expect conflicts where main changed the same files, and check these against main:
UK hub notices 2 and 5 ( |
Main now has #1978 (is_uc_assessed_claimant), #1896, #1944 and #2084 (the reg 3(3) single claim, is_uc_single_or_joint_claimant). Resolution: - uc_LCWRA_element and uc_carer_element read is_uc_single_or_joint_claimant, which keeps #2084's rule that the other member of a single claim is not a claimant, and this branch's regs 27(4), 29(2) and 29(4). - is_uc_work_allowance_eligible reads is_uc_assessed_claimant, which keeps the other member of a single claim as reg. 22(3) requires, and main's is_responsible_for_child_or_qualifying_young_person_for_universal_credit. - is_benefit_cap_exempt_health_disability and is_benefit_cap_exempt_other take main's version. The cap exceptions are now #2076's (reg 83/75F person scopes) and #2089's (separate UC and HB caps); this branch's cap test file and cap properties are removed with them. - disability_basic_income reads is_uc_single_or_joint_claimant, like the element it pays on. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
receives_uc_carer_element (the DfE extended childcare tests read it for parents) flagged every carer in a benefit unit whose award included the element. The element is a claimant's (UC Regs 2013 reg. 29(1)), so a child or qualifying young person who also cares does not receive it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…e person, none for the claimant the LCWRA element is included for Review round 2 (GPT-6.1 Sol, salvaged report at d721bce) found three defects in the carer element: - Reg 29(3): two joint claimants caring for the same severely disabled person had two carer elements. The model records this as partners_care_for_same_severely_disabled_person (the legacy carer premium reads it); the element now reads it too, and the elder is taken where the couple would elect. - Reg 29(4) suppressed the carer element on the LCWRA flag even when the award included no LCWRA element (a nil element, as in the reg 28 waiting period, where ADM F6034 keeps the carer element). It now applies only when the LCWRA element is included, in respect of the claimant it is included for: one who is not a carer if there is one, otherwise the elder. - receives_uc_carer_element attributed the element to both members where a carer with LCWRA had a partner who was the carer; it now reads the new person-level uc_carer_element_included_for_claimant, which uc_carer_element sums. Tests: same-person, nil-LCWRA and attribution YAML cases; a 2021 extended childcare case where the attribution decided the partner exclusion; property tests for same-person caring and for one LCWRA element whether one or both claimants have limited capability (rate-free, so it covers 2026's per-award rebalanced amounts); and a deterministic run of all twenty single and joint carer/LCWRA combinations against ADM F6037. Changelog as a bullet. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This reverts commit d7697ed. Independent review (subfleet 20261013-010643, review-delta-d7697edee.md) found that reading uc_LCWRA_element > 0 matches the old flag test at baseline but not under a reform that sets the element's amount to nil (gov.dwp.universal_credit.elements.disabled.amount = 0, or a nil new-claimant health element): main keeps the exception, the element reading drops it. Whether a nil element is "included in the award" is a reading the law leaves open, so this PR keeps main's flag test and stays a pure split. Restricting reg 83(1)(a) to the claimants is #1989's change; the port it needs is noted on #1989 and #2089. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Main (582b863) now has #2076 (benefit cap person scopes; the work allowance reads uc_limited_capability_for_work), #2089 (separate UC and HB caps) and the UC Act 2025 LCWRA freeze. Resolution: - is_uc_work_allowance_eligible: both changes, as agreed on #2076. Limited capability for work (reg. 22(1)(b)) of an assessed claimant, which keeps the other member of a single claim (reg. 22(3)). - uc_LCWRA_element.yaml: main's 2027-2029 freeze cases and this branch's claimant-only cases, both kept. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ings; reword the changelog's contrib sentence The LCWRA element and the work allowance now read only claimants, so the two docstrings' stated reason for not inferring capability from a person's own ESA no longer holds; the inference itself is unchanged. The changelog's disability basic income sentence now says what the route tests (review r3 P3). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…-only elements - The elements, their attribution and the contrib reform read is_uc_assessed_claimant less other_member_of_single_claim, the set #2084 used for them, rather than is_uc_single_or_joint_claimant. The two differ only where an ineligible-partner flag marks no single claim (both members, or a lone adult, flagged), which leaves the rules alone (test_a_flag_marking_no_single_claim_leaves_cap_and_lha_rules_alone). - #2076's benefit cap tests built a positive model-owned LCWRA element from a non-claimant's limited capability, which the formula no longer gives. They now store one with set_model_value (as the rebalancing stores what it rescales) where they test that such an element is not an entry and does not lift the cap; where they test the formula, they expect the claimant-only result. Two YAML cases enter uc_carer_element instead of setting benunit_has_carer, and the comment above element_included no longer says the model's formula gives elements for any member. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Hand-off to the UK hub (22 Oct).
|
Aggregate impact on certified data: passBase Checks: 0 broken by this change, 1 failing on both sides, 0 fixed. Moves flagged for review: 287 (thresholds in Notes
Moves flagged for review
247 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)
Standard reforms: change in each reform's target
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; components the model counts twice; population. 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
Components the model counts twice: 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
|
|
Merged by the UK hub (session local_8e19f9d5, Opus 5.5) on its merge gates, from the owner session's hand-off (hand-off line 93). One merge-queue enqueue, pinned to head
🤖 Generated with Claude Code |
What was wrong
Universal Credit gave an award its LCWRA element, its carer element and a work allowance on any benefit-unit member's circumstances, where the law reads only the claimant's. A claimant is a single claimant, or each of two joint claimants (WRA 2012 s. 40).
uc_LCWRA_element) summeduc_limited_capability_for_WRAover every member except the other member of a reg 3(3) single claim. A disabled 10-year-old gave a lone parent the LCWRA element on top of the disabled child addition. Reg 27(1) includes it "in respect of the fact that a claimant has limited capability for work and work-related activity".uc_carer_element) wasdefined_for = "benunit_has_carer", which counts every member. A 17-year-old at school caring 40 hours a week, or reporting Carer's Allowance, gave the parent the carer element (£2,512.08 a year in 2026-27). Reg 29(1) includes it "where a claimant has regular and substantial caring responsibilities for a severely disabled person".is_uc_work_allowance_eligible) read every member's limited capability. Reg 22(1)(b)(i) gives no work allowance "where a single claimant does not have, or neither of joint claimants has, responsibility for a child or qualifying young person or limited capability for work".Reading the same regulations showed further defects, fixed here too:
partners_care_for_same_severely_disabled_person, which the legacy carer premium also reads.Changes
uc_carer_element_included_for_claimant(Person). It says whether the award includes the carer element in respect of this person:is_carer_for_benefits, reg 30). The claimants areis_uc_assessed_claimantless the other member of a reg 3(3) single claim (other_member_of_single_claim), the set Model a Universal Credit claim by a member of a couple as a single person (UC Regs 2013 reg 3(3)) #2084 used for these elements. So an ineligible-partner flag that marks no single claim leaves the rules alone;uc_LCWRA_element > 0). When there is a choice, the model takes the element to be included for a claimant with LCWRA who isn't a carer, otherwise the elder. A nil LCWRA element, as in the reg 28 relevant period (ADM F6034), leaves the carer element alone;partners_care_for_same_severely_disabled_person, only one carer, the elder, in place of the couple's election.uc_carer_elementis the number of such claimants × the reg 36 amount.receives_uc_carer_element, which the DfE extended childcare criteria read, follows the same per-claimant flag.uc_LCWRA_elementreads the same claimant set, and is one amount per award.is_uc_work_allowance_eligiblereadsis_uc_assessed_claimant & uc_limited_capability_for_work.disability_basic_incomecontrib reform (off by default) needs a claimant with limited capability for its LCWRA route.benunit_has_carerto stand for the award's carer element, which the element no longer reads. They now enteruc_carer_elementdirectly, as positive or nil, testing the same reg 83(1)(j) question.set_model_value, as the rebalancing stores what it rescales. Where they test the formula, they expect the claimant-only result. The comment aboveelement_includedno longer says the model's formula gives elements for any member. Two docstrings inlimited_work_ability/drop "the work allowance still reads every member" as their reason for not inferring capability from a person's own ESA. Nothing is inferred either way.Not changed:
num_carersandbenunit_has_carerhave no formula readers left.is_carer_for_benefitsis read per person elsewhere:uc_limited_capability_for_WRAstill defaults tois_disabled_for_benefits.Representation limits (from the reviews, disclosed rather than fixed):
Law
From legislation.gov.uk CLML (
/data.xml), current revised text, fetched 2026-10-01.WRA 2012 ss. 12 and 40; UC Regs 2013 regs 22(1)(b) and (3), 27(1) and (4), 29(1), (2) and (4), 30(1)-(2); reg 36 amounts
WRA 2012 s. 12:
WRA 2012 s. 40:
Reg 22:
Reg 27:
Reg 29:
Reg 30:
Reg 36 table, a month:
Reg 22 table, 2026-27: higher work allowance £710, lower £427.
DWP's Advice for Decision Making chapter F6, para F6037, tabulates which of the two elements an award includes for each combination. It is guidance, not law; it matches regs 27(4) and 29(2) and (4), and the property tests check the model against it.
Tests
YAML. Expected values are hand-computed from the reg 36 and reg 22 tables: 2026-27 carer £209.34, LCWRA £217.26 and disabled child addition (lower) £164.79 a month; 2025-26 carer £201.68 and LCWRA £423.27; work allowance £710 and £427.
uc_carer_element.yaml(25 cases):uc_LCWRA_element.yaml:claims_as_single_person.yamlpass unchanged.Hypothesis (
test_uc_claimant_elements_properties.py). Generated single claimants and couples, with up to four dependants aged 0-19, each randomly disabled, with LCWRA, caring, or reporting Carer's Allowance; in England, Wales and Scotland; 2025 and 2026. Invariants:No violation is intended.
Runs.
5ffbc6211: fullpolicyengine-core test policyengine_uk/tests/policy3,099 passed; property file 9 passed (Sol's run, 4 workers).582b86315, targeted:-n 2over 16 files (this PR's properties; the benefit cap, LCWRA freeze/draw/warnings, rebalancing, single-claim, disabled child, work-related groups, DfE and carer property files). First run: 226 passed, 14 failed. The 14 assumed the old formula: 13 in 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's cap property file, 1 single-claim flag case. After the adaptations above, the cap file passes 46 of 46 and the single-claim file 8 of 8.Impact
Certified dataset (Aggregate impact CI). See the Aggregate impact comment on this PR. It measures the merge commit against main for 2025-26 to 2031-32, and is the figure for Budget-day numbers.
Local real runs, supporting. These are two
Microsimulationruns on a private copy of the 2024-25 Enhanced FRS (sha256e433e532…): maine01f2f5ecagainst this PR at the approved head5ffbc6211, before the latest merge of main. Aggregates only.In 2026:
is_disabled_for_benefits. These are 467k weighted children under 16 and 83k young people aged 16 to 19. Those awards keep the disabled child addition and stay exempt from the cap through that DLA or PIP (reg 83(1)(f), (g)): no benefit unit on UC changes cap status.d721bcec8, the same-person cap and the nil-LCWRA rule change no award.policyengine-uk-data calibrates weights to OBR UC spending and caseloads, so a rebuilt dataset would reweight towards those totals.
Review
GPT-6.1 Sol, round 2 at
d721bcec8: REQUEST_CHANGES. The report was salvaged after a host reboot. It found two carer-element regressions (reg 29(3) same person; reg 29(4) firing with no LCWRA element), the inherited attribution defect and a changelog nit.Round 3, a delta at
5ffbc6211: APPROVE. All three counterexamples pass; 47 YAML cases and 9 properties pass; the remaining changelog nit is fixed here.Since that approval, this head adds:
benunit_has_carerto entered elements;The UK hub runs the delta review over these.
Axiom
axiom:
uk/regulations/uksi/2013/376/22,/27and/29are encoded-correct. Their inputs are per claimant, so no dependant can enter. TheAxiomFoundation/rulespec-uk#405 (merged) added 23 companion cases: reg 27(4), both ways of the reg 29(4) parenthetical, reg 29(2) for the same disabled person, and the LCW-only work allowance. TheAxiomFoundation/rulespec-uk#404 is queued: the UC ProgramSpec sums the carer element overadult_of_benefit_unit, and its oracle compares PolicyEngine with itself.🤖 Generated with Claude Code
Reproducer: policyengine_uk/tests/test_uc_claimant_elements_properties.py::test_dependants_disability_or_caring_never_gives_claimants_an_element