Pay the legacy carer premium per qualifying claimant or partner; IS carer route through them only - #2001
Pay the legacy carer premium per qualifying claimant or partner; IS carer route through them only#2001MaxGhenis wants to merge 6 commits into
Conversation
IS Regs 1987 Sch 2 para 14ZA(1) and the JSA, ESA, HB and CTR equivalents give the premium where "the claimant or his partner is, or both of them are" entitled to Carer's Allowance or Carer Support Payment, and para 15(7) pays it "in respect of each person who satisfied the condition". The model counted every benefit-unit member, so a caring child or young person gave the family the premium, and paid two qualifying partners one amount because the couple parameter held the single rate. Count only the claimant and partner, pay the per-person amount for each, remove the couple parameter, and correct the 2025-26 rate to £46.40. The Income Support carer route (Sch 1B para 4 with reg 4ZA and SSCBA s.124(1)(e)) likewise opens only through the claimant or partner. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ibility Hypothesis properties over families of a claimant, an optional partner and up to three children or qualifying young persons: a dependant's caring never changes carer_premium or income_support_eligible; the premium is the per-person amount times the caring claimants and partners; and caring by the claimant or partner never removes Income Support eligibility. Both fail on the base branch. Add changelog fragments and note that the premium reaches the IS, HB and CTR applicable amounts only. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
SSCBA 1992 s.70(7ZA): where two people would be entitled to Carer's Allowance for the same severely disabled person, only one of them is, so only one satisfies the premium condition; SSI 2021/249 Sch 1 para 5(3)-(4) says the same for Scottish working-age council tax reduction. Add the benefit-unit input partners_care_for_same_severely_disabled_person (default false, since two partners who both receive Carer's Allowance must be caring for different people) and cap the premium at one amount when it is set. From the independent review of this PR: describe is_carer_for_benefits as the model's proxy for entitlement, qualify the Scottish working-age rule, add cases for a pension-age couple, a supplied 17-year-old partner and the same cared-for person, assert the HB and CTR applicable amounts directly, widen the property generators to ages 18-85, add a same-person property, and write the changelog fragments as bullets. The second property (caring by the claimant or partner never removes IS eligibility) is a positive invariant that also held before this PR; only the first fails on the base branch. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…sa_income Review r1 of this PR found three ways a member outside the claimant and partner, or the wrong partner, still decided eligibility: - An excluded member's reported ESA switched off the fallback for an esa_income entered directly. The gate now asks the simulation whether esa_income is an input (simulation.input_variables, as marginal_tax_rate_on_capital_gains does). If it is, it reads it as the claimant's or partner's award. Otherwise it applies the esa_income calculation, now the shared income_related_esa_award helper, to the claimant's and partner's reported amounts. - The award and the conditions could sit on different partners. No new claim can be made (UC (TP) Regs 2014 reg 6A(1)), and a partner who takes over an award makes a claim (Claims and Payments Regs 1987 reg 4(4)). So the claimant is the partner who reports the existing award, and that person must satisfy (aa), (e) and the first limb of (h). - youngest_child_age_for_legacy_benefits counted a child placed by a local authority, who is not a member of the claimant's household (IS Regs 1987 reg 16(4)). It now uses is_child_or_young_person_for_legacy_benefits. #2001's "partner is the carer" case now puts the award on the caring partner. YAML: 21 cases, 5 of which fail on this PR's previous head and 10 on #2001's. The Hypothesis generators add placed children, esa_income entered directly and household savings, and the differential test follows the award holder. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Round-2 review of this PR: the model pays Carer's Allowance and Carer Support Payment on caring hours as well as on a reported award, so "both receive a carer benefit" does not show that two partners care for different people, and the earlier default (false) still paid two premiums to a couple who entered hours for the same person. In law two awards do mean two different people (SSCBA s.70(7ZA); SSI 2023/302 reg 5(3) for Carer Support Payment), so partners_care_for_same_severely_disabled_person now defaults to true unless at least two of the claimant and partner report a Carer's Allowance award, and it can still be supplied. It moves beside carer_premium, since it has a formula. Also: bound the property generator's partner age in both directions so no adult under 20 is presumed the other's child (pinned with @example; 20,000 draws find no violation), check the default rule and the cap inside the per-person invariant, cite SSI 2023/302 reg 5(3) for Carer Support Payment, add Welsh working-age CTR to the formula comment, say that the same-person cap applies to the whole benefit unit, test partners supplied beyond two, and give the two-premium YAML cases reported awards. The model's own Carer's Allowance and Carer Support Payment still pay both partners (issue #2028). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Round-3 review (APPROVE WITH NITS): count reported awards only among carers, so a reported award its holder would not claim does not make two; say "Carer's Allowance or Carer Support Payment award", since carers_allowance_reported is the model's reported-receipt input for both; and pin both sides of the property generator's age boundary in YAML (an 18-year-old 15 years younger than the other adult is a partner, 16 years younger is presumed a child). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Composition note from #2078 (stacked on #2009), which makes the CTR means test assess the applicant and partner rather than the benefit unit's claimant and partner. #2078 adds A property test in #2078 ( |
Stacked on #1896 (
remove-is-child-flags), which addsis_claimant_or_partner. Retarget tomainonce #1896 merges.Summary
The legacy carer premium and the Income Support carer route counted every member of the benefit unit, so a caring child or qualifying young person qualified the family. The law names only the claimant and partner. Separately, two caring partners got one premium, because
gov.dwp.carer_premium.couplehas always held the single rate.Carer premium. IS Regs 1987 Sch 2 para 14ZA(1):
Para 15(7):
The same condition and the same "in respect of each person" amount appear in:
Income Support carer route. SSCBA 1992 s.124(1)(e) makes a person entitled if "he falls within a prescribed category of person". IS Regs reg 4ZA(1) prescribes the people in Schedule 1B, and Sch 1B para 4 covers "A person (the carer)". A couple's claim "shall be made by whichever partner they agree should so claim" (Claims and Payments Regs 1987 reg 4(3)), so either partner's caring opens the route. A dependant's caring does not.
All text was fetched from legislation.gov.uk
data.xmlon 2026-10-01 (current revised versions, plus point-in-time copies of IS Sch 2 for 2015-2026).Changes
carer_premium: the number of members who are bothis_claimant_or_partnerandis_carer_for_benefits, timesgov.dwp.carer_premium.single, times 52. That gives 0, one amount, or two. It usednum_carers, which counts every member.gov.dwp.carer_premium.coupleis removed. It has never been twice the single rate. Both files were created in 2021 at £37.50, and from 2023 each uprating copied the single value intocouple. Two qualifying partners therefore got £48.15 a week instead of £96.30.singleis relabelled as the per-person amount. Reforms should changesingle; a reform that setscouplewill now fail loudly instead of silently doing nothing.gov.dwp.carer_premium.single2025-26: £46.38 → £46.40. That is IS Sch 2 para 15(7) as in force from 7 April 2025. Every other year, 2015-2026, matches the point-in-time legislation.partners_care_for_same_severely_disabled_person. SSCBA s.70(7ZA) says that where two people "would have a relevant entitlement for the same day in respect of the same severely disabled person, one of them only shall have that entitlement", and SSI 2023/302 reg 5(3) does the same for Carer Support Payment. So partners caring for the same person satisfy the premium condition once, in every scheme; SSI 2021/249 Sch 1 para 5(3)-(4) says so expressly for Scottish working-age CTR. When the variable is true, the premium is capped at one amount for the benefit unit.carers_allowance_reported). It can be supplied.carers_allowanceandcarer_support_payment, however, are paid on caring hours as well as on a reported award. So a modelled "receipt" does not show who is cared for, and a couple who both qualify on hours alone get one premium unless the variable is set to false. That is the same result as before this PR for that case.income_support_eligible: the carer route now needs a claimant or partner who is a carer, not any member.num_carersandbenunit_has_carerare unchanged. Their remaining reader on this branch isuc_carer_element(defined_for), which the UC claimant-elements branch stacked on Count only claimants' income in Universal Credit #1978 rewrites.benefits_premiums). Income-based JSA and income-related ESA come from reported awards.Impact (Enhanced FRS 2024-25, real microsimulation runs)
There were four runs on a private copy of the Enhanced FRS 2024-25 file (sha256
e433e532…): this branch's base (#1896 head 143cc3c), then each step added in turn. Each step is a full run. Runs at 63b633c (same-person input defaulting to false) and at the head aa360aa (same-person default derived from reported awards) both match the step 3 run exactly in every year. The reason: all 6 dataset records with two caring partners have two reported awards, and no caring claimant or partner lacks one.care_hours(Take-up inputs for Carer's Allowance and the UC childcare element, and caring hours inis_carer_for_benefits#1856 explains why it is left unfilled); its only caring signal is reported Carer's Allowance. Every one of the 1,197 recipients is a claimant or partner. The 14 aged 16-19 are the claimant or partner of their own benefit units, and no child or qualifying young person reports CA, which is what the law predicts: CA excludes people in full-time education. The fix still matters for household calculations that enter caring hours or CA for a dependant.Scripts and full comparisons are kept locally:
dataset_impact.py,compare_impact.py, and the step JSONs. The comparisons are aggregates only, with no record-level values.Tests
tests/policy/baseline/finance/benefit/carer_premium.yaml(17 cases, hand-computed from the law). PE-UK readsgovparameters at 30 April of the simulation year, so 2025 uses the April 2025 rate. The cases:carer_premiumlogic for >2 carers #420 three-carer regression test;benefits_premiumsand the CTR applicable amount, (HB Sch 3 para 1(3)(b) £150.15 + 2 × £48.15) × 52;would_claim_carers_allowance: false) does not count towards two awards;is_claimant_or_partnercounts. The inferred roles treat a 17-year-old as an HBAI child; that limit comes from Replace generic child and adult flags with each programme's legal definitions #1896.tests/policy/baseline/finance/benefit/family/income_support/income_support_carer_route.yaml(4 cases): single carer and partner carer are eligible. A lone parent whose only carer is a QYP, and a couple whose only carer is a 12-year-old, are not.care.yaml: three tests that fednum_carersstraight intocarer_premiumare removed. Their cases are now incarer_premium.yaml, built from people.Invariants (Hypothesis,
tests/test_legacy_carer_premium_properties.py)The properties are drawn over families of a claimant aged 18-85, an optional partner, and up to three children or QYPs, each with a random reported Carer's Allowance award and random caring hours. The generator never draws an adult under 20 who is 16 or more years younger than the other adult, because the model would presume them to be the other's child. That boundary (18 with 33) is pinned with
@example, and 20,000 generator draws find no violation.carer_premiumorincome_support_eligible.carer_premium= (caring claimants and partners, capped at one when treated as caring for the same person) × per-person amount × 52, so it is bounded by 0 and twice the amount. The default same-person rule (fewer than two reported awards) is checked in the same test.The first test (1 and 2) fails on the base branch. Hypothesis's minimal counterexamples were a couple who both receive CA, paid one premium, and a lone parent whose 16-year-old QYP receives CA, which gave the family a premium. Invariant 3 is a positive invariant that also held before this PR. Invariant 4 tests the new input.
Locally, because PE-UK CI runs only on PRs into
main:pytest policyengine_uk/tests/2,016 passed, 45 skipped;carer_premium.yamlandcare.yaml(21 passed); the property tests (3 passed);ruff checkclean;ruff format --check .clean.Review
An independent review on a Subfleet lane (GPT-6.1 Sol) returned REQUEST CHANGES:
is_carer_for_benefitswith legal entitlement and over-generalised the CTR schedules. Reworded.Round 2 (same reviewer) confirmed the s.70(7ZA) argument, the hand-computed expectations and fixes 2, 4, 5 and 6. It returned REQUEST CHANGES on two new problems, both fixed in 9c7cde8:
Nits fixed in the same commit:
Round 3 (read-only): APPROVE WITH NITS. N1 and N2 resolved: the reviewer traced every branch of the role inference against the generator, and checked all 15 YAML cases by hand. Three low nits were fixed in aa360aa:
carers_allowance_reportedcarries both;The reviewer also noted that the model's 2026 IS personal allowances (£104.43 single 25+, £164.06 couple) differ from IS Sch 2 para 1 (£95.55, £150.15). That is why no case asserts the IS applicable amount. Those parameters are rewritten in #1925.
Downstream
PolicyEngine/impact-iran-war-living-standardslistsgov.dwp.carer_premium.coupleinCPI_UPRATED_BENEFIT_PARAMETERS. It pinspolicyengine[uk]==5.3.0, so it is unaffected until its next bundle bump, which should drop that entry.axiom: TheAxiomFoundation/rulespec-uk#403 queued (no module encodes the carer premium condition or IS Sch 1B para 4; HB Sch 3, HB (SPC) Sch 3 and ESA Sch 4 are in the pinned corpus, IS Sch 2/1B and JSA Sch 1 need ingesting)
🤖 Generated with Claude Code