Conversation
…ncome SPC Regs 2002 reg 15(1) prescribes all social security benefits as Pension Credit income except those it lists; neither Carer's Allowance nor Carer Support Payment is listed. Pension-age Housing Benefit already counted both, so when Guarantee Credit ended the HB passport fell away onto income Pension Credit had ignored: a pensioner couple whose partner receives Carer's Allowance lost 1,779.24 of net income at private pension 9,700 to 9,800. The Scottish Carer Supplement (from 15 March 2026) is a separate component of Carer Support that reg 15(1)(ri) and HB (SPC) reg 29(1)(j)(xviiha) except from income (SI 2026/246). It moves out of carer_support_payment into a new scottish_carer_supplement variable, which the benefit, HBAI, spending and taxable-benefit aggregates add so their totals are unchanged. Adds YAML tests and Hypothesis properties (PC and HB assess the same carer income; net income does not fall where Guarantee Credit ends; the supplement moves PC and HB income only through income tax). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…king-age HB Adds a working-age Scottish carer case: HB income excludes the supplement (HB Regs 2006 Sch 5 para 75, SI 2026/246 art 20) while household_benefits, HBAI, gov_spending, pre-budget benefits and taxable social security income still include it. Adds an "added" changelog fragment for the new variable, and corrects the pre-fix cliff figure for the disregard-0 test (2,254.02). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Reviewed: approve with nits. Counting Carer's Allowance and the Carer Support Payment component as Pension Credit income is right. Reg 15(1) prescribes all social security benefits except a closed list, and CA is not on it. Reg 15(1)(ri) (SI 2026/246 art 17(3), from 15.3.2026) excepts only the Scottish Carer Supplement and the carer additional person payment, so splitting
Verified: I read reg 15(1), including (ra) and (ri) and the SI 2026/246 annotation. I did not independently fetch reg 9; I relied on the PR's reading. Locally, the 10 new YAML cases and the 3 properties pass. Rates reproduce: CSP 83.30 / 86.45 × 52 and supplement 11.70 × 52, held flat from 2027 as documented (#1957). The branch merges cleanly with #1951 and #1977. On a #1977 + #1952 merge, 184 YAML cases and 5 CSP pytest tests pass. CI run 36772855090 passed all six jobs. |
After merging main (#1958), carer_support_payment in the Scottish UC case is the component alone, 4,495.40, with scottish_carer_supplement 608.40 asserted beside it. uc_unearned_carer_support_payment and universal_credit are unchanged. Refreshes the wording that said carer_support_payment includes the supplement. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Addresses item 1 of #1937 (item 2, the 2025-26 minimum guarantee, is fixed by #1925).
Problem
gov.dwp.pension_credit.guarantee_credit.income(the listpension_credit_incomesums) left outcarers_allowanceandcarer_support_payment. Pension-age Housing Benefit counts both (housing_benefit_applicable_income), and HB is passported to its maximum whileguarantee_credit > 0. Council Tax Reduction has the same passport since #1909. So the model assessed carers on two different incomes. It paid Guarantee Credit on income without the carer's benefit. Then, the moment Guarantee Credit ended, HB and CTR were assessed on income with it.On main (7b9fc37), a 2026 pensioner couple in England shows the cliff. Both are aged 70; the claimant has State Pension £13,500 and the partner has no State Pension, cares 35 hours a week and gets Carer's Allowance of £4,495.40. They rent from the council for £8,000 with council tax £2,000. Between private pension £9,700 and £9,800 their household net income falls by £2,455.92:
Before #1909 gave CTR the passport, CTR fell by only its £16.00 taper, and the same step lost £1,779.24. That is the figure the commit messages cite.
Law
Texts were fetched from legislation.gov.uk on 2026-09-30, and two independent verifiers re-fetched and checked each quote.
savings_credit_incomeunchanged.excluded_income.yamlneeds no edit.PolicyEngine's
carer_support_paymentwas(rate + supplement) × 52. Adding it to the list as it stood would have counted the supplement, which HB was already doing wrongly.Change
guarantee_credit/income.yamlgainscarers_allowanceandcarer_support_payment, with the reg 15(1) and SI 2026/246 references.carer_support_paymentis now the CSP component only,csp.rate × 52. A new Person variablescottish_carer_supplement=(carer_support_payment > 0) × csp.supplement × 52implements reg 14A.scottish_carer_supplementsits next tocarer_support_paymentinhousehold_benefits,hbai_benefits,hbai_household_net_income,gov_spending,pre_budget_change_household_benefitsandsocial_security_income. Those totals are unchanged; the Enhanced FRS runs below show carer_support_payment −£72.8m and scottish_carer_supplement +£72.8m, netting to zero, in every year.carer_support_paymentalone, now leave the supplement out, as the law requires.The same example on this branch:
Invariants
Property-tested in
test_pension_credit_carer_income_properties.py. It uses Hypothesis, derandomized, with 12 examples of up to 4 families × 41 private-pension points each. The draws are single people and couples over State Pension age with one carer receiving CA (England, Wales) or CSP (Scotland), qualifying by hours or by a reported award, renting from the council in 2026.housing_benefit_applicable_income + housing_benefit_applicable_income_disregard == pension_credit_income. No earnings, pension contributions or capital above £10,000 are drawn.pension_credit_income + income_taxandhousing_benefit_applicable_income + income_taxunchanged.On main, invariants 1 and 2 fail; invariant 3 needs the new variable. The shrunk counterexamples:
All 3 pass on the branch (167 s).
Not drawn, each with a reason in the module docstring:
Tests
New
tests/policy/baseline/gov/dwp/pension_credit/pension_credit_carer_income.yamlhas 10 cases, with every expected value hand-derived from statutory rates.household_benefits, HBAI benefits and net income,gov_spending, pre-budget benefits and taxable social security income all still include it.All 10 fail on main. The carers in these cases have no State Pension, so no overlapping-benefit adjustment applies (see Not in this PR).
policyengine-core test policyengine_uk/tests/policy -c policyengine_uk: 1,296 passed on the first commit (main then: 1,287). On the head merged with main, 512 passed acrossgov/dwp,finance/benefit,gov/local_authoritiesandhousehold; CI runs the whole suite.pytest policyengine_uk/tests/: 320 passed, 45 skipped on the first commit, run without the new property file. On the merged head, the carer, UC unearned-benefit and CTR–Pension Credit property files and the Carer Support Payment tests all pass.Enhanced FRS impact
Real runs of main (7b9fc37) and this branch merged with it (8997374) on the Enhanced FRS 2024-25 (
enhanced_frs_2024_25.h5), with totals summed in float64. Aggregates only. Runs against two earlier mains (44240bd, 38f85fe) gave the same changes.gov.dfe.targeted_childcare_entitlement.qualifying_benefits) uses the computedguarantee_credit, which is positive for working-age families. In law the parent must be "entitled to ... the guaranteed element of state pension credit" (SI 2014/2147 reg 1, "eligible child"), and entitlement needs the qualifying age (SPCA 2002 s.1(2)(b)). With CA counted, some working-age carer families with a 2-year-old lose that computed Guarantee Credit and with it the entitlement. So the change moves toward the law; the underlying bug is Targeted childcare qualifies working-age families through a computed Guarantee Credit #1956.gov_spending−£3.84m,gov_balance+£3.84m.pension_credit_incomerises for 1.19m weighted benefit units with a carer's benefit, mostly working-age units, whose computed Guarantee Credit is not paid. Only the 876 units above receive Pension Credit.Scripts and outputs:
dataset_impact.py,compare_impact.pyanddecompose.py(per-benefit decomposition for 2025, 2028, 2029 and 2030), kept outside the repo.Not in this PR
Overlapping benefits. Reg 15(3)-(4)(a) and (g) count CA and CSP after the Overlapping Benefits Regs 1979 (reg 12: CA is reduced by State Pension) and CSP Regs reg 16(2) reductions. PolicyEngine pays CA and CSP in full alongside State Pension. For pension-age carers whose State Pension overlaps, the model overstates CA and, now that PC counts it, understates Guarantee Credit by the same amount. Net income is never further from the law than on main, and it is exact whenever Guarantee Credit covers the carer's benefit. With SP = State Pension, MG = minimum guarantee and CA = Carer's Allowance:
In the Enhanced FRS, CA is paid only to people who report receiving it. Carer's Allowance and Carer Support Payment ignore the overlapping-benefit reduction by State Pension #1953 will model the reduction.
Other income the law counts but the list still omits: IIDB, SDA, the AFCS guaranteed income payment, incapacity benefit, maternity allowance, spousal maintenance, sublet income, and SSP/SMP as earnings. Also: the Savings Credit exclusions (reg 9) lack WTC; Sch VI earnings disregards are not applied; and PC income deducts tax on income it does not count (reg 17(10)). Pension Credit income still omits IIDB, SDA, the AFCS guaranteed income payment and other countable income #1954 tracks these.
UC does not count CSP (UC Regs reg 66(1)(b)(iiia)); that is in progress separately. Scottish CTR does not count CSP either (SSI 2021/249 reg 57(1)(b)(iva); SSI 2012/319 reg 27(1)(j)); see Scottish Council Tax Reduction income omits Carer Support Payment #1955. After this PR, adding
carer_support_paymentto those lists is correct as it stands, because it no longer includes the supplement.The supplement rate has no uprating metadata, so the model holds it flat from 2027 (Scottish Carer Supplement rate has no uprating #1957).
Give pension-age HB and CTR the severe disability premium Pension Credit uses #1938's property docstring says Pension Credit income leaves out Carer's Allowance; that becomes stale when this merges.
The HB reg 27 savings-credit-only route (in progress) reads
pension_credit_income, so it inherits this fix.Downstream:
carer_support_paymentnow means the CSP component, following SI 2026/246's redefinition. A new.addedchangelog fragment says so, and this is a minor version bump.scottish_carer_supplement.bridges/efrs_uk.py,bridges/mappings/uk.yaml), axiom-encode (oracles/policyengine/mappings/uk.yaml) and axiom-corpus (concepts/data/uk.yaml) map rulespec-uk'scarer_support_payment_annual_amounttocarer_support_payment. That rulespec-uk amount includes the supplement (98.15 a week), so the oracle will show a £608.40 gap per Scottish carer until the mapping or the module is split. Step 3 of Encode SPC Regs 2002 reg 15(1), (3) and (4) (Carer's Allowance and Carer Support Payment count as Pension Credit income; the Scottish Carer Supplement does not) and take the PC pipeline's income from it TheAxiomFoundation/rulespec-uk#390 covers it.axiom: TheAxiomFoundation/rulespec-uk#390 queued
🤖 Generated with Claude Code