Skip to content

Charge in-unit non-dependants in the local Council Tax Reduction schemes, and exclude a lodger personally only outside the head's family - #2077

Open
MaxGhenis wants to merge 13 commits into
mainfrom
local-ctr-in-unit-non-deps
Open

MaxGhenis wants to merge 13 commits into
mainfrom
local-ctr-in-unit-non-deps

Conversation

@MaxGhenis

@MaxGhenis MaxGhenis commented Oct 2, 2026 •

Copy link
Copy Markdown
Collaborator

Fixes #2014

#2017, which landed through #2010, charges non-dependants inside the claimant's own benefit unit in UC, HB and the national CTR schemes, and keeps the five English working-age local schemes on their old aggregation behind a mask. This PR brings those schemes (Merton, Kingston upon Thames, Newham, Westminster, Oxford) into line with the law and with #2017's national variable. It also narrows who the shared eligibility variable excludes personally, which touches the national schemes too.

Status

Head a5231bac0 corrects the local schemes' oracle on top of 0be31733c. That commit merges main at 0520d9646 and takes main's side of one comment in council_tax_reduction_prescribed_benefits.yaml, where both sides expect £270.40.

At 0be31733c, CI failed test_local_scheme_deductions_match_the_oracle on a Westminster household where a lodger lives with a young person aged 18 whom a local authority placed with them. The model charged the young person £270.40 a year and the oracle charged nothing. Para 9(2)(e) excludes only a person liable to pay the householder, and the young person pays nothing, so the model counts them as a non-dependant. a5231bac0 adds that case to the local oracle, matching the national oracle in the same file, and leaves the model unchanged.

The law

Each council's 2026-27 scheme reproduces the Default Scheme's (SI 2012/2886) definitions:

  • Merton, Kingston upon Thames and Newham: paras 4, 6 and 9 and the working-age deduction paragraph (30, 30A, 30B).
  • Westminster's summary says "The Council Tax Reduction Schemes (Default Scheme) Regulations 2012 form the basis of Westminster's local working age reduction scheme", and its Appendix A gives the 2026-27 scale. It publishes nothing else on non-dependants.
  • Oxford: paras 42-47 and the Annex 1 glossary.

What follows from the texts:

  • Who is a non-dependant (para 9). Anyone who normally resides with the applicant, except a member of the applicant's family (para 6), a person jointly and severally liable with the applicant (9(2)(d)), a person liable to pay the applicant on a commercial basis (9(2)(e)) and a charity-engaged carer. Para 9(3)(a) brings back as a non-dependant someone who pays "a close relative of his or his partner", or pays under an agreement "other than on a commercial basis". So an adult in the applicant's own benefit unit who is not the partner, a child or a qualifying young person is a non-dependant, and so is each adult in another family.
  • Banding (para 30(1)-(2), para 10). A non-dependant in remunerative work, on their own hours, is banded on their normal gross weekly income. For a couple the income is joint (para 30(4); Oxford para 44).
  • Couples (para 30(3)). "Only one deduction is to be made ... in respect of a couple ... (other than where there is an award of universal credit)", the higher. Merton and Kingston upon Thames reproduce the exception. Newham's 30B(3) and Oxford's para 44 have none. Westminster follows the Default Scheme, so it keeps the exception (see Readings).
  • Joint occupiers (para 30(5)). A non-dependant of two or more liable persons is apportioned equally between them.
  • Exemptions (para 30(8)). No deduction for a non-dependant "who is on income support, state pension credit, an income-based jobseeker's allowance or an income-related employment and support allowance". Merton's, Kingston upon Thames's and Newham's texts add one "entitled to an award of universal credit where the award is calculated on the basis that the person does not have any earned income", and Westminster's Appendix A has "In receipt of universal credit with no earned income: nil". Oxford applies its exemptions to pensioner applicants only (para 47).

Changes

_legacy.py:

council_tax_reduction_individual_non_dep_deduction_eligible (shared with the national schemes) is (other family | in-unit) & ~personally excluded. The personal exclusions are:

  • a joint tenant (is_liable_for_household_rent) who is not their benefit unit's claimant or partner;
  • anyone outside the household head's family who pays the householder for their own board or lodging (9(2)(e)), even where the rest of their family pays nothing.

A member of the head's own family who pays board is taken to be a close relative (9(3)(a)(i)) and stays a non-dependant. The model has no relationship input, so a close relative in another family who pays is still treated as a commercial lodger. That gap is documented in the variable and is #2559. The raw is_household_head read is gone.

westminster_council_tax_reduction_non_dep_deductions deducts for each member of a non-dependant couple with Universal Credit, as the Default Scheme's para 30(3) does.

Review responses

Sol review r1 (REQUEST_CHANGES at 663a5b7):

  1. UC exemption interpretation. Read on each person's own earnings, as Fix HB and national CTR non-dependant deductions #2007 reads the same words for the national schemes and HB (Readings 1). One-earner couple cases pin it in Merton (each member deducted: the worker's £13.30, the partner nil) and Newham (one deduction: the worker's).
  2. Payment alone does not exclude. Fixed as above. Regression cases cover the England pensioner, Scottish, Welsh and Merton schemes: a son who pays his mother board stays her non-dependant. A further case covers a lodger's son who pays the householder himself, in Scotland. The relationship gap is Treat a close relative who pays board as a non-dependant (reg 9(3)(a)) once the model has a relationship input #2559.
  3. Integrate main. Done: Assess each Council Tax Reduction claim under its own family's scheme and exemption #2015's per-applicant exemption, Count only the claimant's and partner's legacy awards in means tests and passports #2027's payee predicates and Means-test the Council Tax Reduction applicant and partner, not the benefit unit's claimant #2078's applicant identity are all kept (resolutions below). The oracle's household exemption is now per applicant.
  4. Westminster UC couple. Westminster's summary names the Default Scheme as its basis and is silent on couples. The Default Scheme's para 30(3) keeps the UC exception, so Westminster now deducts for each member (Readings 2). A YAML case pins it: £15.95 + £5.20 a week.
  5. Conservation. The joint-liability share follows the regulations' per-person wording (main's documented reading), so shares need not sum to one: a couple jointly liable with a lone sharer leaves the partner's third unborne, for the liability and the deduction alike. The invariant is restated that way, and property 5 asserts it. In every household with no exempt applicant, the claiming families bear the pool times the sum of their shares, which is the whole pool, each non-dependant once, wherever the shares sum to one.
  6. Main-versus-head impact. Two certified-data runs (below).

Maintainer review (vahid-ahmadi, 5 Oct):

  1. Rebase: done (merges above).
  2. Count only the claimant's and partner's legacy awards in means tests and passports #2027: is_on_* for IS, JSA and ESA, and is_on_pension_credit for State Pension Credit, because para 30(8)(a) uses one "who is on" for all four (Readings 3). Count only the claimant's and partner's legacy awards in means tests and passports #2027's Merton case ("A non-dependant couple on ESA with a working partner pays the partner's deduction on their joint income") is on main and passes here.
  3. Grandmother cases: both the pool and eligibility now key on the CTR applicant.
  4. Eligibility keeps (other_family | in_unit) & ~personally_excluded, with Assess each Council Tax Reduction claim under its own family's scheme and exemption #2015's claimant-family test inside other_family.
  5. The changelog now names the national change. The survey household counts are gone from the body.
  6. Close relatives who pay board: handled where the data allow, otherwise documented, and the follow-up issue is Treat a close relative who pays board as a non-dependant (reg 9(3)(a)) once the model has a relationship input #2559.

Max's comment (6 Oct, resolved head): no formula here reads is_household_head.

