Skip to content

Limit Housing Benefit childcare to qualifying charges and earnings residuals - #2229

Draft
anth-volk wants to merge 2 commits into
add-hb-permitted-workfrom
fix-hb-qualified-childcare
Draft

anth-volk wants to merge 2 commits into
add-hb-permitted-workfrom
fix-hb-qualified-childcare

Conversation

@anth-volk

@anth-volk anth-volk commented Oct 9, 2026 •

Copy link
Copy Markdown
Collaborator

Fixes #2228

Limits the Housing Benefit childcare deduction to earnings remaining after the selected standard/special/permitted-work and accommodation disregards, plus Working Tax Credit and Child Tax Credit payments. Unrelated income cannot fund the residual. The additional earnings disregard remains conditional on earnings covering the childcare deduction as well; computing the childcare limit first avoids a circular calculation.

The current head retains aggregate childcare_expenses and the existing age-based eligible-child count, and reuses WTC's one-/multiple-child caps. It adds no qualifying-charge input. Provider eligibility, excluded charge types, work/leave conditions, incapacity/continuation exceptions, and counting only children actually receiving paid care remain deferred to #2236. The age-based count can overstate the cap when only one of several eligible children has paid care. This is an annual approximation assuming constant household circumstances.

The formulas embed the GB/NI working- and pension-age regulations and DWP BW2 paragraphs W2.179–W2.182. #1925 supplies the fixed £175/£300 caps; this PR does not duplicate that correction.

Stack: #2225 → #2219 → this PR → #2234. Keep the current base until #2219 lands on main; then merge main, resolve, run focused foreground tests with -n 2 under load1 ≤110 and at least 55 GB available disk from os.statvfs, push once and retarget to main. Preserve #2225's corrected disabled-worker regression.

Validation: the author's earlier body reports 36 childcare cases passing in core 3.32.13, with formatting and diff checks. That historical report has not been revalidated for the current head by this job. On 22 October, this job ran 0 child tests and changed no branch files because the immediate parent remains unmerged. The body was corrected to describe the current code; no new passing-test claim is made. Current-head focused verification remains required before landing.

Reproducer: policyengine_uk/tests/policy/baseline/finance/benefit/family/housing_benefit/applicable_income/housing_benefit_applicable_income_childcare_element.yaml

axiom: needed

@MaxGhenis

Copy link
Copy Markdown
Collaborator

Parent-gated build hand-off. Head remains c5e5f88471395f09d1ecd0770cbaee2c938c7807; no branch changes, push or retarget. Immediate parent #2219 is still OPEN/unmerged at a66b990b52a468d2182d3154cbcbf8da66982b1a (checked 22 October). Root #2211 has a local reconciliation awaiting the required disk gate: #2211 (comment)

Tests for this child: 0 executed in this job; no claim is made about the current head's CI. Preserve Anthony's corrected disabled-worker earnings-disregard regression (£1,929.20) when updating the base. Draft status unchanged; no merge/readiness/closure action.

Once #2219 lands, the pending commands are:

git fetch origin main fix-hb-qualified-childcare
git switch fix-hb-qualified-childcare  # create tracking branch if absent
git merge --no-ff origin/main
# Resolve, run focused foreground tests with -n 2 after load1 <=110 and
# os.statvfs available disk >=55 GB decimal; commit fixes and push once.
gh api -X PATCH repos/PolicyEngine/policyengine-uk/pulls/2229 -f base=main

Open items: parent landing; merge/test/push/body refresh as needed; retarget; hub independent review. #2234 remains gated on this PR's landing.

Corrected the published PR body: current head uses aggregate childcare_expenses and the age-based child count, adds no qualifying-charge input, and defers detailed qualifying-care rules to #2236. The old body claimed the removed input. No code or historical test result was changed; current-head verification remains open.

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

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants