Repository navigation
Conversation
Fixes #2385. Housing Benefit, Income Support, tax credit and Council Tax Reduction applicable income counted the family's own children's and young persons' income, tax, contributions and personal benefits too, an approximation each formula's comment called a follow-up. The law counts the claimant's and partner's alone: HB Regs 2006 reg 25(3) and IS Regs 1987 reg 23(2) say in terms that a child's or young person's income is not the claimant's; the tax credit income regulations (reg 3(1)) and every Council Tax Reduction scheme count the claimant or applicant and partner (SSI 2021/249 reg 36(2) says so in terms). The household head who applies alone for Council Tax Reduction keeps the treatment #2288 gave them. Tests: new YAML (three cases, each failing on main), a property test that a dependant's income never changes any of the seven income totals, and the Scottish CTR young-person tests updated to the rule. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MaxGhenis
added a commit
that referenced
this pull request
Oct 12, 2026
…ent's means tests Review round 1 of #2299: a young person who qualifies through reg. 7 and works 24 hours stays a young person, so their earnings must not enter the parent's Housing Benefit, Income Support or Council Tax Reduction income. #2387, merged in here, makes that so; Case 11 now has £20,000 of earnings and asserts the three applicable incomes are nil. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MaxGhenis
added a commit
that referenced
this pull request
Oct 12, 2026
This was referenced Oct 12, 2026
Draft
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #2385
Summary
Housing Benefit, Income Support, tax credit and Council Tax Reduction applicable income counted the family's own children's and young persons' income, and subtracted their tax, National Insurance and pension contributions. Each formula's comment said the law counts only the claimant's and partner's, and that "dropping dependants' own income is a follow-up". This PR does that.
On
main(e01f2f5), 2026-27, England, a lone parent with a 17-year-old at school who earns £8,000 (YAML Case 1):mainhousing_benefit_applicable_incomeincome_support_applicable_incometax_credits_applicable_incomecouncil_tax_reduction_applicable_incomeIt is needed by #2299 (Child Benefit routes for young people who have left education), whose review ran a working 18-year-old school-leaver: once rightly a young person, their £20,000 of earnings entered the parent's Housing Benefit, Income Support and Council Tax Reduction means tests.
The law
Change
The four formulas' member mask is now
is_claimant_or_partner, where it was that or the programme's own child or young person. That covers the income components, the personal benefits, tax, National Insurance and pension contributions they add up. Unchanged: who is a child or young person, the allowances for them, and the benefit-unit awards these formulas add (Child Benefit, Income Support, the claimant-or-partner JSA and ESA, Universal Credit, tax credits). Council Tax Reduction keeps the household head who applies alone as #2288 left them: counted when they are a Child Benefit young person. Counting every such applicant is #2078's change, which overlaps this reader.Invariants
Tests
test_means_test_income_properties.py: newtest_income_of_children_and_young_persons_never_counts(invariant 1), on generated families with a child under 16 or a young person at school, each with up to £50,000 of earnings, pension and savings income, with every family on and off Universal Credit, across all seven income totals. It first checks that the dependant is each legacy programme's own child or young person, so the property cannot pass by excluding them. The existing outside-member property (invariant 3) is unchanged.means_tests_young_person_income.yaml, three cases hand-computed (2026-27), each failing onmain:main£26,514)council_tax_reduction_young_person.yamlCases 2 and 3 counted the young person's £2,000 of earnings (£3,406.60); they now give Child Benefit alone, £1,406.60.test_council_tax_reduction_young_person_properties.pyinvariant 6: a non-applicant young person's earnings never count; the applicant's always do.Mutation checks at fafd220, each applied alone in a copy of the branch (
mutation/prG2.txt):Run locally at fafd220:
policyengine-core teston the 103 YAML files that mention Housing Benefit, Income Support, tax credits or Council Tax Reduction (the new one included): 1,140 passed. Before the two changed CTR expectations, those 2 cases were the only failures.pyteston the 18 Python test files that read the four totals: 105 passed.maine01f2f5: all 3 cases fail (HB applicable income £8,000, £11,700 and £26,514 against £0, £3,700 and £18,514).ruff format --checkandruff checkonpolicyengine_uk: clean.The full suites run in CI.
Microsimulation impact
Real runs on Enhanced FRS 2024-25 (uk-data 1.58.0, sha256
5ba399ea5ab9a6c7),maine01f2f5 against this branch at fafd220, one run each for 2024-25 to 2030-31, exact comparison of every record (impact/prG2/in the session folder).Household incomes change only in 2024-25, for 2 records (343 weighted households), +£42,197 in working tax credit (mean £123). No household loses, and no Housing Benefit, Income Support, Council Tax Reduction, Universal Credit or Pension Credit award changes in any year: few families in the data have a dependant with income of their own, and those that do are not on these benefits.
The applicable incomes move (£ million a year; records that differ in brackets):
tax_credits_applicable_incomehousing_benefit_applicable_incomeincome_support_applicable_incomecouncil_tax_reduction_applicable_incomeTax credits count investment income at step one, so children's savings and the like drop out there in many more records than in the other three. In the other three, the change can be upward: where a dependant paid income tax on income those formulas never counted,
mainsubtracted the tax from the family's income. In 2030-31 each such rise equals the dependant's own income tax (£337.18, £110.64, £484.63, £2,199.95), and the one fall is a 19-year-old's own social security income of £4,880.24 (impact/prG2/dependants_2030.txt).Reproducer: policyengine_uk/tests/test_means_test_income_properties.py::test_income_of_children_and_young_persons_never_counts
axiom: SI 2012/2885 Sch 1 para 11 encoded-correct (
uk/regulations/uksi/2012/2885/schedule/1/paragraph/11.yaml, companion testhousehold_member_is_not_treated_without_polygamous_marriage); HB Regs 2006 reg 25, HB (SPC) Regs 2006 reg 23, IS Regs 1987 reg 23, SI 2002/2006 reg 3, WSI 2013/3029 Sch 1 para 5, SSI 2012/319 reg 21 and SSI 2021/249 reg 36 TheAxiomFoundation/rulespec-uk#463 queued (blocker stated there: no module cites the rows, and a billed encoder run needs approval)🤖 Generated with Claude Code