Readings

  1. UC exemption, own earnings. "The person does not have any earned income" is tested on the person's own earnings. Both joint claimants are entitled to the award. This is Fix HB and national CTR non-dependant deductions #2007's reading for the national schemes and HB, so one meaning holds across schemes. It binds only for a non-dependant UC couple where exactly one member earns.
  2. Westminster, the Default Scheme's para 30(3) exception. The scheme's stated basis governs where its own published text is silent. Recheck if Westminster's full scheme text is obtained.
  3. "On" State Pension Credit means payable to them, as for the other three benefits in the same limb (Fix HB and national CTR non-dependant deductions #2007 reads PC by payee too).
  4. Close-relative presumption for a board-payer in the household head's own benefit unit (data approximation, Treat a close relative who pays board as a non-dependant (reg 9(3)(a)) once the model has a relationship input #2559).

Invariants

For every input:

  1. Oracle (property 5). Each council's individual and family deductions equal an independent calculation from its 2026-27 scale and the generated structure. Every other council's variables are zero. Who claims and each claim's share are derived from the structure and asserted against the model. Who is on each award is read from the model.
  2. Conservation (property 5). Without an exempt applicant, a household's claiming families bear its pool times the sum of their shares. That is the whole pool, each non-dependant once, wherever the shares sum to one.
  3. Independence (property 6). The earnings of an adult who is not a claimant or partner change no one else's deduction.
  4. No self-charge. A claiming family is never charged for its own applicant, partner or children (Charge non-dependant deductions within the claimant's benefit unit #2017's eligibility property and the oracle's own-family subtraction).
  5. National properties 1-4 (Charge non-dependant deductions within the claimant's benefit unit #2017) still hold with the narrowed exclusions.

Tests

These local runs predate 0be31733c, and CI runs the full suite at the head.

  • YAML, every file that touches CTR or non-dependants (64 files): 874 passed, 0 failed (policyengine-core test, single process). This includes local_scheme_non_dependants.yaml (25 cases, every expectation hand-computed from the scheme text). benefit_unit_non_dependants.yaml gains 5 cases, and the renamed Newham case replaces Charge non-dependant deductions within the claimant's benefit unit #2017's mask-pinning one.
  • The changes bind. Against a git archive export of the parent (Charge non-dependant deductions within the claimant's benefit unit #2017 at 3efa8bd60 merged with main, 7ba613fb9), 21 of this head's cases in the three PR YAML files fail, including all three reproducers. The national close-relative cases pass there too. They guard against the previous head's wholesale lodger exclusion.
  • Property tests (-n 4): the four core files, test_benefit_unit_non_dependant_properties.py (including local properties 5-6), test_household_head_agreement_properties.py, test_non_dependant_deduction_properties.py and test_council_tax_reduction_claimant_family_scheme_properties.py: 17 passed. A second batch of eight CTR property files (applicant, claimant, legacy award readers, sharers/boarders/lodgers, young person, Child Benefit, UC non-dependant Pension Credit, prescribed benefits): 45 passed. That makes 62 of 62.
  • Lint: uvx ruff@latest (0.17.1, CI's unpinned version): format --check ., check . and check --select F811,F821 policyengine_uk are all clean.

Impact

The Aggregate impact check (run 42645033702) compares main at d51471bf7 with main plus a5231bac0, on the certified enhanced_frs_2024_25.h5 (policyengine-uk-data 1.58.1). In every fiscal year from 2025-26 to 2031-32, no household's net income or reported aggregate changes, no check breaks and the run flags no move. The sign:vat check fails on both sides.

The local-scheme, Westminster and eligibility changes alter household calculations in the five councils, and for board-payers outside the head's family and joint tenants that a user enters as inputs.

Axiom

axiom: TheAxiomFoundation/rulespec-uk#426 queued. The Kingston upon Thames, Merton and Newham modules derive each non-dependant's deduction from their own income and hours, which is encoded-correct given its inputs. They take who is a non-dependant, the exemption and the household total as inputs. Westminster defers Appendix A, and Oxford has no module.

Coordination

Reproducer: policyengine_uk/tests/policy/baseline/gov/local_authorities/council_tax_reduction/local_scheme_non_dependants.yaml::Merton charges the applicant's own non-dependant son for his own earnings
Reproducer: policyengine_uk/tests/policy/baseline/gov/local_authorities/council_tax_reduction/local_scheme_non_dependants.yaml::Westminster deducts for each member of a Universal Credit couple, as the Default Scheme does
Reproducer: policyengine_uk/tests/policy/baseline/finance/benefit/family/benefit_unit_non_dependants.yaml::CTR (Scotland), a lodger's adult son who pays the householder himself is not a non-dependant

🤖 Generated with Claude Code

MaxGhenis and others added 2 commits October 2, 2026 09:32
The five English working-age local schemes (Merton, Kingston upon Thames,
Newham, Westminster, Oxford) reproduce the Default Scheme's para 9: an adult
in the applicant's benefit unit who is not the claimant, partner, child or
young person is a non-dependant. local_non_dep_deductions now charges the
claiming family the household pool (claims x pool x share, as the national
variable), counting the higher of each non-dependant couple (each member in
Merton and Kingston where the couple has UC) and every other adult
separately. normal_gross_income_non_dep_deduction bands a claimant/partner
on the couple's joint income and anyone else on their own, uses each
person's own hours, and gates the IS/JSA/ESA/PC/UC exemptions to the
award's claimant and partner.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ncil's scale

Hypothesis properties 6 and 7: each council's individual and family
deductions equal an independent calculation from its 2026-27 scale, and an
adult who is not a claimant or partner changes no one else's deduction
through their earnings (both fail on the previous aggregation). A Merton case
for a 19-year-old who has left education, and #2017's Newham case now
apportions the head's own son between the jointly liable families (para
30(5)).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…amily

Review r1 of #2077: an in-unit adult who personally pays the householder as a
boarder or lodger, or is personally liable for the rent, was still a
non-dependant, and a household head whom the inference left outside his
benefit unit's couple was charged as his own non-dependant. The household
head (the person liable for the council tax), anyone liable for the
household's rent and anyone paying rent as a boarder or lodger is now nobody's
non-dependant, in the national and local schemes alike. Property 6's oracle
now derives who claims and each claim's share from the generated structure
and checks the model's against them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

@vahid-ahmadi vahid-ahmadi left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks Max. The rules applied match each scheme:

  • Who is a non-dependant: charging in-unit adults follows para 9 ("any person ... who normally resides with an applicant", except "any member of the applicant's family").
  • Couples: one deduction, the higher, on joint income follows para 30(3)-(4).
  • Joint liability: the apportionment follows para 30(5).
  • Merton and Kingston: the per-member UC deduction matches the Default Scheme's own "(other than where there is an award of universal credit)".

Verified at 663a5b7:

  • Tests: the local_authorities YAML passes 67/67, benefit_unit_non_dependants 28/28 and properties 6/6.
  • Probe for Newham, 2026:
    • The household: a grandmother aged 55 applies alone. A 19-year-old couple live with her as another family; the father earns £30,000 and works 37.5 hours.
    • The deduction is £1,175.72 (£22.61 × 52 on joint income of £576.92 a week). The mother's own deduction, £392.08, is the lower, so it is not taken.
    • CTR is £84.28.
  1. Blocking: needs a rebase. #2017 conflicts with main in 6 files, and this PR adds a seventh, _legacy.py (from #2009, merged 4 Oct). This is the same standard as #2015 and #2078. #2030 is also stacked on #2017.
  2. Should fix: #2027 is missing from Coordination, and the conflict at _legacy.py:175-179 changes amounts.
    • The case: Merton, a non-dependant couple. One reports £5,000 of income-related ESA; the other works 20 hours on £15,000.
    • Here: no deduction, CTR £1,800.
    • With #2027's is_on_*: £551.20 deducted, CTR £1,248.80.
    • Default Scheme para 2(4) ("payable to him") with para 30(3) supports #2027.
    • Take #2027's is_on_* there, keep your claimant-or-partner gate on the Pension Credit (:179) and UC limbs, and add the case.
  3. Should fix: this does not fix the #2078 grandmother cases.
    • Both own_family_member (_legacy.py:114) and in_unit (council_tax_reduction_individual_non_dep_deduction_eligible.py:40) key on is_claimant_or_partner.
    • So when the head applies alone and the inference makes the 19-year-olds the unit's couple, they count as neither her family nor her non-dependants.
    • Put my probe household in one benefit unit and this PR gives a £0 deduction. Under paras 6 and 9 it should be £1,175.72, giving CTR of £84.28.
    • Whichever PR lands second should key both on is_council_tax_reduction_applicant_or_partner from #2015/#2078.
    • #2078's Newham and Kingston grandmother cases also need explicit inputs:
      • set the young father's weekly_hours, so the hours band applies;
      • set current_education for the 19-year-olds, who otherwise default to tertiary education and fall under the full-time student exemption (para 30(7)(c)).
      • Without these, those cases give a £0 deduction whatever the non-dependant logic does.
  4. Should fix: the agreed #2015 resolution covers _legacy.py but not the eligibility file.
    • #2015 rewrites that test as ~claimant_benunit & ~benunit_is_rent_liable, which drops in_unit.
    • Keep (other_family | in_unit) & ~personally_excluded, and put #2015's claimant-benefit-unit test inside other_family.
  5. Should fix: the review-1 fix changes council_tax_reduction_individual_non_dep_deduction_eligible, which the national schemes share. That is the body's −£3.4bn on the intermediate.
    • Say so in the title and changelog: changelog.d/2014-local.fixed.md mentions only the local schemes.
    • Also remove the survey household counts ("135 survey households", "134", "54").
  6. Nit: close relatives who pay board are non-dependants.
    • Para 9(3)(a)(i) makes someone who pays a close relative a non-dependant again: "that person is a close relative of his or his partner".
    • council_tax_reduction_individual_non_dep_deduction_eligible.py:47-51 excludes every boarder and lodger, for example an adult son paying his mother board. Main does the same through in_other_non_liable_family.
    • There is no relationship input, so document the gap in the variable and open a follow-up issue.

@MaxGhenis

Copy link
Copy Markdown
Collaborator Author

#2062 is now on main (merge commit c4659aa). main has one resolved household head: is_resolved_household_head (Person: the eldest member the is_household_head input flags, else the eldest member) and benunit_contains_household_head (BenUnit, defined from it). No formula outside is_resolved_household_head reads is_household_head, and test_only_the_resolved_head_reads_the_flag in policyengine_uk/tests/test_household_head_agreement_properties.py enforces that.

This PR still adds formulas that read the raw flag:

  • policyengine_uk/variables/gov/local_authorities/council_tax_reduction/council_tax_reduction_individual_non_dep_deduction_eligible.py: person("is_household_head", period)

Each needs to read the resolved head instead:

  • family level: benunit.any(person("is_household_head", period)) becomes benunit("benunit_contains_household_head", period), and person.benunit.any(person("is_household_head", period)) becomes person.benunit("benunit_contains_household_head", period);
  • person level, only where the formula needs the head as a person: person("is_household_head", period) becomes person("is_resolved_household_head", period).

test_only_the_resolved_head_reads_the_flag fails until every such read is moved. Please also add each variable you move to OUTPUTS in that test file, so its metamorphic test (flags matter only through the resolved head) computes it. Test inputs that set is_household_head are fine as they are.

@MaxGhenis

Copy link
Copy Markdown
Collaborator Author

Cross-reference from #2027 (a maintainer review there, 5 October, raised this household).

#2027 (head 360aef868) changes _legacy.py's non-dependant exemption for Income Support, income-based JSA and income-related ESA from the benefit unit's totals to is_on_income_support / is_on_income_based_jsa / is_on_income_related_esa. A person is on the award when it is payable to them (Default Scheme Sch para 2(3)-(4)); of a couple, only the payee is.

The household: Merton, a non-dependant couple. One reports £5,000 of income-related ESA; the other works 20 hours on £15,000.

The resolution the reviewer proposed: when this PR merges main after #2027, read is_on_* for the IS, JSA and ESA limbs, and keep this PR's claimant-or-partner gate on the Pension Credit and UC limbs. The conflict will be at _legacy.py around the income_based_benefit block.

@MaxGhenis

MaxGhenis commented Oct 12, 2026 •

Copy link
Copy Markdown
Collaborator Author

Independent review (GPT-6.1 Sol, UK hub sweep, 2026-10-12): REQUEST_CHANGES at 663a5b733. Blockers 1 and 4 are local-scheme readings the texts leave open; they're queued for Max as d1398. This PR has no live owner session. The hub defers it until #2007 lands (same non-dependant code), then adopts it as a Subfleet build with Max's ruling.

VERDICT: REQUEST_CHANGES
Head reviewed: 663a5b7

  1. [blocker] Resolve the UC exemption interpretation. _legacy.py:184 uses the couple’s combined earnings for both members’ exemptions. Merton paragraph 30(8)(c) refers to the person’s earnings within an award-calculation condition. The PR body explicitly acknowledges the competing personal-income reading. Fix: obtain Max’s methodology decision, reconcile it with Fix HB and national CTR non-dependant deductions #2007, and pin the chosen treatment with one-earner couple tests.

  2. [blocker] Payment alone does not exclude a non-dependant. council_tax_reduction_individual_non_dep_deduction_eligible.py:50 excludes everyone reporting boarder or lodger payments. However, Merton paragraph 9(3)(a) retains non-dependant status when the payment recipient is a close relative or the agreement is noncommercial. Fix: apply those exceptions explicitly, or obtain Max’s decision on the missing relationship information. Add regression coverage across the national and devolved schemes because this eligibility variable is shared.

  3. [blocker] Integrate current main’s overlapping corrections. The three-reference merge-tree reports conflicts in both changed production files against main 3f174d07ec03a9d05ca626939442442ddc23c87e. _legacy.py:169 still references the household exemption deleted by merged Assess each Council Tax Reduction claim under its own family's scheme and exemption #2015; its aggregation lacks main’s per-applicant exemption guard. It also retains couple-wide legacy-benefit receipt, while eligibility:48 newly reads the raw household-head flag. Fix: rebase while preserving main’s claimant-specific scheme/exemption, individual payee predicates, and resolved-head semantics. Update the oracle’s household exemption:608 accordingly.

  4. [blocker] Westminster’s UC couple rule lacks decisive support. The new oracle:473 assumes one deduction for a UC couple. Westminster’s published summary identifies the Default Scheme as its basis but does not specify this departure; Default Scheme paragraph 30(3) contains a UC exception. Fix: establish the operative Westminster provision and obtain Max’s decision before asserting that no exception applies.

  5. [should-fix] The oracle does not establish the claimed conservation. test_benefit_unit_non_dependant_properties.py:703 counts every liable person but assigns one share per benefit unit. A claimant couple plus a lone sharer produces shares [1/3, 1/3]: a £691.60 deduction becomes £461.07 across the claims. Fix: reconcile the partner treatment with each council’s provisions, including Oxford paragraphs 41 and 45, then add an explicit conservation assertion or qualify the PR’s invariant.

  6. [should-fix] Supply a main-versus-final-head impact run. For the changes at _legacy.py:84, the impact section reports real enhanced-FRS runs, but compares stacked parent 270412d with intermediate head 570f163, followed by a separate revision comparison. Fix: after integration, provide current-main versus final-head Microsimulation results, full SHAs, dataset identity/checksum, and reproducible commands and outputs.

Validation: 51 focused YAML cases passed serially after checking compressor usage below 30 GB. Python property tests could not collect because Hypothesis was unavailable; xdist was also unavailable. Ruff lint and formatting checks passed. No tests were weakened, skipped or xfailed by this PR, and no protected infrastructure files changed. Both requested gh reads failed to connect; the PR body and file list were retrieved through the browser.

@MaxGhenis MaxGhenis added the ci-recheck Re-triggers Fix evidence without changing the PR (UK hub, 2026-10-12) label Oct 12, 2026
@MaxGhenis

Copy link
Copy Markdown
Collaborator Author

Parent update: in-unit-non-dep-deductions (#2017) moved to 7f9ef1a by a merge, not a force-push. It now merges main and #2007 (hb-ctr-non-dep-exemptions at 0b6c3db), and #2017's base is #2007's branch; it is no longer stacked on #2010. To bring this PR up to date, git merge origin/in-unit-non-dep-deductions.

What changed under you:

@MaxGhenis

Copy link
Copy Markdown
Collaborator Author

UK hub takeover for the Budget fix sprint (Max, 21 Oct). The owner session local_300ba566 has been idle since mid-October. The hub woke it on 21 Oct at 23:58Z, and it did not start. To land this before the Budget model locks (the first pe-uk release cut by about 12:00Z Thu 22 Oct), the hub has taken it over as build 20261021-211255-sprint-2077, which merges main, re-tests, pushes as a fast-forward and marks it ready. The hub then reviews it and lands it through the merge queue.

If the owner session wakes, please don't push to this branch; comment here instead, so there's only one writer.

🤖 Generated with Claude Code

MaxGhenis and others added 5 commits October 22, 2026 01:28
…ain's per-applicant exemption

Resolutions in the PR's hand-off. The local schemes now take the shape of
#2017's national aggregator (deduction_per_family over the CTR applicant's
in-unit set), main's is_on_* payee tests for every para 30(8)(a) benefit,
and the person's own earnings for the Universal Credit limb.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…gs, and #2017's head-alone couple

Para 30(8)(c) of each local scheme exempts a non-dependant entitled to
Universal Credit "calculated on the basis that the person does not have any
earned income". The merge reads it on the person's own earnings, as #2007's
national schemes read the same words, so the non-earning member of a UC
couple is exempt: Merton's couple pays 691.60, not 962 (CTR 1,108.40), and
Newham's partner's own deduction is nil (the couple's one deduction, the
worker's, is unchanged).

Main's IIDB case for a grandmother who applies alone noted that the model
charged nothing for the couple in her benefit unit until #2017. With #2017
they are her non-dependants: one deduction, the lowest (5.20 a week), so
council_tax_benefit is 1,195.968.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… outside the head's family

Reg 9(2)(d)-(e) exclude the person, but reg 9(3)(a) keeps as a non-dependant
anyone who pays a close relative of the applicant or partner, or pays on a
non-commercial basis. The model has no relationship input, so a member of the
household head's own family who pays board is taken to be a close relative
and stays a non-dependant; anyone else who pays the householder is excluded
(Sol review r1 finding 2, maintainer point 6). The gap for a close relative
in another family is documented in the variable.

The household head and anyone liable for the rent are no longer excluded
wholesale: #2017's in-unit set is built on the CTR applicant, so an applicant
is never in it, and is_liable_for_household_rent marks the young couple of a
grandmother who applies alone as liable, which wrongly excluded them
(maintainer point 3). A joint tenant who is not their unit's claimant or
partner (an input) is still excluded. A student head whose family cannot
claim stays the co-tenant's non-dependant, as main's case has it. No raw
is_household_head read remains.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…s the Default Scheme does

Westminster publishes only a summary of its working-age scheme, which states
that the Council Tax Reduction Schemes (Default Scheme) (England) Regulations
2012 form its basis, and the Appendix A scale. The Default Scheme's para 30(3)
makes one deduction for a couple "(other than where there is an award of
universal credit)", as Merton's and Kingston upon Thames's full texts do.
With no Westminster provision departing from it, the model follows the
Default Scheme (Sol review r1 finding 4, d1398 part 2, logged in RULINGS.md).

A YAML case pins it: a UC couple, one earning £30,000 at 37.5 hours and one
£2,600 at 10 hours, pays £15.95 + £5.20 a week (1,099.80 a year). The
property oracle's Westminster entry follows.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MaxGhenis and others added 3 commits October 22, 2026 02:13
…e changelog

Sol review r1 finding 2 asked for regression coverage across the national
and devolved schemes, since the eligibility variable is shared. A son in his
mother's benefit unit who pays her board stays her non-dependant in
England's pensioner scheme (270.40), Scotland's (288.60), Wales's (348.40)
and Merton's (691.60 on his own earnings); a lodger's son who pays the
householder himself is excluded in Scotland. The relationship gap is #2559.

The changelog now says what changes in the national schemes too
(maintainer point 5): who is excluded for paying board or as a joint tenant.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…endants are charged

Each case said it was provisional until #2017: the 19-year-old parents are
the grandmother's non-dependants, but the model charged none in her benefit
unit. They passed only because the couple defaulted to tertiary education,
so the full-time student exemption applied (maintainer review point 3). The
couple are now not in education, and the Newham father works 37.5 hours:

- England pensioner (JSA): the payee is exempt, the other pays the lowest
  amount, 270.40, so the reduction is 489.20, not 759.60.
- Newham (UC): one deduction, the father's 22.61 a week on £576.92
  (1,175.72); the mother has no earned income of her own, so is exempt.
  The reduction is 84.28, as the maintainer's probe gave.
- Kingston upon Thames (UC): both on UC with no earned income, so both are
  exempt; the reduction is unchanged at 1,627.32.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Para 2(3)-(4) define being on income-based JSA and income-related ESA as the
award being payable to the person, and para 2(1) a person on Income Support
as one in receipt of it; State Pension Credit has no definition, so the
model reads it the same way. Comment only.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@MaxGhenis MaxGhenis changed the title Charge in-unit non-dependants in the local Council Tax Reduction schemes Charge in-unit non-dependants in the local Council Tax Reduction schemes, and exclude a lodger personally only outside the head's family Oct 22, 2026
@MaxGhenis

Copy link
Copy Markdown
Collaborator Author

UK hub build sprint-2077b: hand-off at cf0475ddb

The branch is a fast-forward of 663a5b733: same author, no force-push. The base is still #2017 (in-unit-non-dep-deductions), which sits on #2007.

Tests (local, locked venv):

  • YAML: all 64 files that touch CTR or non-dependants pass, 874 of 874, at the final model code. Against the parent (Charge non-dependant deductions within the claimant's benefit unit #2017 merged with main, 7ba613fb9), 21 of this head's cases fail, including all three reproducers.
  • Property tests (-n 4): 62 of 62 pass. That's the four core non-dependant files (17), with the ported local properties 5-6 and the new conservation assertion, plus eight further CTR property files (45).
  • uvx ruff@latest (0.17.1) format and check are clean. .github/check_fix_pr.py, run locally on the diff against main, passes with 23 changed tests.

Impact (Aggregate impact workflow, certified enhanced FRS, dispatched because this base gets no PR CI):

Open items:

🤖 Generated with Claude Code

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@MaxGhenis
MaxGhenis changed the base branch from in-unit-non-dep-deductions to main November 9, 2026 12:45
@github-actions

github-actions Bot commented Nov 9, 2026 •

Copy link
Copy Markdown
Contributor

Aggregate impact on certified data: pass

Base d51471bf78 against head 199b05e6ba, both on enhanced_frs_2024_25.h5 (policyengine-uk-data 1.58.1, sha256 056e80fd8e91), fiscal years 2025-26 to 2031-32. Each year is a full microsimulation run on each side.

Checks: 0 broken by this change, 1 failing on both sides, 0 fixed. Moves flagged for review: 0 (thresholds in report_spec.yaml; a flag does not fail the job).

Workflow run and full report

Notes

  • In the years a figure from fewer than 10 records is suppressed (spending.disabled_students_allowance), every total containing it, and the decile incomes, are rebuilt from their other components, so no published total includes it. Those totals are marked †. A change is withheld where the two sides leave out different figures and can't be lined up.

Moves flagged for review

None.

Spending by benefit and service

Measure 2025-26 2026-27 2027-28 2028-29 2029-30 2030-31 2031-32
Disabled Students' Allowance suppressed suppressed suppressed suppressed suppressed suppressed suppressed

Caseloads

Measure 2025-26 2026-27 2027-28 2028-29 2029-30 2030-31 2031-32
Disabled Students' Allowance suppressed suppressed suppressed suppressed suppressed suppressed suppressed

Household net income by decile

No household's net income changes in any year.

No change in any year: receipts by tax head; government balance, each component counted once; model totals; household income totals; population; poverty rates; people in poverty; inequality; mean household net income in each side's own deciles; standard reform costings (change in gov_balance); standard reforms: change in each reform's target.

Checks failing on both base and head (1)
  • VAT excluding private school fees is never negative (sign:vat): 2025-26: 76 units below zero, a weighted £-52,314,332 in total; 2026-27: 76 units below zero, a weighted £-54,150,722 in total; 2027-28: 76 units below zero, a weighted £-56,043,426 in total
Counted-once check

The check raised each of 92 components by £1 per unit in 2026-27 and read every head of its totals 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 response that is not finite breaks every rule. The check measures a head that breaks a rule twice more: once holding every other head at its baseline value, and once holding every other head at its value after the first £1 while the component rises again. The head fails where either measurement still shows the response. The check cannot hold a head at a value that is not finite. In each unit where another head is not finite after the first £1, it holds that head at its baseline value, and the second measurement judges no household the unit belongs to. There a head fails wherever it first broke a rule, or wherever the check could not confirm whether its response contains the component. 0 failed and the check skipped 0.

  • widowed_parents_allowance: pension_credit responds only through other heads in fewer than 10 households (other heads that moved there: carers_allowance; gov_spending; not a failure)
  • widowed_parents_allowance: pension_credit responds only through other heads in fewer than 10 households (other heads that moved there: carers_allowance; household_benefits; not a failure)
Provenance
Side Commit Runtime Environment hash Partition hash Time
base main d51471bf78 uk 2.177.0 (files 1950636ea82e), core 3.34.1, py 3.13.18 aarch64 7ca1f561adbf 3bcfb3473960 2481.23s
head #2077 merged into main 199b05e6ba uk 2.177.0 (files ea844f4c66f5), core 3.34.1, py 3.13.18 aarch64 7ca1f561adbf 3bcfb3473960 2532.1s

Dataset: hf://policyengine/policyengine-uk-data-private/enhanced_frs_2024_25.h5@2526edbbb687a3b54dbb11272e5389e4b62d2ac2, sha256 056e80fd8e9151d78f432a25cde863340baee81304c6216a37fb575ce8563784 (verified on both sides), policyengine-uk-data 1.58.1.

Receipts by tax head: head levels
Measure (head) 2025-26 2026-27 2027-28 2028-29 2029-30 2030-31 2031-32
Final charge on cash interest in non-cash ISAs £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
Lifetime ISA withdrawal charge £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
Income tax £294.46bn £315.23bn £335.82bn £351.28bn £366.96bn £385.36bn £399.99bn
National Insurance (employee and self-employed) £51.70bn £54.14bn £56.13bn £57.73bn £59.76bn £61.64bn £63.51bn
National Insurance (employer) £148.71bn £155.37bn £160.88bn £165.09bn £172.06bn £177.36bn £182.57bn
Employer NI change borne by capital £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
Employer NI change borne by consumers £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
Capital gains tax £12.60bn £13.15bn £13.60bn £14.11bn £14.67bn £15.24bn £15.80bn
Student loan repayments £7.82bn £8.13bn £8.39bn £8.58bn £8.79bn £9.04bn £9.29bn
VAT excluding private school fees £242.22bn £249.47bn £258.67bn £264.86bn £270.95bn £277.04bn £283.21bn
Change in VAT from its baseline £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
VAT on private school fees £1.95bn £2.01bn £2.09bn £2.14bn £2.20bn £2.26bn £2.31bn
Change in private school VAT from its baseline £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
Fuel duties £24.71bn £24.13bn £26.00bn £26.83bn £26.51bn £25.78bn £24.63bn
Alcohol duties £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
Tobacco duties £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
Vehicle excise duties £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
Betting and gaming duties £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
TV licence fee £4.26bn £4.40bn £4.41bn £4.42bn £4.43bn £4.44bn £4.45bn
Council tax £49.21bn £52.16bn £54.89bn £57.95bn £61.16bn £64.47bn £67.91bn
High value council tax surcharge £0.00bn £0.00bn £0.00bn £0.48bn £0.49bn £0.50bn £0.51bn
Northern Ireland domestic rates £0.55bn £0.58bn £0.60bn £0.63bn £0.66bn £0.69bn £0.72bn
Business rates £34.68bn £36.20bn £38.00bn £39.46bn £42.27bn £43.25bn £44.29bn
Stamp duty land tax on the household's own purchases £6.88bn £7.32bn £7.66bn £8.06bn £8.47bn £8.91bn £9.35bn
Stamp duty land tax paid by companies £4.72bn £4.57bn £5.29bn £6.03bn £6.37bn £6.92bn £7.45bn
Land transaction tax (Wales) £0.07bn £0.08bn £0.08bn £0.09bn £0.10bn £0.10bn £0.11bn
Land and buildings transaction tax (Scotland) £0.31bn £0.32bn £0.33bn £0.35bn £0.36bn £0.38bn £0.40bn
Unspecified tax change borne by capital £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
Unspecified tax change borne by consumers £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
Wealth tax £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
Wealth tax excluding the main residence £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
Land value tax £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
Carbon tax £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
Spending by benefit and service: head levels
Measure (head) 2025-26 2026-27 2027-28 2028-29 2029-30 2030-31 2031-32
Lifetime ISA bonus £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
State Pension £121.68bn £125.92bn £126.72bn £129.48bn £132.98bn £136.65bn £140.41bn
Pension Credit £6.21bn £6.46bn £6.68bn £6.82bn £6.89bn £7.07bn £7.22bn
Winter Fuel Payment £1.86bn £1.85bn £1.79bn £1.77bn £1.78bn £1.78bn £1.78bn
Pension Age Winter Heating Payment (Scotland) £0.19bn £0.20bn £0.20bn £0.21bn £0.21bn £0.22bn £0.22bn
Universal Credit £75.70bn £81.81bn £84.29bn £86.34bn £87.51bn £89.06bn £89.70bn
Housing Benefit £8.57bn £8.52bn £8.85bn £9.06bn £9.29bn £9.57bn £9.84bn
Council Tax Reduction £2.19bn £2.32bn £2.44bn £2.58bn £2.72bn £2.87bn £3.02bn
Employment and Support Allowance (income-related) £0.79bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
Employment and Support Allowance (contribution-based) £5.20bn £5.37bn £5.56bn £5.69bn £5.82bn £5.95bn £6.09bn
Jobseeker's Allowance (income-based) £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
Jobseeker's Allowance (contribution-based) £0.29bn £0.30bn £0.31bn £0.31bn £0.32bn £0.33bn £0.34bn
Income Support £0.11bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
Working Tax Credit £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
Child Tax Credit £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
Incapacity Benefit £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
Personal Independence Payment £26.95bn £28.03bn £29.05bn £30.09bn £30.75bn £31.51bn £32.21bn
Disability Living Allowance £7.49bn £7.79bn £8.07bn £8.36bn £8.55bn £8.76bn £8.95bn
Attendance Allowance £8.68bn £9.03bn £9.36bn £9.69bn £9.90bn £10.15bn £10.38bn
Carer's Allowance £4.48bn £4.66bn £4.83bn £5.00bn £5.11bn £5.27bn £5.42bn
Carer Support Payment (Scotland) £0.31bn £0.32bn £0.33bn £0.34bn £0.35bn £0.36bn £0.37bn
Carer's Allowance Supplement (Scotland) £0.00bn £0.04bn £0.04bn £0.05bn £0.05bn £0.05bn £0.05bn
Severe Disablement Allowance £0.03bn £0.03bn £0.03bn £0.03bn £0.03bn £0.03bn £0.03bn
Industrial Injuries Disablement Benefit £0.50bn £0.52bn £0.54bn £0.55bn £0.56bn £0.58bn £0.59bn
Armed Forces Compensation Scheme £0.61bn £0.63bn £0.65bn £0.66bn £0.68bn £0.69bn £0.71bn
War Widow's or Widower's Pension £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
Child Benefit £16.19bn £16.82bn £17.39bn £18.00bn £18.39bn £18.84bn £19.25bn
Scottish Child Payment £0.49bn £0.52bn £0.53bn £0.55bn £0.56bn £0.57bn £0.56bn
Two Child Limit Payment (Scotland, counterfactual) £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
Healthy Start vouchers £0.05bn £0.05bn £0.05bn £0.05bn £0.05bn £0.05bn £0.05bn
Maternity Allowance £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
Statutory Maternity Pay £3.30bn £3.41bn £3.54bn £3.62bn £3.70bn £3.78bn £3.87bn
Statutory Paternity Pay £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
Statutory Sick Pay £1.12bn £1.16bn £1.20bn £1.23bn £1.26bn £1.29bn £1.32bn
Sure Start Maternity Grant £0.01bn £0.01bn £0.01bn £0.01bn £0.01bn £0.01bn £0.01bn
Bereavement Support Payment £0.67bn £0.69bn £0.71bn £0.73bn £0.75bn £0.76bn £0.78bn
Widowed Parent's Allowance £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
Tax-Free Childcare £0.56bn £0.57bn £0.57bn £0.58bn £0.60bn £0.61bn £0.59bn
Extended childcare entitlement £2.99bn £3.50bn £3.59bn £3.71bn £3.78bn £3.86bn £3.93bn
Universal childcare entitlement £2.06bn £2.22bn £2.29bn £2.37bn £2.43bn £2.48bn £2.53bn
Targeted childcare entitlement £0.50bn £0.51bn £0.52bn £0.54bn £0.55bn £0.57bn £0.56bn
Childcare Offer for Wales £0.26bn £0.28bn £0.28bn £0.29bn £0.30bn £0.31bn £0.32bn
Care to Learn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
Childcare Grant £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
Parents' Learning Allowance £0.20bn £0.20bn £0.20bn £0.20bn £0.20bn £0.20bn £0.20bn
Adult Dependants' Grant £0.06bn £0.06bn £0.04bn £0.04bn £0.04bn £0.04bn £0.04bn
Travel Grant £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
Disabled Students' Allowance suppressed suppressed suppressed suppressed suppressed suppressed suppressed
16 to 19 Bursary Fund £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
NHS spending £203.89bn £204.30bn £204.56bn £204.91bn £205.34bn £205.85bn £206.35bn
State education spending £0.02bn £0.02bn £0.02bn £0.02bn £0.02bn £0.02bn £0.02bn
Transport subsidy spending £25.05bn £25.10bn £25.14bn £25.18bn £25.23bn £25.30bn £25.36bn
Cost-of-living support payment £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
Energy Bills Rebate £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
Household Energy Payment £0.00bn £2.11bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
Energy Price Guarantee subsidy £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
Basic income £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
Disability basic income £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
Other public spending budget change £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
Caseloads: head levels
Measure (head) 2025-26 2026-27 2027-28 2028-29 2029-30 2030-31 2031-32
Lifetime ISA bonus 0k 0k 0k 0k 0k 0k 0k
State Pension 11,264k 11,145k 10,819k 10,700k 10,723k 10,750k 10,776k
Pension Credit 1,489k 1,484k 1,476k 1,454k 1,452k 1,457k 1,466k
Winter Fuel Payment 7,844k 7,783k 7,473k 7,375k 7,391k 7,409k 7,427k
Pension Age Winter Heating Payment (Scotland) 803k 802k 800k 797k 799k 801k 802k
Universal Credit 6,343k 6,419k 6,408k 6,369k 6,364k 6,343k 6,295k
Housing Benefit 1,249k 1,182k 1,181k 1,165k 1,164k 1,166k 1,168k
Council Tax Reduction 3,326k 3,344k 3,351k 3,364k 3,376k 3,388k 3,395k
Employment and Support Allowance (income-related) 71k 0k 0k 0k 0k 0k 0k
Employment and Support Allowance (contribution-based) 719k 720k 721k 722k 724k 726k 728k
Jobseeker's Allowance (income-based) 0k 0k 0k 0k 0k 0k 0k
Jobseeker's Allowance (contribution-based) 67k 67k 67k 67k 67k 68k 68k
Income Support 25k 0k 0k 0k 0k 0k 0k
Working Tax Credit 0k 0k 0k 0k 0k 0k 0k
Child Tax Credit 0k 0k 0k 0k 0k 0k 0k
Incapacity Benefit 0k 0k 0k 0k 0k 0k 0k
Personal Independence Payment 3,567k 3,575k 3,579k 3,585k 3,593k 3,602k 3,611k
Disability Living Allowance 1,291k 1,294k 1,296k 1,298k 1,300k 1,304k 1,307k
Attendance Allowance 1,695k 1,698k 1,700k 1,703k 1,707k 1,711k 1,715k
Carer's Allowance 1,034k 1,037k 1,038k 1,040k 1,042k 1,060k 1,062k
Carer Support Payment (Scotland) 71k 71k 71k 72k 72k 72k 72k
Carer's Allowance Supplement (Scotland) 0k 71k 71k 72k 72k 72k 72k
Severe Disablement Allowance 4k 4k 4k 4k 4k 4k 4k
Industrial Injuries Disablement Benefit 137k 137k 137k 138k 138k 138k 139k
Armed Forces Compensation Scheme 93k 93k 94k 94k 94k 94k 94k
War Widow's or Widower's Pension 0k 0k 0k 0k 0k 0k 0k
Child Benefit 8,123k 8,120k 8,120k 8,130k 8,145k 8,161k 8,178k
Scottish Child Payment 351k 352k 352k 353k 350k 348k 337k
Two Child Limit Payment (Scotland, counterfactual) 0k 0k 0k 0k 0k 0k 0k
Healthy Start vouchers 200k 200k 200k 201k 201k 201k 202k
Maternity Allowance 0k 0k 0k 0k 0k 0k 0k
Statutory Maternity Pay 333k 333k 334k 334k 335k 336k 337k
Statutory Paternity Pay 0k 0k 0k 0k 0k 0k 0k
Statutory Sick Pay 181k 182k 182k 182k 182k 183k 183k
Sure Start Maternity Grant 26k 26k 26k 26k 26k 26k 26k
Bereavement Support Payment 98k 98k 98k 98k 98k 99k 99k
Widowed Parent's Allowance 0k 0k 0k 0k 0k 0k 0k
Tax-Free Childcare 1,043k 1,027k 1,014k 1,009k 1,011k 1,009k 993k
Extended childcare entitlement 795k 800k 796k 797k 798k 798k 792k
Universal childcare entitlement 1,071k 1,072k 1,072k 1,073k 1,076k 1,079k 1,074k
Targeted childcare entitlement 165k 156k 154k 154k 155k 155k 150k
Childcare Offer for Wales 39k 39k 39k 39k 39k 39k 39k
Care to Learn 0k 0k 0k 0k 0k 0k 0k
Childcare Grant 0k 0k 0k 0k 0k 0k 0k
Parents' Learning Allowance 98k 98k 98k 99k 99k 99k 99k
Adult Dependants' Grant 18k 18k 12k 12k 12k 12k 12k
Travel Grant 0k 0k 0k 0k 0k 0k 0k
Disabled Students' Allowance suppressed suppressed suppressed suppressed suppressed suppressed suppressed
16 to 19 Bursary Fund 0k 0k 0k 0k 0k 0k 0k
Cost-of-living support payment 0k 0k 0k 0k 0k 0k 0k
Energy Bills Rebate 0k 0k 0k 0k 0k 0k 0k
Household Energy Payment 0k 21,065k 0k 0k 0k 0k 0k
Energy Price Guarantee subsidy 0k 0k 0k 0k 0k 0k 0k
Basic income 0k 0k 0k 0k 0k 0k 0k
Disability basic income 0k 0k 0k 0k 0k 0k 0k
Government balance, each component counted once: head levels
Measure (head) 2025-26 2026-27 2027-28 2028-29 2029-30 2030-31 2031-32
Government receipts, each component once £884.84bn £927.27bn £972.84bn £1,008.09bn £1,046.22bn £1,083.36bn £1,116.51bn
Government spending £529.29bn † £545.32bn † £550.39bn † £559.10bn † £566.74bn † £575.45bn † £583.06bn †
Government balance, each receipt once £355.56bn † £381.94bn † £422.45bn † £448.99bn † £479.49bn † £507.91bn † £533.45bn †
Benefits in household_benefits but not in gov_spending £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn £0.00bn
Model totals: head levels
Measure (head) 2025-26 2026-27 2027-28 2028-29 2029-30 2030-31 2031-32
gov_tax £884.84bn £927.27bn £972.84bn £1,008.09bn £1,046.22bn £1,083.36bn £1,116.51bn
household_tax £491.97bn £520.41bn £551.21bn £576.00bn £601.00bn £626.69bn £648.42bn
pre_budget_change_household_tax £484.15bn £512.28bn £542.82bn £566.95bn £591.72bn £617.16bn £638.61bn
gov_spending £529.29bn † £545.32bn † £550.39bn † £559.10bn † £566.74bn † £575.45bn † £583.06bn †
household_benefits £529.29bn † £545.32bn † £550.39bn † £559.10bn † £566.74bn † £575.45bn † £583.06bn †
gov_balance £355.56bn † £381.94bn † £422.45bn † £448.99bn † £479.49bn † £507.91bn † £533.45bn †
Household income totals: head levels
Measure (head) 2025-26 2026-27 2027-28 2028-29 2029-30 2030-31 2031-32
Household market income £1,637.96bn £1,702.77bn £1,757.35bn £1,806.41bn £1,855.97bn £1,912.43bn £1,970.44bn
Household net income £1,636.60bn † £1,687.48bn † £1,715.08bn † £1,747.09bn † £1,778.23bn † £1,816.52bn † £1,859.15bn †
Household net income (HBAI definition) £1,449.48bn £1,499.49bn £1,530.49bn £1,564.77bn £1,597.43bn £1,635.10bn £1,676.08bn
Population: head levels
Measure (head) 2025-26 2026-27 2027-28 2028-29 2029-30 2030-31 2031-32
People 69,245k 69,383k 69,473k 69,592k 69,738k 69,912k 70,080k
Benefit units 35,110k 35,181k 35,226k 35,286k 35,360k 35,449k 35,534k
Households 31,046k 31,108k 31,149k 31,201k 31,267k 31,345k 31,420k
Poverty rates: head levels
Measure (head) 2025-26 2026-27 2027-28 2028-29 2029-30 2030-31 2031-32
Absolute poverty, before housing costs: everyone 16.2% 15.4% 16.3% 16.2% 16.4% 16.4% 16.5%
Absolute poverty, before housing costs: children 24.6% 21.9% 23.1% 22.7% 22.9% 23.0% 23.2%
Absolute poverty, before housing costs: working-age adults 14.0% 13.7% 14.6% 14.6% 14.7% 14.7% 14.9%
Absolute poverty, before housing costs: pensioners 13.7% 13.4% 14.0% 13.9% 14.0% 14.0% 13.9%
Absolute poverty, after housing costs: everyone 21.5% 21.0% 22.0% 22.5% 22.8% 23.0% 23.4%
Absolute poverty, after housing costs: children 33.1% 31.2% 32.1% 32.4% 32.8% 33.2% 34.0%
Absolute poverty, after housing costs: working-age adults 19.9% 19.8% 20.8% 21.5% 21.8% 22.0% 22.2%
Absolute poverty, after housing costs: pensioners 12.7% 12.4% 13.2% 13.2% 13.3% 13.4% 13.6%
Relative poverty, before housing costs: everyone 16.9% 15.9% 16.3% 16.2% 16.3% 16.2% 16.5%
Relative poverty, before housing costs: children 25.8% 22.6% 23.1% 22.7% 22.8% 22.6% 23.2%
Relative poverty, before housing costs: working-age adults 14.4% 14.0% 14.6% 14.6% 14.7% 14.6% 14.9%
Relative poverty, before housing costs: pensioners 14.5% 14.1% 14.0% 13.8% 13.8% 13.9% 13.9%
Relative poverty, after housing costs: everyone 21.4% 20.9% 21.2% 21.3% 21.3% 21.5% 21.7%
Relative poverty, after housing costs: children 32.9% 31.0% 31.1% 31.0% 31.1% 31.2% 31.7%
Relative poverty, after housing costs: working-age adults 19.8% 19.7% 20.2% 20.4% 20.5% 20.6% 20.8%
Relative poverty, after housing costs: pensioners 12.5% 12.4% 12.2% 11.8% 11.7% 11.8% 12.1%
People in poverty: head levels
Measure (head) 2025-26 2026-27 2027-28 2028-29 2029-30 2030-31 2031-32
Absolute poverty, before housing costs: everyone 11,251k 10,708k 11,337k 11,302k 11,412k 11,452k 11,588k
Absolute poverty, before housing costs: children 3,677k 3,272k 3,456k 3,407k 3,443k 3,465k 3,511k
Absolute poverty, before housing costs: working-age adults 5,950k 5,860k 6,279k 6,333k 6,390k 6,402k 6,493k
Absolute poverty, before housing costs: pensioners 1,624k 1,576k 1,602k 1,562k 1,579k 1,585k 1,584k
Absolute poverty, after housing costs: everyone 14,871k 14,567k 15,265k 15,691k 15,911k 16,096k 16,374k
Absolute poverty, after housing costs: children 4,941k 4,671k 4,815k 4,873k 4,932k 5,015k 5,146k
Absolute poverty, after housing costs: working-age adults 8,426k 8,436k 8,945k 9,325k 9,475k 9,560k 9,684k
Absolute poverty, after housing costs: pensioners 1,504k 1,460k 1,505k 1,493k 1,505k 1,520k 1,545k
Relative poverty, before housing costs: everyone 11,698k 11,036k 11,323k 11,301k 11,352k 11,354k 11,588k
Relative poverty, before housing costs: children 3,849k 3,391k 3,456k 3,407k 3,429k 3,416k 3,511k
Relative poverty, before housing costs: working-age adults 6,131k 5,993k 6,272k 6,333k 6,359k 6,362k 6,493k
Relative poverty, before housing costs: pensioners 1,719k 1,652k 1,594k 1,561k 1,565k 1,576k 1,584k
Relative poverty, after housing costs: everyone 14,806k 14,520k 14,761k 14,796k 14,871k 15,007k 15,219k
Relative poverty, after housing costs: children 4,918k 4,649k 4,663k 4,653k 4,675k 4,703k 4,798k
Relative poverty, after housing costs: working-age adults 8,399k 8,415k 8,702k 8,816k 8,873k 8,962k 9,052k
Relative poverty, after housing costs: pensioners 1,488k 1,455k 1,395k 1,326k 1,324k 1,342k 1,369k
Inequality: head levels
Measure (head) 2025-26 2026-27 2027-28 2028-29 2029-30 2030-31 2031-32
Gini coefficient, equivalised HBAI income before housing costs 0.3076 0.3049 0.3055 0.3054 0.3059 0.3064 0.3080
Mean household net income in each side's own deciles: head levels
Measure (head) 2025-26 2026-27 2027-28 2028-29 2029-30 2030-31 2031-32
Decile 1: mean household_net_income per household £17,747 † £17,980 † £17,922 † £18,176 † £18,313 † £18,532 † £18,737 †
Decile 2: mean household_net_income per household £28,048 † £29,038 † £28,756 † £28,999 † £29,261 † £29,677 † £30,174 †
Decile 3: mean household_net_income per household £34,219 † £35,425 † £36,052 † £36,547 † £37,155 † £37,773 † £38,102 †
Decile 4: mean household_net_income per household £38,925 † £40,769 † £41,728 † £42,763 † £43,387 † £44,168 † £44,499 †
Decile 5: mean household_net_income per household £43,346 † £45,603 † £46,054 † £47,001 † £47,755 † £48,626 † £50,309 †
Decile 6: mean household_net_income per household £47,936 † £49,179 † £50,883 † £52,036 † £52,926 † £53,947 † £54,723 †
Decile 7: mean household_net_income per household £55,669 † £56,646 † £57,489 † £57,654 † £58,788 † £59,702 † £61,102 †
Decile 8: mean household_net_income per household £68,785 † £70,807 † £71,868 † £73,507 † £73,888 † £75,324 † £77,179 †
Decile 9: mean household_net_income per household £78,889 † £81,012 † £80,859 † £82,645 † £85,463 † £86,945 † £89,508 †
Decile 10: mean household_net_income per household £116,861 † £120,160 † £124,545 † £126,419 † £125,752 † £128,367 † £130,693 †
Standard reform costings (change in gov_balance): head levels
Measure (head) 2025-26 2026-27 2027-28 2028-29 2029-30 2030-31 2031-32
Raise basic rate by 1pp £6.41bn £6.66bn £6.63bn £6.85bn £7.03bn £7.25bn £7.48bn
Raise higher rate by 1pp £3.61bn £3.87bn £4.00bn £4.22bn £4.44bn £4.71bn £4.83bn
Raise personal allowance by ~800GBP/year £-3.81bn £-3.93bn £-3.99bn £-4.05bn £-4.11bn £-4.24bn £-1.95bn
Raise child benefit by 25GBP/week per additional child £-1.99bn £-1.75bn £-1.55bn £-1.38bn £-1.30bn £-1.18bn £-1.07bn
Reduce Universal Credit taper rate to 20% £-20.83bn £-21.38bn £-21.81bn £-22.02bn £-22.37bn £-22.77bn £-22.96bn
Raise Class 1 main employee NICs rate to 10% £10.89bn £11.30bn £11.71bn £12.01bn £12.31bn £12.62bn £13.00bn
Raise VAT standard rate by 2pp £24.17bn £24.97bn £25.86bn £26.46bn £27.07bn £27.68bn £28.31bn
Raise additional rate by 3pp £2.90bn £3.15bn £3.22bn £3.41bn £3.61bn £3.85bn £4.14bn
Raise the Universal Credit standard allowance by 10% £-3.06bn £-3.23bn £-3.30bn £-3.40bn £-3.48bn £-3.53bn £-3.55bn
Raise the State Pension by 10% £-7.76bn £-7.99bn £-8.22bn £-8.44bn £-8.79bn £-8.52bn £-8.86bn
Standard reforms: change in each reform's target: head levels
Measure (head) 2025-26 2026-27 2027-28 2028-29 2029-30 2030-31 2031-32
Raise basic rate by 1pp: change in income_tax £6.55bn £6.86bn £6.79bn £7.00bn £7.20bn £7.44bn £7.66bn
Raise higher rate by 1pp: change in income_tax £3.61bn £3.92bn £4.01bn £4.23bn £4.45bn £4.72bn £4.84bn
Raise personal allowance by ~800GBP/year: change in income_tax £-3.93bn £-4.07bn £-4.13bn £-4.18bn £-4.22bn £-4.40bn £-1.75bn
Raise child benefit by 25GBP/week per additional child: change in child_benefit £2.33bn £2.14bn £1.94bn £1.76bn £1.65bn £1.52bn £1.40bn
Reduce Universal Credit taper rate to 20%: change in universal_credit £20.79bn £21.36bn £21.84bn £22.07bn £22.39bn £22.80bn £23.01bn
Raise Class 1 main employee NICs rate to 10%: change in national_insurance £11.15bn £11.63bn £12.00bn £12.29bn £12.61bn £12.94bn £13.31bn
Raise VAT standard rate by 2pp: change in vat £23.98bn £24.77bn £25.66bn £26.24bn £26.85bn £27.46bn £28.07bn
Raise additional rate by 3pp: change in income_tax £2.90bn £3.15bn £3.22bn £3.42bn £3.62bn £3.86bn £4.12bn
Raise the Universal Credit standard allowance by 10%: change in universal_credit £3.06bn £3.22bn £3.32bn £3.41bn £3.48bn £3.54bn £3.55bn
Raise the State Pension by 10%: change in state_pension £10.68bn £11.17bn £11.28bn £11.60bn £12.03bn £12.46bn £12.96bn

The local schemes' oracle left out a lodger's qualifying young person aged
18 or over, whom the model and the national oracle count as a non-dependant:
reg 9(2)(e) of SI 2012/2885 excludes only the person liable to pay the
householder. CI found a Westminster household where the model charged such a
young person £270.40 a year and the oracle charged nothing.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci-recheck Re-triggers Fix evidence without changing the PR (UK hub, 2026-10-12)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Charge non-dependant deductions for non-dependants within the claimant's benefit unit

2 participants