Repository navigation
Conversation
Working-age families in Scotland and Wales went through the pension-age means test built on Housing Benefit parameters. The whole Universal Credit award counted as income against an HB personal allowance with no children, so UC claimants almost never got CTR. Scotland's working-age scheme (SSI 2021/249) and the Welsh rules for persons who are not pensioners (WSI 2013/3029) now have their own route: - Wales, UC: applicable amount is the UC maximum amount and income is the Secretary of State's UC income plus the award (Sch 6 paras 3, 9). - Scotland, UC: own applicable amount; only the child and childcare elements of UC count as income (regs 35, 42, 57(1)(p), (2)(d)). - IS, income-based JSA and income-related ESA passport to the maximum reduction (SSI 2021/249 reg 13(11); WSI 2013/3029 Sch 9/10 para 8). - Applicable amounts: each country's personal allowances, child amounts, family premium and disabled child premiums, 2013-14 to 2026-27. - Income: Child Benefit disregarded, earnings disregards, childcare charges, closed unearned-income lists and tariff income from capital. Pension-age CTR is unchanged. Carries a byte-identical copy of #1944's council_tax_reduction_pensioner. Fixes #1962 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3cecb6b to
1cd00ab
Compare
… review - Adult premiums: Scotland's and Wales's own disability, severe disability, enhanced disability and carer premium amounts (2013-14 to 2026-27), with a carer premium for each qualifying claimant or partner (SSI 2021/249 Sch 1 paras 5, 17; WSI 2013/3029 Sch 7 paras 14, 17). - Carer earnings disregard: £20 of the carers' own earnings plus up to £10 of a non-carer partner's, within £20 (Sch 8 / Sch 3 paras 6-7). - £17.10: a couple's disabled member must be the one in remunerative work; in Scotland from April 2022 only employed earnings qualify (Sch 3 para 15). - Wales: tax on unearned income is disregarded (Sch 9 para 4). - Scotland: only the Carer Support Payment component counts, not the Carer Supplement (reg 4(1), reg 57(1)). - Statutory sick, maternity and paternity pay count as earnings on the UC route too; childcare comes off earnings after the disregards. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Coordination note from #1992 (Scottish CTR counts Carer Support Payment, stacked on #1952).
Once #1952 is in, this subtraction would remove £535.88 a year of genuine CSP in 2026 (4,495.40 × 11.70 / 98.15), understating income for every Scottish working-age carer. Whichever of #1952 and this PR merges second should drop the subtraction and count The carers overlapping-benefits work (#1953) will also make 🤖 Generated with Claude Code |
|
Composition note: #2015 (stacked on #2009 → #2006) adds |
|
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
|
|
Correction to my earlier note, from #2078's review r1. A pensioner-flag swap is not enough for #1966, because it adds its own working-age assessment. #2078 (now stacked on #2015) makes the CTR means test assess the applicant and partner ( #1966's working-age assessment has its own person masks and family tests. Whichever of #1966 and #2078 lands second must move all of them onto the applicant identity:
Then run #2078's differential property ( |
Resolve conflicts with #1909 (capital routing), #1944 (council_tax_reduction_pensioner; keep main's file with the Welsh/Scottish sentence updated) and programs.yaml. After #1952 carer_support_payment is the CSP component only, so drop the supplement subtraction. Route every working-age person mask through one helper (working_age_applicant_or_partner) so #2078 can swap the applicant identity in one place. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- #1909's Welsh working-age earner now gets the Welsh allowance and the £5 earnings disregard (1,111.24, not the HB-based 993.72). - #1944's capped mixed-age UC couple in Wales gets the maximum reduction under WSI 2013/3029 Sch 6 paras 3 and 9; give it a UC maximum amount consistent with its award. - The Scottish self-employed £17.10 case now pays Class 4 NI on its profits. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Keep main's joint-liability share on the liability, and route the Scottish and Welsh working-age rules on council_tax_reduction_claim_pensioner, the per-claim scheme flag the national formula uses. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Status, paused by Fleet ops (overnight session cap): head a5e5a73 is based on main, MERGEABLE, CI running. CTR YAML 129 passed; property tests pass. Pending:
Next: read the review and fix anything it finds, update the PR's impact table, mark ready, and merge on gates or hand off to the UK hub. 🤖 Generated with Claude Code |
- Take off earnings only the tax and NI in respect of the employment or trade (the UC split of income tax; Class 1, 2 and 4, not Class 3), and disregard tax on counted unearned income in Wales. - Count the carer premium on entitlement to a carer benefit; give the Scottish UC carer fallback only with an award of UC. - Scotland: the £20 disregard for a UC worker with LCW or LCWRA. - Wales UC: the UC model's own earned income, as the Secretary of State's figure. - Welsh fixed amounts from 1 April 2013 (W.S.I. 2012/3144). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Count Carer Support Payment before the overlap reduction, as the pension-age route does, in income and in tax on unearned income. - Update main's Carer Support Payment tests for the devolved amounts. - Regression tests: tax on pensions and dividends stays off wages (Wales and Scotland), carer premium on entitlement, no UC carer premium without an award, Scottish UC LCWRA £20 disregard, Class 3 NI, the Welsh UC income figure (differential against the UC variables), a partial Welsh UC award independent of rent, and the Welsh 2013 first dates. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…tory-pay inheritance Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… and exemption (#2015) * Assess each Council Tax Reduction claim under its own family's scheme and exemption In a shared-rent household every family liable for the rent claims, but the pensioner scheme and the non-dependant exemption were picked once per household from the head's family. SI 2012/2885 reg 3 (and SI 2012/2886 Sch para 3, SI 2013/3029 reg 3, SSI 2021/249 reg 3, SSI 2012/319 reg 12) define "pensioner" per person and partner, and the exemption applies where "the applicant or his partner" is blind or gets a listed benefit (SI 2012/2885 Sch 1 para 8(6) and equivalents). - council_tax_reduction_pensioner (BenUnit) replaces the household flag; the name and entity match #1944 and #1966, which extend the same definition. - council_tax_reduction_applicant_has_non_dep_exemption (BenUnit) replaces the household exemption; the councils' schemes apply it per claim. - council_tax_reduction_scheme_supported is per family, so each family falls back to its reported reduction only where its own scheme is unmodelled. - Councils' person-level non-dependant deductions no longer depend on the head's family; each claimant's own scheme decides whether to use them. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Reconcile reported and simulated reductions within a household With the scheme chosen per family, one household can hold a simulated claim and a family whose scheme is not simulated. Review r1 found that a family that cannot claim then kept its reported reduction beside a head whose simulated award already covered the whole bill: £3,000 against £1,800. - A family that cannot claim keeps a reported reduction only where no claim in its household is simulated (new household flag council_tax_reduction_household_has_simulated_claim). Without sharers this is the base behaviour. - A jointly liable claimant's reported reduction is limited to its own share of the council tax (SI 2012/2885 Sch 1 para 7(3)-(4)), the most any scheme could give it. Tests: three YAML cases; the property tests now generate reported reductions, check the fallback and the household bound, and toggle one claimant's exempting benefit to show it leaves the other claim unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Set a claim's scheme and exemption from the applicant and their partner #2009 now names the liable people directly. A household head can be liable without being the claimant or partner of their family (a grandparent heading a family formed around a young couple), so "the applicant or his partner" (SI 2012/2885 reg 3, Sch 1 para 8(6)) is not always the family's claimant and partner. New person-level council_tax_reduction_applicant_or_partner: the liable member, and the other member of the couple where the liable member is the claimant or partner, whatever the partner's age; in a family that cannot claim, its claimant and partner. The pensioner flag and the applicant exemption read it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Use #2078's CTR applicant-or-partner variable #2078 (also stacked on #2009) adds is_council_tax_reduction_applicant_or_partner and council_tax_reduction_head_applies_alone for the CTR means test. They define the same people as this PR's council_tax_reduction_applicant_or_partner: the claimant and partner where the liable person is one of them, the liable head alone otherwise, and the claimant and partner in a family that cannot claim. Take #2078's two files byte for byte, so whichever PR lands second merges without conflict, and point the pensioner flag and the applicant exemption at it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Cap a reported reduction at the claimant's share only beside a simulated claim Review r2 found that capping every jointly liable claimant's reported reduction at its share could discard a lawful report: the model's divisor (#2006's joint-liability share) counts students that SI 2012/2885 Sch 1 para 7(5) leaves out. The cap exists to stop a reported claim and a simulated claim together exceeding the bill, so it now applies only where another claim in the household is simulated, on the share that claim uses. Where nothing is simulated, reports are kept as reported, as on the base. Tests: - YAML: a jointly liable claimant keeps its whole report where nothing is simulated; a pension-age grandmother in working-age applicants' family does not make their claim a pensioner's (an intended change under reg 3(1): the base paid £1,800 on the pensioner scheme). - Properties: the fallback oracle follows the narrowed cap, and property 4 compares council_tax_benefit wherever the household's reconciliation is unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Apply the reported-reduction cap only beside a simulated claim that pays On the payer build, the only remaining change came from heads whose reported reduction was capped beside a sharer whose simulated claim paid nothing. With no simulated reduction competing for the bill there is nothing to reconcile, so the cap now applies only where the simulated claims in the household pay something. The household bound still holds: each simulated award is within its share, and a capped report within its own. Tests: a YAML case where the simulated claim beside a report pays nothing; the fallback oracle, the bound and property 4's comparison follow the paid condition. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Test the per-family pensioner flag against #1944's reg 3 conditions council_tax_reduction_pensioner is now #1944's SI 2012/2885 reg 3 test on this PR's members: the qualifying age for State Pension Credit, and no Income Support, income-based JSA, income-related ESA or Universal Credit award. Property 1's oracle computes that directly. A family's own Universal Credit award depends on the rent it pays, which changes when it lives alone, so property 2 compares the families whose own awards are the same either way (and checks there are some). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Address the after-merge review: student share, head's own awards, P5 - council_tax_benefit: the share leaves out only people in higher education, so where a jointly liable person it counts is in other education (who may be a student SI 2012/2885 Sch 1 para 7(5) leaves out), the share may be too small; a report is then kept rather than capped. - council_tax_reduction_pensioner: where the household head applies alone, the benefit unit's Income Support, income-based JSA, income-related ESA and Universal Credit are its claimant and partner's, not the applicant's (as #2078 does for council_tax_reduction_relevant_income_based_benefit). - Two YAML regressions: a report beside a paying simulated claim where a further-education student is counted in the share, and a grandmother head who stays a pensioner when the young parents get Income Support. - Property test: the alone simulation is given each family's own awards instead of filtering; some generated adults are further-education students, and properties 5 and 6 follow the new rule. - test_benefit_cap_and_ctr_pension_age_properties P5 compares against a reform of the cap exception alone, so the CTR pensioner test (which also sets the applicable amount) is held fixed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Hold the means test fixed in property 4 CI found that swapping the other claiming families' ages and disability benefits can move a family's simulated award through its applicable amount: the model's severe disability premium counts the other adults in the household (has_non_dependant_for_severe_disability_premium), joint occupiers included. That is main's means test, not the scheme or the exemption, so the perturbed run is given each family's applicable amount and income from the unperturbed one. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Read the student test and in_FE for the cap's student guard The re-review of 38364ca found that the guard missed in_FE, and that current_education's age default (tertiary at 18 and 19) turns it on with no education input. The guard now uses the model's student test for non-dependants (_legacy.is_full_time_student_non_dep) or in_FE, for a jointly liable person the share counts. The age default is kept deliberately: in the enhanced FRS current_education is an observed input, and the same test already treats an 18- or 19-year-old non-dependant as a student. The documentation says so, including that part-time students and students para 75(2) brings back in are treated the same way. Regressions: the student shown by in_FE (fails on 38364ca), and a jointly liable sharer with no education input at 19 (report kept) and 20 (capped). The property generator makes students by current_education or by in_FE. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Hold each family's own awards fixed in property 4 CI on d988725 (run 37383946508) failed property 4 on a Newham household: a working-age head (47) claiming Universal Credit, a sharer couple aged 100 and 63 with earnings, and a non-dependant. Perturbing the head to 85 moves the non-dependant into the sharer's claim (uc_non_dependants_counted: the household's non-dependants count in one claim only, UC Regs 2013 Sch 4 para 9(2), the head family's where it claims). The sharer's size criteria rise from one bedroom to two, its LHA cap from 9,000 to 10,860 and its award from 0 to 1,288.29, and reg 3(1)(a)(ii) then makes it not a pensioner. That is the family's own award, which the pensioner test is meant to follow, so the change is intended. Property 4 now holds each family's own UC, IS, JSA and ESA awards fixed, as property 2 already does, along with its means test. The same population fails on a9466b8, so this predates the merge of main; CI on a9466b8 did not generate it. With the awards held, a household-level pensioner flag still fails property 4. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Hold the household allocations, not the awards, in property 4 The review of 94041e9 found that holding every family's own awards still let property 4 fail through the same channel, and hid cross-family reads of awards: - In Newham, when the head's family stops claiming Universal Credit, the non-dependant moves into the sharer's claim and raises its uc_maximum_amount, which the four _legacy councils use as a UC family's applicable amount. The sharer's council award moved from 241.67 to 417.02 with its awards held. - Holding every family's awards also gives a perturbed 85-year-old head the award of the 47-year-old it replaced, and a mutant that read another family's UC survived. Property 4 now holds, with each family's CTR means test, the two household allocations through which other families reach a family's own awards: uc_non_dependants_counted (UC Regs 2013 Sch 4 para 9(2)) and has_non_dependant_for_severe_disability_premium. Each family's awards are computed. The body passes on CI's population, its minimal household and the reviewer's counterexample, and catches all five mutants the reviewer and author built. The generator also sets is_claimant_or_partner on every family's adults, so wide-gap couples stay couples once #2082 presumes a member 20 or more years younger to be a child. build() keeps each held value's own type. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Hold the CTR capital in property 4 and pin its counterexamples Pension Credit's guarantee credit sets a family's CTR capital to nil, and the model lets other families reach that guarantee credit twice: the severe disability addition's residence condition counts every other adult in the household, and pension_credit_assessable_capital divides the household's savings among its pension-age adults. Property 4 held the CTR applicable amount and income but not the capital, so a head reaching pension age, or gaining Attendance Allowance, could move a pension-age sharer's award from nil to its £900 share of an £1,800 bill (review r5, finding 1). Hold council_tax_reduction_assessable_capital with the rest of the means test, name the two Pension Credit routes in the docstring, and pin as Hypothesis examples the four populations that broke earlier versions of the property: CI's Universal Credit non-dependant move, the uc_maximum_amount move, and the two Pension Credit routes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
|
A note from #2288, which gives Scotland's working-age Council Tax Reduction scheme its own "young person" (SSI 2021/249 reg. 6(1): the Universal Credit qualifying young person, UC Regs 2013 reg. 5) and leaves England, Wales and Scotland's pension-age scheme on the Child Benefit one. When this PR is rebased after #2288 lands, five reads in the new working-age variables use the legacy flags, which follow the Child Benefit definition:
For Scotland these should read #2288 also edits |
|
UK hub, coordination with #1995 (income derived from capital in the legacy means tests; owner session local_4c20f06a; head 3727eb8). #1995 adds When this PR's working-age route ( 🤖 Generated with Claude Code |
… fix review r3 Conflicts: - council_tax_reduction_pensioner.py: main's per-claim flag (#2078); its docstring now says Welsh and Scottish claims that fail it take the working-age route. - CSP and pensioner tests: keep main's statutory 2025-26 amounts (#2110) and the working-age route's outputs; the capped Welsh mixed-age UC couple gets the maximum reduction under Sch 6 paras 3, 9. Composition: - Route on council_tax_reduction_pensioner (claim_pensioner is gone). - #2078: every person mask reads is_council_tax_reduction_applicant_or_partner; where the head applies alone she is single, and the benefit unit's UC, income-related benefits, tax credits and children are not hers (working_age/_applicant.py helpers). Premium conditions follow council_tax_reduction_premiums for a head alone, and the severe disability premium uses CTR's own family test. - #2288: children and lone parents follow the scheme's own young person (is_child_or_young_person_for_council_tax_reduction, is_council_tax_reduction_lone_parent). - UC now counts statutory pay itself, so Scotland's UC route uses uc_individual_earned_income_before_mif (no minimum income floor in SSI 2021/249 regs 49-51) without adding it again. - Main's tests that pinned Scottish and Welsh working-age awards under the shared formula are re-derived under the devolved rules. Review r3: - R3-1: tax disregarded from Welsh unearned income is shared only with taxable non-earnings the schemes do not count; property income is outside earned_income_tax already. - R3-2: the Scottish LCW/LCWRA £20 tests "under pensionable age" and "in employment" separately (Sch 3 para 4(3)). - R3-3: without UC, self-employed profit takes the prescribed notional basic-rate tax and Class 4 (Class 2 before April 2024), not the tax paid (SSI 2012/303 reg 38 via SSI 2021/249 reg 51(9); WSI 2013/3029 Sch 6 para 25). Employed earnings deduct the tax and Class 1 on the employment only. - R3-4: the CSP test header's tax note is pension-age only. 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: 27 (thresholds in Notes
Moves flagged for review
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; components the model counts twice; 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
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
|
The personal allowance read the benefit unit's esa_income, which holds awards other members claim in their own right and, where the household head applies alone, the young couple's award. Read contributory ESA for the applicant and partner, and claimant_or_partner_esa_income only where the benefit unit's awards are the applicant's. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…g costs Hypothesis found a family with no rent: gaining a housing costs element lowers the UC work allowance (UC Regs 2013 reg 22), which changes the award by more than the element, so the reduction changes. That is the law, not a defect. The property now compares variants that both have a housing costs element, and a new test executes the boundary. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…emium for one cared-for person - R4-1: primary Class 1 falls on pay only, so it comes off pay in full; only income tax is shared between pay and miscellaneous income. - R4-3: Part 5 miscellaneous income is unearned income (SSI 2021/249 reg 57(1)(o); WSI 2013/3029 Sch 6 para 17). It counts in both countries, its share of the tax is disregarded in Wales (Sch 9 para 4), and it leaves Scotland's UC earnings measure. - R4-2: partners caring for the same severely disabled person count once for the carer premium (SSI 2021/249 Sch 1 para 5(3)-(4)), as in carer_premium. - R4-4: the pension deduction rate's docs say the Welsh and Scottish UC route now exists. - Nits: CSP test header, adult premium docs. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Fixes #1962. Also closes #1935 for Scotland and Wales.
Reproducer: policyengine_uk/tests/policy/baseline/gov/local_authorities/council_tax_reduction/council_tax_reduction_devolved_working_age.yaml; policyengine_uk/tests/test_council_tax_reduction_devolved_working_age_properties.py::test_devolved_working_age_award_properties
axiom: SSI 2021/249 regs 13(11), 35, 42, 49(6), 50(3), 51(9), 57(1)(p), Sch 1 para 6(1), Sch 3 para 4(3); SSI 2012/303 reg 38; WSI 2013/3029 Sch 6 paras 3, 9, 15(3), 25, Sch 7 paras 1-4 and 14, Sch 9 para 4, Sch 9 and 10 para 8 | TheAxiomFoundation/rulespec-uk#393 queued (the signed encoder is not yet available for rulespec-uk; scope extended in the issue's comments)
What was wrong
Working-age households in Scotland and Wales ran through the pension-age means test, built on Housing Benefit parameters. On
main(76cfc9e) in 2026, on the certified Enhanced FRS 1.58.1, CTR for working-age households was:Four legal defects caused it:
What this changes
simulated_council_tax_reduction_benunitsends a claim down a new working-age route when the household is in Scotland or Wales andcouncil_tax_reduction_pensioner(main's per-claim scheme flag) is false.Who is assessed follows main's applicant identity (#2078) through
working_age/_applicant.py:is_council_tax_reduction_applicant_or_partner.council_tax_reduction_head_applies_alone), she is a single person. The benefit unit's partner, children, UC, income-related benefits and tax credits are its claimant's, not hers, and her premium conditions are her own, as incouncil_tax_reduction_premiums.is_child_or_young_person_for_council_tax_reductionandis_council_tax_reduction_lone_parent. That is the Universal Credit one in Scotland's working-age scheme from 2022-23, and Child Benefit's in Wales.The new variables are in
council_tax_reduction/working_age/:council_tax_reduction_devolved_working_agecouncil_tax_reduction_working_age_applicable_amountuc_maximum_amount. Otherwise: personal allowance, child amounts, and the devolved adult premiums (council_tax_reduction_working_age_adult_premiums).council_tax_reduction_working_age_personal_allowancecouncil_tax_reduction_working_age_child_amountscouncil_tax_reduction_working_age_adult_premiums,_carerscouncil_tax_reduction_severe_disability_premium), and a carer premium for each applicant or partner entitled to Carer's Allowance or Carer Support Payment, including an entitlement an overlapping benefit reduces to nil (WSI 2013/3029 Sch 7 para 14(1); SSI 2021/249 Sch 1 para 6(1)(a)-(b)). Scotland also counts an award of UC that includes the carer element (para 6(1)(c)), as one carer when no one in the family is entitled to a carer benefit.council_tax_reduction_working_age_applicable_incomecouncil_tax_reduction_working_age_person_earned_income,_earned_income,_employed_earned_incomeuc_individual_earned_income): the Secretary of State's figure (Sch 6 para 9). Scotland with UC: the UC measure without the floor (uc_individual_earned_income_before_mif), since SSI 2021/249 regs 49 and 51(2) have none, less miscellaneous income (net of its tax share), which is unearned here. It includes SSP/SMP/SPP and deducts only the tax and NI paid in respect of the employment or trade. Without UC: pay and SSP/SMP/SPP less the income tax and primary Class 1 on the employment (reg 50(3)(a); WSI 2013/3029 Sch 6 para 15(3)(a)). The tax is the UC model's split, earnings as the lowest slice and pay before trade (uc_income_tax_on_earningslessuc_income_tax_on_trade), shared pro rata with miscellaneous income, which is unearned; primary Class 1 comes off pay in full. Self-employed profit takes the prescribed notional deductions, not the tax paid (SSI 2012/303 reg 38 via SSI 2021/249 reg 51(9); WSI 2013/3029 Sch 6 para 25): basic-rate tax on the profit less the personal allowance (in Wales also the blind person's allowance), Class 4 at the main rate between the profits limits, and Class 2 before April 2024. Half of pension contributions comes off. Never Class 3, tax on pensions or tax on dividends. Employed earnings feed Scotland's £17.10 test.council_tax_reduction_working_age_unearned_income_taxearned_income_tax(non-savings tax other than on property income) less the tax on earnings is the tax on pensions and taxable benefits, shared pro rata with those the schemes do not count (the Scottish Carer Supplement). Wales without UC disregards it (Sch 9 para 4); Scotland counts unearned income gross (reg 57).council_tax_reduction_working_age_earnings_disregardcouncil_tax_reduction_working_age_unearned_incomecouncil_tax_reduction_relevant_universal_credit_paymentscouncil_tax_reduction_working_age_childcare_deductioncouncil_tax_reduction_working_age_capital,_tariff_incomecouncil_tax_reduction_working_age_passported,_has_universal_credit,_universal_credit_awardcouncil_tax_reduction_relevant_income_based_benefit); UC entitlement, not a household head's who applies alone; the award after the benefit cap and before deductions from payment.The new parameters are under
gov.local_authorities.{scotland,wales}.council_tax_reduction.working_age. Every uprated amount has its full history from 2013-14 to 2026-27, and each change cites the amending instrument and provision. The history was compiled from legislation.gov.uk and chain-checked: each year's "for £X" equals the previous year's value. Welsh 2013-14 values, including the fixed disregards, tariff income and childcare caps (from 1 April 2013), come from the revoked WSI 2012/3144, which then applied.Pension-age CTR, the English schemes and the Housing Benefit parameters are unchanged. Outside the new
working_age/folders, the model code touched is the Scotland/Wales hook insimulated_council_tax_reduction_benunit.py, one docstring incouncil_tax_reduction_pensioner.py, and the CTR notes inprograms.yaml.council_tax_reduction_pensioner.pyis main's file with one documentation sentence changed: Welsh and Scottish claims that fail the test now take the working-age rules.Composition with main
The PR is based on
main; it was last merged at 76cfc9e (2026-10-20).council_tax_reduction_pensioner. These replacecouncil_tax_reduction_claim_pensioner, whichmainremoved. The route keys on the new flag, and every mask reads the applicant identity (above).test_head_applying_alone_matches_her_own_benefit_unit) now also compares the working-age route's scheme flag, income, applicable amount, passport and UC flag.main's Carer Support Payment header and 2025 case are kept.main's UC now counts SSP, SMP and SPP itself (UC Regs 2013 reg 55(4)), so the Scottish UC route no longer adds them. The Welsh UC route follows UC as before.council_tax_reduction_joint_liability_share. The pension-age route keepscouncil_tax_reduction_assessable_capital. The working-age route countscarer_support_payment_pre_overlap, likemain's CTR income, until it is settled which amount CTR counts.council_tax_reduction_assessable_capitalwith property capital and a UC route, andcouncil_tax_reduction_universal_credit_award. Whichever of Treat income derived from capital as capital in the legacy means tests #1995 and this PR lands second pointscouncil_tax_reduction_working_age_capital, the tariff and the passport at those two (UK hub note, 20 October).maintests that pinned Scottish and Welsh working-age awards under the shared formula are re-derived under the devolved rules, each with its derivation in the YAML:claimant_family_scheme.yaml: four shared-rent cases. The working-age family's income input moves to the working-age variable. Wales's own £101.85 allowance gives £359.24, not £293.72; Scotland's amount equals HB's, so its award is unchanged.applicant_or_partner.yaml: two Scottish couples get the couple's £10 earnings disregard, so £1,465.56, not £1,361.56.severe_disability_premium_young_person.yaml: where the 19-year-old is a UC qualifying young person, the Scottish applicant is a lone parent with a £109.85 child premium. The applicable amount is £15,155.40, above the £12,570 income, so the full £2,000.council_tax_reduction_pension_credit.yamlgets £1,111.24. The capped Welsh mixed-age UC couple incouncil_tax_reduction_pensioner.yamlgets the maximum reduction (WSI 2013/3029 Sch 6 paras 3 and 9).main's Carer Support Payment cases get the devolved amounts: the Welsh carer £1,260.92, the 2025 Scottish carer £1,173.56.Impact (certified Enhanced FRS 2024-25 1.58.1, real microsimulation runs)
At aed6724. The round-4 fixes in 779f5dc move the working-age route: Class 1 now comes off pay in full, Part 5 miscellaneous income counts as unearned income, and partners caring for the same person get one premium. The branch side is being rerun at 779f5dc and will replace the table below. The
Aggregate impactcheck reruns on each push.CTR in £bn (recipient households, millions). Base =
main76cfc9e; this PR = aed6724. certified Enhanced FRS 2024-25 (release 1.58.1), real microsimulation runs. A household's group follows its CTR claimant benefit unit's scheme (council_tax_reduction_pensioner).Change in CTR by year:
Household net income rises by the same amount as CTR.
Pension-age CTR is unchanged. It is identical to
mainin every year run (2025, 2026, 2027 and 2029), in England, Scotland and Wales, and so are English working-age CTR and Northern Ireland. That holds household by household as well as in total: no pension-age benefit unit's simulated reduction changes in 2026 or 2029.Losers. Fewer than 10 survey records lose in each year, all Scottish working-age claimants without UC and without earnings. Their pensions or taxable benefits bear income tax. SSI 2021/249 reg 57 counts unearned income gross, whereas the shared formula deducted all income tax. The figures are suppressed under
aggregate_impact/privacy.py's small-cell rule.Earlier years. The base Enhanced FRS has no weights before 2024. Three YAML cases check the 2015, 2016 and 2018 amounts instead.
The
Aggregate impactcheck agrees. Base 60b09a4 is the test merge's first parent. CTR spending is +£105.8m in 2025-26, +£109.7m in 2026-27 and +£114.3m in 2027-28, matching the runs above, with 138-143k more recipients each year.Flagged pensioner poverty move. Its one flagged pensioner move is relative poverty before housing costs, +0.22pp in 2027-28. No pension-age benefit unit's reduction changes, and households that mix a pension-age and a gaining working-age family only gain income. So the move comes through the relative poverty line, which rises with median income, not through any pensioner's income falling.
Scripts:
impact_v2.pyandimpact_table.py. The pension grouping maps benefit units to households through their members.Why the gap to reported and official figures remains (data, not law)
Filed as PolicyEngine/policyengine-uk-data#496 and #497; the fix, policyengine-uk-data#499, lands with a later data release.
council_taxis the FRS bill net of CTR. DWP defines the FRS 2024-25CTANNUALas "Annual CT amount after discounts/reduction", derived from CTREB and CTREBAMT. The model treats it as the gross liability, so each reported recipient's liability is already reduced by its own CTR.maingives £0.071bn and £0.010bn.Not modelled (documented in the variables)
main's national CTR deductions (National council tax reduction: non-dependant deductions use Housing Benefit amounts and skip exemptions; pensioner gate ignores benefit exclusions #1934; Apply Housing Benefit and national Council Tax Reduction non-dependant deductions as legislated #2007 open).Tests
YAML.
council_tax_reduction_devolved_working_age.yamlhas 41 cases. Expected values are worked by hand from the law's amounts:Property and differential tests.
test_council_tax_reduction_devolved_working_age_properties.pyruns many households in one simulation:test_welsh_universal_credit_rent_cancels_only_given_housing_costsexecutes the boundary.test_head_applying_alone_matches_her_own_benefit_unit) also compares the working-age route's scheme flag, income, applicable amount, passport and UC flag.uc_individual_earned_income, income equals earnings +uc_unearned_income+ the award, and the applicable amount equalsuc_maximum_amount, with and without SMP.Mutation checks, each run against these tests:
esa_incomefor the higher single allowance;Outsider income.
test_means_test_income_properties.pynow also checks that the new working-age income never counts income from people outside the family.Suites. Local runs:
test_council_tax_reduction_applicant_properties.pyandtest_means_test_income_properties.py, which pass at fae2f38;CI runs the full suite.
Invariants
main's in every year run, benefit unit by benefit unit.Effect on pensioner CTR (uk-triple-lock)
None. Pension-age CTR in England, Scotland and Wales is identical to
main(76cfc9e) in every year run (2025, 2026, 2027 and 2029), in total and benefit unit by benefit unit, so uk-triple-lock's pensioner offsets are unaffected.The one legal change on the pension side is that a mixed-age couple on UC in Scotland or Wales takes the working-age route, keyed on
main's per-claimcouncil_tax_reduction_pensioner(WSI 2013/3029 reg 3; SSI 2021/249 reg 3). The pension-age totals above are unchanged with it.🤖 Generated with Claude Code