Apply Housing Benefit and national Council Tax Reduction non-dependant deductions as legislated - #2007
Apply Housing Benefit and national Council Tax Reduction non-dependant deductions as legislated#2007MaxGhenis wants to merge 3 commits into
Conversation
Housing Benefit (SI 2006/213 reg 74; SI 2006/214 reg 55): - bands include their lower edge, and only a non-dependant in remunerative work (16+ hours, reg 6(1)) is banded, on the couple's joint income; anyone else pays the reg 74(1)(b) amount; - one deduction per couple, the higher (reg 74(3)); - no deduction for full-time students, State Pension Credit recipients, or under-25s on IS, income-based JSA or UC without earned income (reg 74(7), (8), (10)), nor for any non-dependant when the claimant or partner is blind or on AA, DLA care, PIP daily living or AFIP (reg 74(6)). Council Tax Reduction (SI 2012/2885 Sch 1 para 8; WSI 2013/3029 Sch 1 para 3 and Sch 6 para 5; SSI 2012/319 reg 48; SSI 2012/303 reg 67 and SSI 2021/249 reg 90): - each national scheme's own weekly scale for 2013-14 to 2026-27, instead of the Housing Benefit amounts; - the same banding and couple rules, with Wales's working-age exception for couples on UC; - the schemes' any-age exemptions, the UC limb from the year each scheme added it, and the existing applicant exemption. Fixes #2004; the non-dependant half of #1934. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Composition note: #2015 (stacked on #2009 → #2006) deletes the two household flags this PR reads.
See the "National schemes and the exemption" section of #2015. (Corrected per this PR's author.) |
Cherry-picks #2007 (59c7082: HB reg 74 / SPC reg 55 bands, remunerative-work test, couple rule and exemptions; national CTR own scales and exemptions) onto the in-unit non-dependant change (#2014) and the #2006 rent shares, as agreed with #2007's author: - HB and national CTR aggregation: one deduction for a non-dependant couple (the claimant and partner of a non-dependant family, the higher amount; both for a Welsh working-age couple on UC), any other adult in that family counted separately, in-unit non-dependants pooled and apportioned by rent share (HB) or joint-liability share (CTR), and the claimant's exemption. - Joint income for the bands is the couple's only (reg 74(4), para 8(4)); another adult is banded on their own income. - The IS, income-based JSA, income-related ESA, Pension Credit and UC exemptions apply only to the award's claimant and partner. - The HB claimant exemption reads is_claimant_or_partner, not is_adult. Drops council_tax_reduction_pension_credit.yaml and the in_receipt_of_guarantee_credit output, which depend on #1909 (main only). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Cherry-picks #2007 (59c7082: HB reg 74 / SPC reg 55 bands, remunerative-work test, couple rule and exemptions; national CTR own scales and exemptions) onto the in-unit non-dependant change (#2014) and the #2006 rent shares, as agreed with #2007's author: - HB and national CTR aggregation: one deduction for a non-dependant couple (the claimant and partner of a non-dependant family, the higher amount; both for a Welsh working-age couple on UC), any other adult in that family counted separately, in-unit non-dependants pooled and apportioned by rent share (HB) or joint-liability share (CTR), and the claimant's exemption. - Joint income for the bands is the couple's only (reg 74(4), para 8(4)); another adult is banded on their own income. - The IS, income-based JSA, income-related ESA, Pension Credit and UC exemptions apply only to the award's claimant and partner. - The HB claimant exemption reads is_claimant_or_partner, not is_adult. Drops council_tax_reduction_pension_credit.yaml and the in_receipt_of_guarantee_credit output, which depend on #1909 (main only). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…s, gross income - Identify the claimant or partner as the benefit unit's head or any member who is not an SSCBA s.142 child or qualifying young person (HB Regs 2006 regs 2(1) and 19; CTR regs 2(1)), replacing is_adult in the HB and CTR claimant exemptions. - Band a couple on the couple's joint income only, give the couple one deduction and any other adult in the family their own, and count benefit receipt (IS, JSA(IB), ESA(IR), SPC, UC) only for the award's claimant or partner. - Treat a non-dependant on IS, JSA(IB) or ESA(IR) as not in remunerative work for HB (reg 6(6)). - Take self-employed losses as nil in the UC no-earned-income test (UC reg 57(2)). - Add the family's UC (before the cap), tax credits and child benefit to gross income. - Tests: the review's counterexamples, a non-vacuous SPC exemption case, and property-test generators and oracles for dependent young people and losses. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Response to review r1 of #2007 (59c7082)The review asked for changes and was right on all five P1s. Each is fixed below with the law, the change, and a test that fails on 59c7082 and passes now.
Also from the review:
Not changed: the review's UNVERIFIED items on impact (exact zeros, decomposition, poverty causation). The impact is rerun on the new head after the host is free (the Axiom build has priority until about 10:00Z). The PR description's impact section is replaced with the rerun. |
Applies #2007 at 6257277 (59c7082 plus the r1 review commit) onto #2017 (in-unit non-dependants, #2006 rent shares): - One definition of claimant or partner: #1896's is_claimant_or_partner variable. #2007's proxy helper (benefit-unit head or any member who is not a Child Benefit child or QYP) is removed and its call sites read the variable. - HB and national CTR aggregation: another family's non-dependants per deduction_per_family (the couple's higher amount, both for a Welsh working-age UC couple, and each other member's own), counted once per family and apportioned by rent share (HB) or joint-liability share (CTR); a family's own in-unit non-dependants in full (LHA Guidance Manual 2.093; HBGM A5 5.622); the claimant exemptions. charged_to_other_families ("household minus own family") is no longer used and is removed. - #2007's property oracle reads is_claimant_or_partner; the in-unit property oracle counts a couple once and applies the claimant exemptions. - Drops council_tax_reduction_pension_credit.yaml and the in_receipt_of_guarantee_credit output (#1909, main only). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Carries 2d54628 (review r2 F3-F5) onto the composition with #2007: - HB pools every non-dependant family amount, in-unit ones included, through #2007's deduction_per_family and apportions it by rent share; a boarder or lodger also bears its own in full; the claimant exemption still zeroes the claim. - National CTR pools every family's amount (one per couple, the higher, or both for a Welsh working-age UC couple), replaces the applicant's own family amount with its in-unit non-dependants only, and apportions by joint-liability share; the per-applicant exemption still zeroes the claim. - CTR eligibility includes a lodger's adult son; the local schemes stay neutral. The blind-sharer case now expects the non-exempt head to bear half of the sharer's son (para 8(5)). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…A disregard - "No earned income" follows UC Regs 2013 regs 52-62: employment income plus SSP and SMP less relievable pension contributions (reg 55(4)-(5)), self-employed earnings with losses nil and the minimum income floor where the UC model applies it (regs 57(2), 62), and other paid work. - IS, JSA(IB), ESA(IR) and SPC count only for the person they are payable to (HB Regs 2006 reg 2(3)-(3A)): the member reporting the award, or the head; used for the exemptions and HB reg 6(6). UC still counts for both joint claimants. - Gross income uses UC after the benefit cap (UC reg 81), applying the cap to the capped benefits other than HB, which a non-dependant family does not receive. - CTR exempts an adult for whom another person is entitled to child benefit (LGFA 1992 Sch 1 para 3, via para 8(8)(b) and equivalents). - Tests: the review's counterexamples, and property oracles for the payee and the child benefit disregard. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Response to review r2 of #2007 (6257277)The review asked for changes again and was right on all five P1s. Findings 2-5 are fixed in the next commit, each with a YAML test that fails on 6257277 (
On the property tests, the review said the oracles repeat the implementation's classification. They now take the payee as the head (the generator reports no awards) and read the child benefit QYP flag from the model. After the #1896 rebase they read |
Fixes #2004. Also fixes the non-dependant half of #1934; its pensioner-gate half stays open.
Summary
Housing Benefit and the national Council Tax Reduction schemes now make non-dependant deductions the way the regulations set them. Law was read on legislation.gov.uk at the 7 April 2025 point in time, plus each year's version for the CTR scales.
Housing Benefit (SI 2006/213 reg 74; SI 2006/214 reg 55 is the same for these rules):
right=True, so £192.00 a week fell in the band below and £0 paid nothingCouncil Tax Reduction: the England pensioner (SI 2012/2885 Sch 1 para 8), Welsh (WSI 2013/3029 Sch 1 para 3 and Sch 6 para 5) and Scottish (SSI 2012/319 reg 48; SSI 2012/303 reg 67, then SSI 2021/249 reg 90) schemes.
gov.benefit_uprating_cpi, as Set DWP benefit rates to the announced amounts, not CPI projections #1925 does for the HB scale.council_tax_reduction_household_has_non_dep_exemptionexisted but only the local schemes used it. It now applies to the national schemes too.council_tax_reduction_individual_non_dep_deduction_eligible, so the national exemptions are applied insidecouncil_tax_reduction_individual_non_dep_deduction, not there.New variables:
housing_benefit_non_dep_deduction_exempt(Person)housing_benefit_non_dep_deductions_claimant_exempt(BenUnit)council_tax_reduction_non_dep_deduction_exempt(Person)New parameters:
remunerative_work_hours(16)income_related_benefit_age_limit(25)non_dep_deduction/{amount, remunerative_work_hours, exempt_universal_credit_without_earned_income}HB
age_threshold(18) now starts in 2006, when the 2006 Regulations were made, not 2019.Inputs and choices
Full-time student:
current_education != NOT_IN_EDUCATIONorin_HE, the helper the local schemes already use. In the Enhanced FRS,current_educationcomes from FTED/EDUCFT ("in full-time education"), so it is the full-time flag. Note the age-based default: with no input, an 18- or 19-year-old is in tertiary education and so exempt.Claimant or partner: the benefit unit's head, or any member who is not an SSCBA s.142 child or qualifying young person (
is_child_or_qualifying_young_person_for_child_benefit, already on main). That is how HB Regs 2006 regs 2(1) and 19 and the English and Welsh CTR regulations (reg 2(1)) define a family's members other than the claimant and partner. It is used for:council_tax_reduction_household_has_non_dep_exemption, which the English local schemes also read);Gross income: for a claimant or partner of the non-dependant's family, the couple's taxable income (
total_income, floored at zero) plus the family's UC, CTC, WTC and child benefit. For anyone else in the family, their own taxable income.universal_credititself depends on HB through the cap, so using it would be circular.On a benefit: the IS, JSA(IB), ESA(IR) and SPC exemptions, and HB reg 6(6), apply only to the person the award is payable to (HB reg 2(3)-(3A), "payable to him"). That is the member who reports the award, or the benefit unit's head where none does. UC counts for both joint claimants (reg 2(3B), entitlement).
HB reg 6(6): a claimant or partner of an IS, JSA(IB) or ESA(IR) award is treated as not in remunerative work, so pays the lowest amount whatever their hours.
UC entitlement:
universal_credit_pre_benefit_cap > 0, becauseuniversal_creditdepends on Housing Benefit through the benefit cap and would be circular."Earned income" in the UC limb (UC regs 52-62):
Testing the person's own earnings rather than a joint award's is an interpretation. The limb reads "the award is calculated on the basis that the non-dependant does not have any earned income", and a joint award is calculated on combined earnings (UC reg 22(1)(b)). I found no DWP guidance that settles it. The local-scheme work on Charge non-dependant deductions for non-dependants within the claimant's benefit unit #2017 keeps the couple reading for the five English local schemes.
Not modelled (no input)
is_apprenticehas no £195 earnings cap, so it isn't used.Review
Round 1 (independent Subfleet review of 59c7082, Opus 5.5 after a rate-limited first attempt) asked for changes.
is_adultas claimant or partner;non_dependant_deduction_review_cases.yamland new cases inhousehold_benefits_individual_non_dep_deduction.yaml). The response is in the PR thread.What round 1 confirmed: 288 CTR fixture and parameter comparisons and the 11 HB 2026-27 values; no leak into the five English local schemes; no dependency cycle in 48 household-years; the full HB, UC and local-authority YAML suites passing.
Round 2 (Subfleet review of 6257277) asked for changes. Fixed in e92b5d1, each with a test that fails on 6257277 (the "Round 2" section of
non_dependant_deduction_review_cases.yaml):Explicit young partners (round 2's identity finding): fixed by adopting Replace generic child and adult flags with each programme's legal definitions #1896's
is_claimant_or_partner, which caps the set at the head and one partner, when Replace generic child and adult flags with each programme's legal definitions #1896 lands. Replace generic child and adult flags with each programme's legal definitions #1896's owner asked for this.The round 1 and round 2 responses are in the PR thread.
Invariants
These hold for every input:
tests/fixtures/council_tax_reduction_non_dependant_deductions.yaml.Tests
YAML (all with hand-worked expectations from the law):
current_educationandwould_claim_uc: false(an income-free 18-year-old is otherwise entitled to UC without earned income, and so exempt).test_non_dependant_deduction_properties.py: Hypothesis populations for invariants 1-6 and 9 (with explicit examples for the rare Welsh-couple and under-25 cases), the exhaustive edge check (7), and the fixture differential (8).Scale verification: an independent check (Subfleet, GPT-6.1 Sol) of all 294 CTR scale values against the amending instruments as made returned ALL MATCH, 42 scheme-years. It also confirmed that every instrument applies from 1 April, and that Wales's and Scotland's pensioner and working-age scales are identical. Three drafting points don't change any value:
Mutation testing (run on 59c7082; rerun on this head pending): 12 hand-made mutations:
The YAML suites kill all 12; the property tests kill 11. The UC-limb mutation survives them by design: they draw 2025-30, when every limb applies, and the 2014-16 YAML cases kill it.
Commands:
policyengine-core test policyengine_uk/tests/policy/baseline/finance/benefit/family/{housing_benefit,universal_credit} policyengine_uk/tests/policy/baseline/gov/local_authorities -c policyengine_uk: 348 passed.pytest test_non_dependant_deduction_properties.py test_parameter_descriptions.py test_parameter_metadata.py test_fiscal_year_parameters.py test_council_tax_reduction_pension_credit_properties.py test_carer_support_payment.py test_lha_freeze.py test_build_metadata.py: all passed.ruff format/ruff checkon the changed files.Targeted tests only. The full suite is left to CI.
Impact (Enhanced FRS 2024-25)
Real runs of
main(7b9fc37) and this branch (6257277) on the same dataset. Nothing is scaled. The round-1 review fixes change no survey record's HB or CTR award: both are identical record by record to the run of 59c7082. They change only the computed deductions of families that receive neither benefit.No CTR family loses. Universal Credit and Pension Credit don't change.
2025-26 uses main's 2025 HB scale, which Set DWP benefit rates to the announced amounts, not CPI projections #1925 corrects.
Housing Benefit, decomposed. Separate real runs of this branch for 2026-27, adding one part at a time (variable overrides in a separate process per run):
Who is affected. About 14k non-dependants live with HB recipients:
HB losers. The losers are households whose non-dependant has no income, is not exempt, and now pays the lowest amount (£20.40 a week in 2026-27). Before, zero income paid nothing. Those losses put 0.9k people below the BHC line from 2027-28; the poverty line itself doesn't change.
Council Tax Reduction.
Merge order and overlaps
household_benefits_individual_non_dep_deduction.yaml.ctr-claimant-household-head(stacked on Give sharers, boarders and lodgers their own rent, tenure and LHA category #2006) makes the CTR applicant the family holdingis_household_head, not every family tied for oldest. It also excludes every claimant family from non-dependant eligibility. The changes compose, since this PR doesn't touch either variable, and its CTR tests make the applicant strictly oldest. Older relatives it reclassifies as non-dependants get this PR's scheme scales and exemptions (including SPC). Whichever lands second reruns its impact.is_claimant_or_partner. This PR uses the HB and CTR legal definition (s.142, plus the benefit unit's head) and changescouncil_tax_reduction_household_has_non_dep_exemptionfromis_adultto it, which Replace generic child and adult flags with each programme's legal definitions #1896 also edits. Whichever merges second takes one definition.council_tax_reduction_non_dep_deductions, so it picks this up.Axiom
axiom: uk/regulation/uksi/2006/213/74, uksi/2006/214/55, uksi/2012/2885/schedule/1/paragraph/8, wsi/2013/3029/schedule/1/paragraph/3 and schedule/6/paragraph/5, ssi/2012/319/48, ssi/2021/249/90 queued TheAxiomFoundation/rulespec-uk#407uk/policies/housing_benefit_composed_entitlement_pipeline.yaml) has the reg 74 bands for 2026-27 only, with inclusive>=edges. But it bands every non-dependant, multiplies one amount by a non-dependant count, and has no couple rule or exemptions. The 2025-26 amounts are in rulespec-uk#382.review_finding, and companion tests from the same 2026-27 law as this PR's YAML tests. It carries thepe-paritylabel.🤖 Generated with Claude Code