Repository navigation
Conversation
Reconcile the ordinary-income helper with current claimant/partner readers, counted benefits and the pension deduction parameter. Retain income exclusions and all current-main tests; cite each GB/NI age path and guard retained disability income.
|
Build hand-off: local verification blocked by the required disk gate. Remote head remains Reconciled the ordinary-income helper with main's claimant/partner JSA/ESA readers, IIDB/SDA/Incapacity Benefit, pension-deduction parameter and passports. Combined all main/PR income cases and added a counted-benefits regression case: 18 applicable-income YAML cases prepared. No additional Legal reading: reg 25(3) excludes a child's own income. Adult-received Child Benefit is separately disregarded by GB Sch 5 para 65 / NI Sch 6 para 64; pension-age exclusions are GB reg 29(1)(j)(vi) / NI reg 27(1)(h)(v). Social Fund grants are excluded by GB Sch 5 para 31 / NI Sch 6 para 32 and pension-age GB reg 29(1)(j)(ix) / NI reg 27(1)(h)(viii). No unresolved current-law interpretation. Full working-age Child Benefit disregard starts 2 November 2009; pre-2009 assessment is outside this verified scope. Child-income masking is already on main; the Child Benefit/SSMG exclusions are not superseded. #1995 coordination: apply its property-income replacement inside the helper at line 56 ( Validation: 0 tests executed. The foreground runner checked the specified gate 31 times over 15 minutes; free disk never reached 55 GB decimal (final reading about 51.36 GB), despite removal of this job's install cache. No threshold override used. Locked clone sync succeeded (core 3.33.2). Open items: restore disk ≥55 GB and load1 ≤110; run Recovery: sandbox-local Git metadata is in |
Aggregate impact on certified data: passBase Checks: 0 broken by this change, 1 failing on both sides, 0 fixed. Moves flagged for review: 0 (thresholds in Notes
Moves flagged for reviewNone. Spending by benefit and service
Caseloads
Standard reform costings (change in gov_balance)
Standard reforms: change in each reform's target
Household net income by decileNo 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. Checks failing on both base and head (1)
Counted-once checkEach of 85 components was raised by £1 per unit in 2026-27, and every head of its totals was read household by household: its own head must rise by exactly £1, no other tax head may move, no other benefit may rise, and the model's own total must move by what its heads moved. A head that breaks a rule is measured again twice: with every other head held at its baseline value, and with every other head held at its value after the first £1 while the component rises again. It fails where either still shows the response. 0 failed; 0 were skipped.
Provenance
Dataset: Receipts by tax head: head levels
Spending by benefit and service: head levels
Caseloads: head levels
Government balance, each component counted once: head levels
Model totals: head levels
Household income totals: head levels
Population: head levels
Poverty rates: head levels
People in poverty: head levels
Inequality: head levels
Mean household net income in each side's own deciles: head levels
Standard reform costings (change in gov_balance): head levels
Standard reforms: change in each reform's target: head levels
|
The reconciling merge added a case whose age: [40, 75] created two people while every other input was a scalar, so Test / YAML failed. Split it into a working-age case (age 40) and a pension-age case (age 75), each expecting £6,000, as the independent review verified. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Keep the ordinary-income helper and disregard Child Benefit, Social Fund grants and dependent income. Count statutory paternity pay in the helper with claimant/partner tax and NI deducted. Retain both test sets and add a combined taxable-SPP and disregarded-family-income case. Runtime tests deferred: reservation.py denied uk-hub under route-a-release-rerun-d1811. Ruff format and check pass for 9 changed Python files; repository format check passes for 1965 files.
#2573 added spousal maintenance (less the £15 disregard) and Widowed Parent's Allowance (less £15) to the Housing Benefit means test, in the formula this PR moved into hb_income_before_deductions. Add both to the helper, keeping this PR's claimant-or-partner mask, Child Benefit and Social Fund disregards and statutory pay as earnings. Both variables are already limited to the claimant and partner. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
UK hub (Claude session, for Max): merged main again at |
Fixes #2210
Housing Benefit ordinary applicable income now excludes Child Benefit and Sure Start Maternity Grants (main already counted only the claimant's and partner's own income, under the mask it gained in
2b635faea). Only the claimant's and partner's income, tax, National Insurance and pension contributions enter the ordinary calculation. The sharedhb_income_before_deductionshelper is retained for dependent accommodation-timing work.This branch integrated #2368 at
df51910e215dc32b8a281080572b3f48a9b1de15before it merged, and has since merged main (bdd54c545), folding in #2573's spousal maintenance (less the £15 disregard) and Widowed Parent's Allowance (less £15). Statutory paternity pay is taxed with statutory sick and maternity pay, and counts in Housing Benefit and Council Tax Reduction earnings with its tax and NI deducted. The related Universal Credit cases and properties are retained.The conflicting source is resolved by placing SPP in the helper's personal-benefit list while retaining the Child Benefit/SSMG exclusions and claimant/partner masks. The conflicting YAML retains both sets of cases. A combined regression includes taxable SPP for the claimant and a dependent, Child Benefit and SSMG: only the claimant's £20,388.64 earnings less £1,563.728 tax and £625.4944 NI counts, giving £18,199.42 with disregards pinned to zero. The original SPP case remains £17,939.42 after its £260 earnings disregard.
Existing Guarantee Credit/legacy-benefit/UC passports and the separate Savings Credit-only calculation are retained. Embedded government citations cover the GB and NI disregards and statutory-pay earnings provisions. Original author Anthony Volk's history is preserved; main
55cd7fb04bbb36085c8eb8594209f1f6f39e9ea9was merged in41230b756386ef9b198757f04e71ec1c41fca24eand the #2368 integration is9a515bff628bb321f69f9e33f35c4d0299d06b03.Validation: 0 runtime tests executed. The required reservation check denied
uk-hubbecauseroute-a-release-rerun-d1811-2026-10-23holds the host. No runtime test or collection was started and no test environment was installed. CI must provide runtime validation. Static focused inventory: 89 YAML cases (21 applicable-income; 13 HB net-earnings; 38 HB accommodation-disregard; 10 UC statutory-pay; 5 employment-benefits; 2 CTR statutory-pay) and 14 Python tests (5 SPP tax; 9 UC statutory-pay), 103 total. Both parent sets were checked for retention. Ruff format and check passed for all 9 changed Python files; repository-wideuvx ruff format --check .passed on 1,965 files;git diff --checkpassed.#1995 still owns capital-derived income and must preserve these exclusions when reconciling the shared helper. Keep #2225 parent-gated until this PR lands. Hub independent review and CI remain outstanding. No microsimulation or dataset build was run.
Reproducer:
policyengine_uk/tests/policy/baseline/finance/benefit/family/housing_benefit/applicable_income/housing_benefit_applicable_income.yaml::Child Benefit is fully disregarded,policyengine_uk/tests/policy/baseline/finance/benefit/family/housing_benefit/applicable_income/housing_benefit_applicable_income.yaml::Taxable statutory paternity pay counts while disregarded family income and tax stay excludedaxiom: needed