Repository navigation
Charge in-unit non-dependants in the local Council Tax Reduction schemes, and exclude a lodger personally only outside the head's family - #2077
Conversation
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>
20 pounds a week for a lone parent (para 1), a carer satisfying Sch I para 4 (para 3), or a claimant or partner on a listed disability benefit or certified blind (para 4(1)); otherwise 5 pounds single and 10 pounds couple (para 5); at most 20 pounds (para 4A), never more than the earnings. Refs #1954. 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>
…2019) Reg 17(9) disregards the Sch VI sums in calculating the claimant's earnings, which are net of income tax and NI (reg 17(10)) and of half of pension contributions (reg 17A(4A)). Capping at gross earnings let a taxpayer's first pounds of earnings raise Pension Credit. Income tax on earnings is the lesser of the person's income tax and the basic rate on their earnings. Also: the carer condition reads the claimant's or partner's is_carer_for_benefits (Sch I para 4), not the carer addition, which counts dependants; is_claimant_or_partner after #1896; property tests compute net earnings independently, include dependants' DLA and caring, and add that earning more never raises Pension Credit; parameter description and test comment fixes. 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>
…ment (review of #2019) - Income tax on earnings is now the tax on them as the top slice of taxable non-savings income on the person's own Scottish or rest-of-UK schedule, capped at their income tax. The 20% cap let earnings crossing Scottish bands raise Pension Credit (reviewer's couple: +2.89). - The para 3 carer condition reads is_entitled_to_carer_benefit, the carer addition's own Sch I para 4 test; caring hours alone no longer qualify (reviewer's case overpaid 780 a year). - Tests: Scottish couple pair (income flat with and without earnings), hours-only vs entitled carer cases; the property test adds Scottish households, carer entitlement, care hours and pension contributions, and measures tax on earnings independently by rerunning without them. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
vahid-ahmadi
left a comment
There was a problem hiding this comment.
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.
- 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. - Should fix: #2027 is missing from Coordination, and the conflict at
_legacy.py:175-179changes 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.
- Should fix: this does not fix the #2078 grandmother cases.
- Both
own_family_member(_legacy.py:114) andin_unit(council_tax_reduction_individual_non_dep_deduction_eligible.py:40) key onis_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_partnerfrom #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_educationfor 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.
- set the young father's
- Both
- Should fix: the agreed #2015 resolution covers
_legacy.pybut not the eligibility file. - 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.mdmentions only the local schemes. - Also remove the survey household counts ("135 survey households", "134", "54").
- Say so in the title and changelog:
- 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-51excludes every boarder and lodger, for example an adult son paying his mother board. Main does the same throughin_other_non_liable_family.- There is no relationship input, so document the gap in the variable and open a follow-up issue.
|
#2062 is now on This PR still adds formulas that read the raw flag:
Each needs to read the resolved head instead:
|
Add council_tax_band_d_amount (LA Band D amount, from a new LA-keyed parameter following the domestic_rates/rates.yaml precedent) and simulated_council_tax (Band D amount x statutory band ratio). Band ratios are added per country: England and Wales use the section 5 proportions 6:7:8:9:11:13:15:18 relative to Band D = 9, Wales adding band I at 21/9 from April 2005; Scotland uses the raised E-H multipliers (473/360, 585/360, 705/360, 882/360) from April 2017. The existing council_tax input variable is left untouched so the two can be compared. council_tax_band_d_amount also fills a dangling reference from policyengine-uk-data's la_council_tax target source. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…levels Review follow-up on the four data-coverage items. Enum coverage: add the six April 2023 unitary authorities (Cumberland, North Northamptonshire, North Yorkshire, Somerset, West Northamptonshire, Westmorland and Furness) to LocalAuthority. All 350 Band D rows now load, up from 344. Vintages: carry fiscal 2025 and 2026 for England, Wales and Scotland. England comes from MHCLG Table 10 line 17 in both the 2026-27 and the revised 2025-26 releases; the 2025-26 release's current-year column reproduces the 2026-27 release's previous-year column, and every England and Wales 2026 value reproduces the figures already in the file. Wales comes from the Welsh Government council tax levels data tables, Table 1 "Overall average band D". Scotland comes from the Scottish Government Band D council tax 1996-97 to 2026-27 dataset, whose 2025-26 column reproduces the Scottish values already in the file. References: cite the specific workbooks rather than the statistics collection page, and state the basis. For England and Wales this is the area figure, so it includes the county, police, fire, combined authority and parish or community council precepts; for Scotland it excludes the separately billed water and waste water charges. The variable documentation and the stale "six authorities absent from the enum" comment are corrected to match. Scotland ratios: SSI 2016/368 (not 2016/123, which is the capital finance regulations and was cited in error) substitutes 240:280:320:360:473:585: 705:882 into section 74(1) for financial years from 1 April 2017. Bands A to D are unchanged from the original 6:7:8:9 proportion, so they are dated from 1993-04-01; bands E to H keep the 2017 step and gain their original 11/9, 13/9, 15/9 and 18/9 values from 1993-04-01, so no band is undefined before 2017. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…land, an abolished district and the missing-authority default; document the authority context Main already added the six unitaries (52f4281), so composing this branch with it defined CUMBERLAND and WEST_NORTHAMPTONSHIRE twice and the package failed to import (TypeError: 'CUMBERLAND' already defined). Every Band D row still resolves to an enum member (350 of 350). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Encode the Schedule 1 Part 2/3 points thresholds as parameters and add `pip_dl_points` / `pip_m_points` person-level inputs. The existing `pip_dl_category` and `pip_m_category` enums now have formulas that derive the award category from points; data-set-supplied categories continue to win because OpenFisca treats inputs as authoritative over formulas. This is the first slice toward the full points system. Per-activity descriptor inputs and an FRS imputation step are intentionally left for follow-up PRs. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Cross-reference from #2027 (a maintainer review there, 5 October, raised this household). #2027 (head 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 |
…(review: typed fragment) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The part of a reported State Pension above the type's full rate (additional pension for the basic State Pension, protected payments for the new) was uprated by the full rate's own triple-lock rise. Each Up-rating Order raises it by September CPI instead (SSAA 1992 ss.150(1)(c), 151 and 151A; SI 2026/148 arts 4(3) and 6(3)(b): 3.8% against 4.8% for the full rates; SI 2025/295: 1.7% against 4.1%). Uprate it by gov.economic_assumptions.indices.september_cpi_uprating from the data year, read from the simulation's own parameters, so a reform to the full rates or the triple lock no longer moves it and a price scenario does. Fixes #1941. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…rms as a reform CI found two test faults (run 38161065391): the differential against main's formula compared the model's float32 arrays with a float64 reference at rtol 1e-12, which fails for any reported amount float32 cannot hold exactly (e.g. £169.00 a week, aged 98); and a Scenario cannot take the reform dictionary's "2026-01-01.2100-12-31" period, so that case passes it as a reform. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…in the docs At 5% September CPI the triple lock also rose 5%, so the scenario test passed on main. At 1%, below the triple lock's 2.5% floor, the add-on rises 1% and the full rates at least 2.5%. The docs record the change in the model's State Pension against DWP's forecast, from full runs on the certified dataset. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Independent review (GPT-6.1 Sol, UK hub sweep, 2026-10-12): REQUEST_CHANGES at VERDICT: REQUEST_CHANGES
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 |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Keep the September CPI uprating in additional_state_pension: main's np.divide guard (00c07d6) was on the full-rate ratio this branch replaces. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…rectness Correct participation periods, spillover groups and seeded draws
…unterfactual Fix the inactive Universal Credit health-element counterfactual
…defects Pin benefit cap exemption rules with regression tests and legal references (#1818)
Scope legacy-benefit closure to each award's owners
…meters Store marginal National Insurance schedules as scales
…-followup Expand Savings Credit gate regression coverage and metadata
…enses Disregard allowable employment expenses in Universal Credit earnings
Apply the Carer Support Payment earnings limit
…lity Compute gross council tax from LA Band D amounts and statutory band ratios
|
UK hub takeover for the Budget fix sprint (Max, 21 Oct). The owner session 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 |
Fix historical income-tax bands and Marriage Allowance eligibility
Apply minimum ages to computed carer and DLA mobility awards
…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>
…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>
|
UK hub build sprint-2077b: hand-off at The branch is a fast-forward of
Tests (local, locked venv):
Impact (Aggregate impact workflow, certified enhanced FRS, dispatched because this base gets no PR CI):
Open items:
🤖 Generated with Claude Code |
Stacked on #2017 (
in-unit-non-dep-deductions), which is stacked on #2007 (hb-ctr-non-dep-exemptions), for issue #2014. #2017 charges non-dependants inside the claimant's own benefit unit in UC, HB and the national CTR schemes, and kept 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 (UK hub build sprint-2077b, 22 Oct)
cf0475ddb. Fast-forward of663a5b733, same author, no force-push.3efa8bd60(which carries Apply Housing Benefit and national Council Tax Reduction non-dependant deductions as legislated #2007 at4a0935b73and main at76cfc9e79) ascdac9e416, with four conflicts resolved. Then main at9d81a5dfa8bd679f2ade4acbcd215a69f03b3cc4asf526307d8, which merged cleanly.workflow_dispatchruns of the Aggregate impact workflow.The law
Each council's 2026-27 scheme reproduces the Default Scheme's (SI 2012/2886) definitions:
What follows from the texts:
Changes
_legacy.py:local_non_dep_deductionsnow has the shape of Charge non-dependant deductions for non-dependants within the claimant's benefit unit #2017's nationalcouncil_tax_reduction_non_dep_deductions: claims × joint-liability share × (the household's pool, less the claiming family's own amount, plus its own in-unit non-dependants). It uses Apply Housing Benefit and national Council Tax Reduction non-dependant deductions as legislated #2007'sdeduction_per_family: one deduction per couple, the higher, or each member's where the scheme keeps the UC exception; anyone else separately. The claiming family's own non-dependants are Charge non-dependant deductions for non-dependants within the claimant's benefit unit #2017'sis_benefit_unit_non_dependant_for_council_tax_reduction, built on the CTR applicant (Means-test the Council Tax Reduction applicant and partner, not the benefit unit's claimant #2078). So a grandmother who applies alone is charged for the couple in her benefit unit. Main's per-applicant exemption guard (Assess each Council Tax Reduction claim under its own family's scheme and exemption #2015) stays. The local mask is gone.normal_gross_income_non_dep_deduction:is_on_income_support,is_on_income_based_jsa,is_on_income_related_esa(Count only the claimant's and partner's legacy awards in means tests and passports #2027) andis_on_pension_credit;is_on_universal_creditand the person's own earned income (Apply Housing Benefit and national Council Tax Reduction non-dependant deductions as legislated #2007'shas_earned_income, UC Regs 2013 reg 52).council_tax_reduction_individual_non_dep_deduction_eligible(shared with the national schemes) is(other family | in-unit) & ~personally excluded. The personal exclusions are:is_liable_for_household_rent) who is not their benefit unit's claimant or partner;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_headread is gone.westminster_council_tax_reduction_non_dep_deductionsdeducts 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):
Maintainer review (vahid-ahmadi, 5 Oct):
is_on_*for IS, JSA and ESA, andis_on_pension_creditfor 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.applicant_or_partner.yamlpassed only because the 19-year-old parents defaulted to tertiary education. They are now not in education, and the Newham father works 37.5 hours. Newham gives your probe's result: one deduction, the father's £1,175.72, and a reduction of £84.28. The mother has no earned income of her own, so she is exempt. The England pensioner JSA case charges the non-payee £270.40 (reduction £489.20). In Kingston upon Thames both are exempt on UC with no earned income (unchanged £1,627.32).council_tax_benefitis £1,195.968.(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 insideother_family.Max's comment (6 Oct, resolved head): no formula here reads
is_household_head.Readings (d1398, parked)
Under Max's 20 Oct delegation (single readings are the session's call, logged in
source-conflicts/RULINGS.md; rows handed to the hub to append):Invariants
For every input:
Tests
policyengine-core test, single process). This includeslocal_scheme_non_dependants.yaml(25 cases, every expectation hand-computed from the scheme text).benefit_unit_non_dependants.yamlgains 5 cases, and the renamed Newham case replaces Charge non-dependant deductions for non-dependants within the claimant's benefit unit #2017's mask-pinning one.git archiveexport of the parent (Charge non-dependant deductions for non-dependants within the claimant's benefit unit #2017 at3efa8bd60merged 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.-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.pyandtest_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.uvx ruff@latest(0.17.1, CI's unpinned version):format --check .,check .andcheck --select F811,F821 policyengine_ukare all clean.Impact
Two
workflow_dispatchruns of the Aggregate impact workflow, on the certifiedenhanced_frs_2024_25.h5(policyengine-uk-data 1.58.1, sha256056e80fd8e91, verified on both sides), fiscal years 2025-26 to 2031-32, at headaaf01f968. The later commits change only tests and a code comment.1. This PR's own change (run 39732669012). The base is #2017 at
3efa8bd60merged with main at9d81a5dfa(7ba613fb9, pushed aswip/sprint-2077b-impact-basefor the run):sign:vat.So on survey data the local-scheme, Westminster and eligibility changes move no aggregate. They change household calculations in the five councils, and for board-payers outside the head's family and joint tenants entered as inputs.
2. The whole stack (#2007 + #2017 + this) against main at
9d81a5dfa(run 39732671972). 0 checks broken. All of this comes from #2007 and #2017; run 1 shows this PR adds nothing.The run flags 11 moves: decile means of up to ±£260 (2028-29 to 2031-32), and child relative poverty of +0.16pp (+24.2k AHC in 2029-30 and +23.9k BHC in 2031-32). They come from the base PRs (run 1 flags none). Each relative-poverty flag is a single-year jump between years of small falls. #2007's report explains its own 2027-28 flag by the line comparison.
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 earningsReproducer:
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 doesReproducer:
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