Conversation
…bedrooms in the LHA size criteria Universal Credit (UC Regs 2013 Sch 4 paras 9-12): the household head's non-dependants' children are in the extended benefit unit and share rooms with the renter's children; foster children are in no one's extended benefit unit; foster parents and adopters with a child placed (para 12(4)-(5)) and renters whose household includes someone with non-resident overnight care (para 12(A1), (3)) get one additional bedroom for each condition (12(9)). Foster parents are excepted from the shared accommodation rate (29(9A)), and armed forces independence payment counts in the para 29(5) exception. Housing Benefit (HB Regs 2006 and HB (SPC) Regs 2006 reg 13D): the children of non-dependants, boarders and lodgers are occupiers (13D(12)); a child placed with the claimant as a foster child or for adoption is not (reg 21(3)); a qualifying parent or carer and a person who requires overnight care give one additional bedroom each (13D(3A)-(3B)) and are not young individuals. New inputs: is_placed_for_adoption, is_approved_foster_parent_without_placement, has_non_resident_overnight_carer. Fixes #2011 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
HB reg 21(3) names only children placed with the claimant or partner, but DWP treats foster children as not occupying the dwelling (LHA Guidance Manual para 2.033; HB circular A21/2013 para 22), as Universal Credit does (UC Sch 4 para 9(2)(g)). The household head's Housing Benefit size criteria and overnight-care bedroom now leave out a child placed with a non-dependant, boarder or lodger as a foster child or for adoption. Adds a YAML case and tightens the foster-child Hypothesis property to an exact effect on every family. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Oct 1, 2026
HB Regs 2006 reg 13D(3)(a) puts any occupier couple in "a couple" (one bedroom; LHA Guidance Manual para 2.012), so a non-dependant's, boarder's or lodger's couple adds one bedroom to the household head's HB size criteria, not two. Universal Credit is unchanged: each non-dependant who is not a child has a bedroom (UC Sch 4 para 10(1)(c); ADM F3112 note 1). Reported by the disabled-rooms session (chip task_cc724597). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Childcare Payments (Eligibility) Regs 2015 reg 4(2)(d): no one is responsible for a child placed for adoption by an adoption agency in the home of a person proposing to adopt them. The new is_placed_for_adoption input is documented for each scheme it touches: Universal Credit and Pension Credit treat the adopter as responsible (UC reg 4A(1)(c); SPC Sch IIA para 4(3)(c)); HB, the legacy schemes and English pensioner CTR do not count the child in the household; CTC's rule 4 case B depends on local authority payments and is not modelled. Changelog covers the HB occupier couple rule too. Found by the first review attempt's probes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Oct 2, 2026
Open
…nt test predicates - HB occupier couple: count the half rooms only when both members are counted, so a benefit unit flagged as a couple without two adults no longer produces a fractional bedroom (and an enum error downstream). - UC: read "child" as under 18 for foster children throughout (is_lha_foster_child; parameter gov.dwp.LHA.foster_child_age_limit): a looked-after 16- or 17-year-old placed with the renter has no room of their own, and their overnight care counts under para 12(A1)(c). - Overnight care beyond the renter or HB claimant and partner applies from 1 April 2017 (SI 2017/213; parameter overnight_care_beyond_claimant). - youngest_child_age_for_legacy_benefits leaves out a child placed with the family (IS reg 16(4)). - Property tests derive the added person's status from the inputs (UC reg 5, Child Benefit QYP, looked after under 18) instead of the model, bias the generator towards looked-after young people, and give the added person overnight care in the reference property. - YAML: 13 new cases pinning the reviewer's surviving mutants and probes, a case with an inconsistent couple flag, and a 2016 date-gate case; the fostering-couple case now uses ages that detect counting the foster child; corrected citations. - Documentation: Scottish working-age CTR adoption gap, Scottish devolved disability benefits, HB 13D(3A)(a)(iii) reading, reg 21(3)(a) and s.22C, and the overnight-carer and adoption inputs. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MaxGhenis
added a commit
that referenced
this pull request
Oct 2, 2026
Follows #2016's reading of "foster child" (UC Sch 4 para 9(3), with the reg 2 foster parent definition) as a looked-after person under 18 placed with the renter (is_lha_foster_child), so a looked-after 16- or 17-year-old who is not a qualifying young person is excluded by para 9(2)(c) rather than counted as a non-dependant. The WRA 2012 s.40 reading (a child is under 16) would count them; the code records both. HB is unchanged: such a person is not a young person (reg 19), so reg 21(3) does not apply and they are a non-dependant. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MaxGhenis
added a commit
that referenced
this pull request
Oct 2, 2026
Keeps #2016's paired couple weights and April 2017 overnight-care gate, routes the weights through housing_benefit_other_occupiers, and updates the #2016 independent reference so a non-dependant counts for every joint occupier by default (sharers included) and boarders and lodgers for the household head only. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…tering - is_looked_after_child: the looked-after flag applies only under 18 (Children Act 1989 ss.22(1), 105(1)). It replaces the raw flag in the UC, CTC and Pension Credit child tests and in the legacy placement test, so a flagged 18- or 19-year-old qualifying young person keeps their UC room and gives no HB carer room. The looked-after age limit moves to household.demographic.looked_after_child_age_limit. - HB occupier couples need is_couple as well as two counted claimant or partner members, so relation_type SINGLE is respected again. - Income Support Sch 1B para 2: a single claimant or lone parent with whom a child is placed by a local authority is a prescribed category. - YAML: a looked-after 17-year-old claimant (pins the claimant-guard mutant), a looked-after 18-year-old with a single renter of 30, a non-dependant pair entered as single, two IS para 2 cases. - Property predicates apply the under-18 limit and accept any non-tertiary education; P5 renamed to a reference count. The child-definition property reference applies the same under-18 limit. - Documentation: HB reg 19(2)(c) eligible children; looked-after flag under 18 only. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MaxGhenis
added a commit
that referenced
this pull request
Oct 2, 2026
Follows #2016's reading of "foster child" (UC Sch 4 para 9(3), with the reg 2 foster parent definition) as a looked-after person under 18 placed with the renter (is_lha_foster_child), so a looked-after 16- or 17-year-old who is not a qualifying young person is excluded by para 9(2)(c) rather than counted as a non-dependant. The WRA 2012 s.40 reading (a child is under 16) would count them; the code records both. HB is unchanged: such a person is not a young person (reg 19), so reg 21(3) does not apply and they are a non-dependant. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MaxGhenis
added a commit
that referenced
this pull request
Oct 2, 2026
… deduction code Follows #2017 at 2d54628 (review r2 F3/F4): a non-dependant normally resides with each joint occupier whichever family they belong to (HB reg 3(1), (4); reg 74(5)), including a joint tenant's own adult son and a lodger's adult son (reg 3(2)(e)(i) excludes only the person liable to pay the claimant). A boarder or lodger keeps only their own family's. Both flags now count the same people the deduction formulas charge, so a deduction always implies a non-dependant, including for a family with no claimant or partner (review r1 finding 3). "Joint renter" in the UC docstring becomes "sharer of the rent" (in UC Sch 4 it means a joint claimant; review r1 finding 6). New YAML cases: a lodger's adult son (HB non-dependant of the householder and the lodger; UC counts him in the lodger's claim only, para 9(2)(f)), and a looked-after 16-year-old school leaver with a young single HB claimant (C, not A; #2016 review r2 N9). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MaxGhenis
added a commit
that referenced
this pull request
Oct 2, 2026
Follows #2016's reading of "foster child" (UC Sch 4 para 9(3), with the reg 2 foster parent definition) as a looked-after person under 18 placed with the renter (is_lha_foster_child), so a looked-after 16- or 17-year-old who is not a qualifying young person is excluded by para 9(2)(c) rather than counted as a non-dependant. The WRA 2012 s.40 reading (a child is under 16) would count them; the code records both. HB is unchanged: such a person is not a young person (reg 19), so reg 21(3) does not apply and they are a non-dependant. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MaxGhenis
added a commit
that referenced
this pull request
Oct 2, 2026
… deduction code Follows #2017 at 2d54628 (review r2 F3/F4): a non-dependant normally resides with each joint occupier whichever family they belong to (HB reg 3(1), (4); reg 74(5)), including a joint tenant's own adult son and a lodger's adult son (reg 3(2)(e)(i) excludes only the person liable to pay the claimant). A boarder or lodger keeps only their own family's. Both flags now count the same people the deduction formulas charge, so a deduction always implies a non-dependant, including for a family with no claimant or partner (review r1 finding 3). "Joint renter" in the UC docstring becomes "sharer of the rent" (in UC Sch 4 it means a joint claimant; review r1 finding 6). New YAML cases: a lodger's adult son (HB non-dependant of the householder and the lodger; UC counts him in the lodger's claim only, para 9(2)(f)), and a looked-after 16-year-old school leaver with a young single HB claimant (C, not A; #2016 review r2 N9). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… single case - Income Support Sch 1B para 2A: a single claimant or lone parent with whom a child is placed for adoption by an adoption agency is a prescribed category, so leaving the placed child out of the para 1 youngest-child test no longer removes eligibility. Two YAML cases. - The relation_type SINGLE YAML case now marks the parent and son's roles explicitly, so it asserts the legally correct [3, 2]; a separate case pins the is_couple guard on the renter's count. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #2011
Stacked on #2010 (base
lha-bedroom-young-people), which is stacked on #2006 and #1896. Retarget tomainonce they merge.Problem
The LHA size criteria had three gaps:
bedrooms_for_childrencounted only the claimant's own benefit unit, so a grandchild living with their parent in the renter's home never had a room. Under Housing Benefit, neither did a boarder's or lodger's child.lha_renter_has_non_dependantalso counted a foster child under 16 as a non-dependant, which took a single foster parent under 35 out of the shared accommodation rate for the wrong reason.The law, and how DWP applies it
All provisions were read on legislation.gov.uk on 2026-10-01. An independent legal research memo checked each reading against DWP guidance and case law; its verdicts are below.
Universal Credit (UC Regs 2013 Sch 4):
Housing Benefit (HB Regs 2006 and HB (SPC) Regs 2006, reg 13D):
Change
LHA_allowed_bedrooms)housing_benefit_LHA_allowed_bedrooms)lha_renter_meets_foster_parent_condition)is_housing_benefit_qualifying_parent_or_carer)New variables:
LHA_additional_bedrooms,housing_benefit_LHA_additional_bedrooms.meets_lha_overnight_care_condition,lha_renter_meets_foster_parent_condition,is_housing_benefit_qualifying_parent_or_carer.is_child_or_young_person_placed_with_family: the reg 21(3) placement test.is_child_or_young_person_for_legacy_benefitsnow uses it, so children placed for adoption also leave the legacy household (IS reg 16(4), JSA reg 78(4), ESA reg 156(5), HB reg 21(3)).tax_free_childcare_qualifying_childexcludes a child placed for adoption (Childcare Payments (Eligibility) Regs 2015 reg 4(2)(d)). Each scheme treats an adoption placement differently:youngest_child_age_for_legacy_benefits, which drives Income Support lone-parent eligibility, now also leaves out a child placed with the family (IS reg 16(4)).New inputs, all default false:
is_placed_for_adoption;is_approved_foster_parent_without_placement;has_non_resident_overnight_carer.A foster child is a household member with the existing
is_looked_after_by_local_authority, now documented for that use.New parameters:
gov.dwp.LHA.overnight_care_benefitslists the qualifying benefits: attendance allowance, AFIP, DLA care at the middle or highest rate, and the PIP daily living component. The law also lists the Scottish devolved equivalents (child disability payment, adult disability payment, Scottish adult DLA, pension age disability payment). The model has no variables for those, so they count only where the data records them as the DWP benefits. The same is true of the para 29(5) list, a gap that predates this PR.household.demographic.looked_after_child_age_limit(18).gov.dwp.LHA.overnight_care_beyond_claimant: false before 1 April 2017, true from then (SI 2017/213). Before that date only the renter, or the HB claimant and partner, could meet the overnight care condition.New variables:
is_looked_after_child:is_looked_after_by_local_authorityand under 18. Only a child, a person under 18, can be looked after (Children Act 1989 ss.22(1) and 105(1)), so the flag has no effect at 18 or over.is_child_or_young_person_placed_with_family.is_lha_foster_child: a looked-after child placed with the renter (see judgment call 5).Income Support:
income_support_eligiblenow includes Sch 1B paras 2 and 2A: "a single claimant or a lone parent with whom a child is placed" by a local authority, or placed for adoption by an adoption agency. Without them, leaving placed children out of the youngest-child test would have taken eligibility from a lone parent whose only child under 5 is a foster or adoptive placement.bedrooms_for_childrenis split into an arithmeticrooms_for_childrenand a wrapper that takes masks for the family's own children and other families' children.Judgment calls for review
num_bedroomsis unused and not in the data), so it assumes there is one.is_lha_foster_child). A looked-after 16- or 17-year-old placed with the renter is therefore a foster child: they have no room of their own, the renter has the foster room, and their overnight care counts.lha_renter_has_non_dependantstill counts a looked-after 17-year-old not in education as a non-dependant. A 16-year-old is caught by its separate age-16 rule. That is right for HB and, on this reading, wrong for UC. Apply each scheme's own non-dependant test to the LHA shared accommodation rate #2030 splits that variable into UC and HB versions and excludesis_lha_foster_childfrom the UC one.govparameters at 30 April of each year (its fiscal-year convention), so the extension applies from model year 2017, which is 2017-18.Invariants
The Hypothesis properties are in
test_lha_bedroom_young_people_properties.py: 5 properties, 25 derandomized examples each.rooms_for_childrenagainst the optimum. The review separately checked it exhaustively for every composition of up to 24 children.Mutation check. Each mutation below was applied to a scratch copy of the branch, and each makes at least one property fail:
The round-1 review found four mutants that survived the earlier tests:
The round-2 review ran real mutant copies against the YAML file. The first three each fail at least one case. The fourth is now pinned by a 17-year-old looked-after claimant case. The property generator supplies claimant roles, so the properties cannot reach that fourth mutant.
Tests
LHA_other_families_children_and_additional_bedrooms.yaml: 35 cases. Expectations are hand-derived from the law and guidance cited in each case's comments.LHA_young_person_bedroom.yaml: the looked-after qualifying young person case expects the carer's foster room: UC 1 → 2 bedrooms, category B → C. HB stays at 2, now as the carer's room rather than the young person's. The comment states the under-18 reading (judgment call 5).tax_free_childcare_qualifying_child.yaml: a child placed for adoption is not a qualifying child.income_support.yaml: four cases. A single foster carer, and a lone parent with an older own child and a young foster child, are in IS Sch 1B para 2. The same two households with an adoption placement instead are in para 2A.policyengine-core test policyengine_uk/tests/policy -c policyengine_uk: 1,547 passed.policyengine-core test policyengine_uk/tests/policy -c policyengine_uk: 1,544 passed.test_child_and_adult_definitions_properties.py: 9 passed. Its reference now applies the under-18 limit to the looked-after flag.test_means_test_income_properties.pyandtest_rent_of_sharers_boarders_and_lodgers_properties.py: 7 passed.pytest policyengine_uk/tests --ignore=policyengine_uk/tests/microsimulation, property file run separately): 2,052 passed, 19 skipped. That includestest_oldest_person_is_head_and_gets_rent, which Give benefit-unit members aged 16 or over a bedroom in the LHA size criteria #2010 reported failing on Give sharers, boarders and lodgers their own rent, tenure and LHA category #2006's earlier head. It was not re-run in full at later heads, to keep host load down; the test files covering what the later commits change were run as above.ruff formatandruff check: clean.Impact (real microsimulation)
Data: the enhanced FRS 2024-25 as released (policyengine-uk-data 1.57.4,
enhanced_frs_2024_25.h5, sha25603fe15e4…), year 2026. Base is #2010's head, 49866c2; the branch is 500424e (084664c and 9311e4e give identical aggregates). The head, e5c36dc, changes only Income Support eligibility for foster and adoption placements, which are not in the data, and YAML tests. Both runs use the same dataset.A survey household is identified by its rent and its members' ages, which every enhanced-FRS record shares with its FRS 2024-25 source household. Cells built from fewer than 10 survey households are suppressed. Sub-cells are suppressed together when any one of them is below the threshold, so no hidden cell can be recovered by subtraction.
LHA_cap, computed for every private renter whether or not they claim) rises by £14.7m net.Known gaps (not changed here)
lha-disabled-cannot-share-rooms.hb-joint-tenant-shared-non-dependant(Count a non-dependant shared by joint tenants in each tenant's Housing Benefit size criteria #2029) changes that.Documentation
The variables'
documentationfields describe the rules. No docs notebook covers the size criteria.axiom: uk/regulations/uksi/2013/376/schedule/4/paragraph/10 (UC Sch 4 para 10(1)(d)-(f), (3)(b)) encoded-correct, companion cases in TheAxiomFoundation/rulespec-uk#412 | UC Sch 4 para 9(2)(c), (g) (non-dependants' children, foster children): TheAxiomFoundation/rulespec-uk#406 queued (addendum: TheAxiomFoundation/rulespec-uk#406 (comment)) | UC Sch 4 paras 12 and 29(5), (9A): TheAxiomFoundation/rulespec-uk#411 queued | HB Regs 2006 / HB (SPC) Regs 2006 regs 2(1), 13D(3)(c)-(e), (3A)-(3B), (12), 21(3): TheAxiomFoundation/rulespec-uk#406 and #357 queued (addenda: TheAxiomFoundation/rulespec-uk#406 (comment), TheAxiomFoundation/rulespec-uk#357 (comment))
🤖 Generated with Claude Code