Repository navigation
Add the Housing Benefit earnings disregard for specified or temporary accommodation (Sch 4 para 18, from 5 October 2026) - #2123
Conversation
SI 2006/213 Sch 4 para 18 (NI: SR 2006/405 Sch 5 para 18), in force from 5 October 2026 under SI 2026/753 reg 2(4) as substituted by SI 2026/978 reg 2(2), and NI SR 2026/157 reg 2(4). Adds the dated amounts, the in_specified_or_temporary_accommodation input (default false, same name and definition as #1910), the para 18 amount variable with its couple rule and working-age-only scope, and the para 17(3)(a) change that counts it in the £17.10 earnings test. YAML and Hypothesis tests. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A mutant that made the earner condition always true survived the property suite (the YAML caught it). Draw families without earnings half the time, and add properties that no earner gets no para 18 amount and that a working-age earner in the accommodation gets exactly the statutory amount. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- YAML: a mixed-age couple under the pension-age Regulations (no para 18), statutory maternity pay as the only earnings, a self-employment loss (para 18(1)(b) met, nothing to disregard), and a pension-age claimant on Income Support (working-age Regulations, para 12 takes all earnings). - Hypothesis: pin the age boundaries (couples 17/17, 17/18, 24/25; singles and lone parents 24 and 25) as explicit examples of the differential, and say exactly what its reference shares with the model. - Parameters: note why fiscal_year_blend is not used. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The permitted work disregard (Sch 4 para 10A) replaces paras 3 to 10 but not para 18, and the universal credit limb of para 12 is left out because the model does not pay Housing Benefit to a family on Universal Credit. Neither is new; the review asked for both to be stated. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Drawing families without earnings half the time (5aaacd8) left the derandomized property suite without a family whose net earnings cover the £17.10 test without para 18 but not with it, so it no longer killed a mutant that drops para 18 from para 17(3)(a); the YAML still did. Add two such families as explicit examples (single, 30 hours, £5,148; lone parent, 16 hours, £6,000) and state the parameter-date invariant exactly. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The model stores money as float32, so a tiny positive float drawn by Hypothesis (say 1e-100) would round to zero there and stop counting as earnings, while the reference's earner test still counted it. The derandomized run never drew one, but a larger run could fail spuriously. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Hand-off to the UK hub. Only CI remains.
|
|
Coordination: #2133 (the universal credit limb of the HB passport, fixes #2132) edits the same lines of #2133 adds on_passporting_benefit = benunit("housing_benefit_on_passporting_benefit", period)
return where(on_passporting_benefit, net_earnings, standard + additional)This PR changes the same
The rest of this PR's docstring and code merge as they are. Para 18 then reaches only accommodation claimants who are not on Universal Credit, because para 12 already disregards all earnings of those who are. #2133 also pins I merged this head (a3ee31a) with the passport commit locally and resolved the conflict as above. The HB YAML folder then has 13 failures in
Adding On the same merge, I checked both pins on this head alone (a3ee31a): 37 of 37 YAML cases and 11 of 11 properties pass. So they can go in here now, and then neither merge order breaks. I'll handle the merge on #2133's side if this PR lands first. 🤖 Generated with Claude Code |
|
Merged by the UK hub, which took this PR on handoff from local_5dfa7203, under the PE-UK merge-on-gates rule. The law is in force from 5 October 2026.
|
…passport Resolve the Sch 4 para 12 return in the earnings disregard: keep #2123's para 18 amount and read housing_benefit_on_passporting_benefit; drop its sentence that the universal credit limb is not modelled. Pin would_claim_uc: false on the 19 para 18 YAML cases whose families were UC-entitled (13 failed, 6 passed only because the passport gave the expected value) and in the para 18 property fixture. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
From 5 October 2026, working-age Housing Benefit disregards an extra amount of earnings for claimants in specified or temporary accommodation. This adds it: SI 2006/213 Schedule 4 paragraph 18 and, in Northern Ireland, SR 2006/405 Schedule 5 paragraph 18.
Law
Fetched from legislation.gov.uk CLML on 2026-10-03. The revised SI 2006/213 there does not include paragraph 18 yet, so the text and citations come from the amending instruments.
SI 2026/753 (in force 5 October 2026; extends to England and Wales and Scotland):
SI 2026/978 reg 2(2) (in force 2 October 2026) replaced reg 2(4) before it came into force. Its Explanatory Memorandum says the first version wrongly left out lone parents, required "remunerative work" and had no partner rule. The version in force:
para 17(3)(a): "paragraphs 3 to 10A" becomes "paragraphs 3 to 10A and 18". The para 18 amount now counts in the £17.10 additional disregard's earnings test. Para 17(1) still adds the £17.10 only to the paras 3 to 10A amount.
para 18(1): applies where "(a) the claimant is resident in accommodation specified in paragraph 3A or paragraph 3B of Schedule 1 to the Universal Credit Regulations 2013 … and (b) the claimant, or, if the claimant has a partner, the claimant or their partner, is an employed earner or self-employed earner". For a couple it "shall not apply to their partner except where, and to the extent that, the earnings of the claimant which are to be disregarded under this paragraph are less than" the amount.
para 18(2), weekly:
Northern Ireland: SR 2026/157 (in operation 5 October 2026) makes the same amendments to SR 2006/405: regs 33(2) and 35(2), and Sch 5 paras 17(3)(a) and 18. It refers to UC (NI) Regs 2016 Sch 1 paras 4 and 4A. So the rule is UK-wide.
Working age only. Neither SI 2006/214 nor SR 2006/406 is amended, and both Explanatory Notes say "These amendments apply to working-age housing benefit only".
Not uprated. Nothing uprates the amounts. The SI 2026/753 EM (para 6.2) says they "will be annually reviewed"; any change will come by a new instrument.
It stacks with the £5, £10 and £25. No paragraph excludes para 18, and para 18 excludes none: para 10 applies "where none of the paragraphs 3 to 9 applies", and para 10A(2) disapplies only paras 3 to 10. The EM (paras 5.7 to 5.9) sets each amount as the earnings at which the UC standard allowance tapers away, less "the combined value of the basic Housing Benefit earnings disregard and the applicable Housing Benefit personal allowance". With the model's own 2026-27 rates that reproduces both single amounts exactly:
Changes
in_specified_or_temporary_accommodation: benefit-unit input, default false, with the UC Sch 1 paras 3A and 3B definitions (NI paras 4 and 4A). It has the same name, path, definition and references as the input in Abolish working-age Housing Benefit from 1 July 2026 (NI 1 October 2026) #1910. One docstring sentence differs: Abolish working-age Housing Benefit from 1 July 2026 (NI 1 October 2026) #1910's says the input protects working-age awards from abolition, which is not true on this branch. If this lands first, Abolish working-age Housing Benefit from 1 July 2026 (NI 1 October 2026) #1910 resolves a one-sentence add/add conflict by taking its own sentence plus a mention of para 18.housing_benefit_specified_or_temporary_accommodation_disregard: the full para 18(2) amount, annualised (× 52). It applies where:housing_benefit_pension_age_regulations_apply).The age bands read
eldest_claimant_or_partner_age.housing_benefit_applicable_income_disregard:Combining claimant and partner earnings applies the couple rule: one amount, taken from both.
Parameters under
gov.dwp.housing_benefit.means_test.income_disregard.specified_or_temporary_accommodation: seven amounts and two age thresholds (18 and 25). The amounts are zero before 2026-10-05 and have no uprating.Fiscal-year reading. The model reads each fiscal year at 30 April. 2026 (2026-27) therefore has no para 18 disregard, although it applies from 5 October 2026, which is 183 of the year's 365 days. 2027 onwards has the full amounts. This is intended and tested. A day-weighted blend would be wrong here: half of each amount for the whole year is not the same as the full amount for half the year, because of the earnings cap and the £17.10 test.
Invariants (property tests in
test_housing_benefit_specified_accommodation_disregard_properties.py, 2027)0 ≤ para 18 amount ≤ £119.70 × 52, and it is one of the five statutory amounts or zero. 0 ≤ total disregard ≤ min(net earnings, (£25 + £119.70 + £17.10) × 52).
With the input false, there is no para 18 amount, and the total equals the total with that amount forced to zero.
The total disregard is non-decreasing in employment income.
Turning the input on never lowers the disregard or raises applicable income. This is intended: every para 18 amount exceeds the £17.10 it can cost through para 17(3)(a). It is a property of the amounts, not a rule of law.
Differential: the model agrees with a reference written from the statutory text. The reference is independent for the para 18 bands and gates (amounts hard-coded from the instrument; ages, family type, earner and pension-age status from the generated inputs) and for how paras 4, 7, 10, 17 and 18 combine. It takes net earnings, deductible childcare and the para 17(2) work condition from the model, which other tests cover. Explicit examples pin the age boundaries (couples 17/17, 17/18 and 24/25; singles and lone parents at 24 and 25) and two families inside the para 17(3)(a) window, whose earnings cover the £17.10 test without para 18 but not with it.
Scope:
About half the generated families are drawn without earnings, and others may draw zero incomes.
On Income Support, all net earnings are disregarded.
Dates: zero in every year to 2026 and the same amounts from 2027 to 2035. In each of the seven amount files the first non-zero value takes effect on 2026-10-05, with zero before; the two age-threshold files start on 2026-10-05.
Mutation check: all 12 mutants are killed by both the YAML and the property suites at head
a3ee31aa(run_mutants.py, one mutant at a time, restoring the file after each).The first run, at
271018f5, had all 12 killed by the YAML suite but M5 (the earner condition made always true) surviving the properties. The no-earner property and the earner-mixed generator fixed that. Mixing in non-earners then left M1 surviving the properties, because no generated family fell inside the para 17(3)(a) window; the window examples fixed that.Tests
New YAML,
housing_benefit_specified_or_temporary_accommodation_disregard.yaml, 37 cases hand-computed from the text:Under-18 couples supply
is_claimant_or_partner, because the model otherwise treats a 16- or 17-year-old non-head as a dependent child.Local runs on this head: at
0857ba5c, after merging main: full YAML suite 2,171 passed; full pytest suite 2,781 passed, 34 skipped, 7 xfailed.9bf692a5anda3ee31aachange only the property file, whose 11 tests pass ata3ee31aa.Impact (Enhanced FRS 2024-25, real runs)
Each run used its own copy of the dataset:
origin/main325d585 against this branch, 2026-27 and 2027-28.No change. No benefit unit differs in Housing Benefit, its disregard or applicable income, household net income, or government spending, in either year. No dataset supplies the new input, which defaults to false (
policyengine-uk-datahas no such column). Model Housing Benefit for specified (supported) and temporary accommodation at any age #1911 tracks populating it.Mechanism check, not a costing. Set the input true for every benefit unit on this branch:
housing_benefit_eligible).New working-age claims in specified or temporary accommodation come with Abolish working-age Housing Benefit from 1 July 2026 (NI 1 October 2026) #1910.
Reviews
Independent reviews, all through
subfleet run --task review. The reports are in the author's review folder,~/reviews/hb-para18-2026-10-03/review/.271018f5review_standard.md271018f5review_hard.md0857ba5creview_delta_standard.md0857ba5creview_delta_hard.md9bf692a5review_delta2_standard.mda3ee31aareview_delta3_standard.mdHow the findings were answered:
@examples added.fiscal_year_blendnote is in each amount file.Axiom
axiom: SI 2006/213 Sch 4 para 18 and SR 2006/405 Sch 5 para 18 TheAxiomFoundation/rulespec-uk#375 queued. #375 already covers HB Sch 4 and carries the
pe-paritylabel. The extension comment gives:review_finding;Not in this PR
🤖 Generated with Claude Code