Repository navigation
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>
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>
…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>
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>
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>
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>
… 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>
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>
… 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>
…euse placement test - Two Income Support cases that must be ineligible: a couple with a child placed for adoption, and a placement aged 16 (para 2A needs a single claimant or lone parent, and a child under 16). - The is_couple guard case asserts only the renter's bedrooms. - income_support_eligible reuses is_child_or_young_person_placed_with_family (under 16) instead of re-deriving it; renamed has_placed_child. - is_placed_for_adoption documentation mentions IS Sch 1B para 2A. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Coordination note from #2062 (issue #2059), which makes every programme read one household head. This PR's Whichever of the two PRs lands second needs these readers switched:
#2062 adds a test, |
|
#2062 is now on This PR still adds formulas that read the raw flag:
Each needs to read the resolved head instead:
|
There was a problem hiding this comment.
Reviewed 1f3ce21a08e8341b25af524bc04d3c940ad844bd, scoped to this PR’s delta on #2010. Three blockers remain.
C1 — Count a non-dependant’s adoption placement in the host’s HB rooms. housing_benefit_LHA_allowed_bedrooms.py:52 excludes the placement globally. HB regulation21(3) limits that fiction to a placement with the claimant or partner; 13D(12) otherwise counts residents. A native host aged 60, daughter aged 32 and child aged six case, with the child placed only with the non-joint-tenant daughter, gives the host two rooms and HB £11,892.40. The source-backed three-room control gives HB £14,200.68: £2,308.28 more at the snapshot’s rates. Keep the host-relative exclusion separate from the daughter’s own claim. The manual’s foster-child passage does not establish this third-party adoption exclusion.
C2 — Preserve adoption responsibility in Scottish working-age CTR. The new exclusion at is_child_or_young_person_for_legacy_benefits.py:41 also reaches Scotland’s working-age CTR, whose regulation7(2),(8) excludes foster placements, not adoption placements. In 2025, for a 23-year-old Scottish adopter with a normally resident three-year-old, £11,000 earnings and a £1,800 CT bill, toggling only the adoption flag incorrectly removes lone-parent status. Modelled final CTR falls £286.30→£87.45 (−£198.85) at identical income. Use the scheme’s own responsibility rule while preserving the appropriate HB/IS exclusions. These figures demonstrate the new classification’s incidence, rather than certify the old stack’s whole allowance schedule.
C3 — Apply the statutory adopter qualification to the extra UC room. lha_renter_meets_foster_parent_condition.py:36–46 accepts any under-18 adoption placement. UC regulation2 imports 89(3)(a), which excludes close-relative/foster-parent adopters from this defined category. A close-relative prospective adopter who is not separately a foster parent gets the new room by code flow despite failing Sch4 paragraph12(4)(b). Apply that qualification separately from the general placement input. This finding is statutory/code-traced; no monetary or SAR effect is claimed.
Review COMPLETE: 68 repository tests and native final-award controls passed. The final CTC control also passed after correcting the diagnostic’s claim-premise setup; earlier harness failures are retained and are not reported as model defects. Local Core 3.33.2 differs from the lock’s 3.32.9, so no frozen full-suite certification is claimed. The draft and its parent-merge/retarget conditions remain.
|
Picking this up for the UK hub. Reply here if you're mid-change and I'll stop. Generated by Claude Code |
Resolves the 12 conflicts on #2010's rewritten size criteria: child_bedrooms is the arithmetic, the head-family tests read benunit_contains_household_head and uc_non_dependants_counted, and Housing Benefit counts occupiers through occupiers_total. #2016's own/other child masks, foster and adoption exclusions, additional bedrooms and Income Support paras 2 and 2A sit on top. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LwQq6FYBy8zKExK1r9z9fW
The legacy child flag now leaves out every child placed with the family, so housing_benefit_has_non_dependant and the severe disability premium's non-dependant test read such a child as a non-dependant. HB reg 3(2)(c) says otherwise; both now apply the placement test. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LwQq6FYBy8zKExK1r9z9fW
SSI 2021/249 reg 7(8) takes out only a child placed with a foster carer. On that branch the CTR flag reads the Universal Credit flag, which keeps a child placed for adoption, so the adopter stays a lone parent. Adds the review's family through final CTR, the pension-age contrast and a property over Scottish working-age families from 2022-23. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LwQq6FYBy8zKExK1r9z9fW
…y the UC adopter definition HB reg 21(3) names only a placement with the claimant or partner, so a child placed with a non-dependant, boarder or lodger occupies the claimant's dwelling (13D(12)) and counts in the host's size criteria and under 13D(3A)(a)(iii). The carer's own claim still leaves the child out. UC Sch 4 para 12(4)(b) applies to an adopter as reg 89(3)(a) defines it, which excludes a foster parent or close relative of the child. The new child-level input adopter_is_foster_parent_or_close_relative feeds only the foster parent condition, and so para 29(9A). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LwQq6FYBy8zKExK1r9z9fW
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LwQq6FYBy8zKExK1r9z9fW
The CTR scheme-selection reference now stops looked-after status at 18, as is_looked_after_child does. The sharers' no-op bedroom check covers households with no child outside the head's family, since non-dependants' children now share the head's children's rooms. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LwQq6FYBy8zKExK1r9z9fW
…count Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LwQq6FYBy8zKExK1r9z9fW
|
Generated by Claude Code |
|
Generated by Claude Code |
|
Generated by Claude Code |
|
Generated by Claude Code |
|
Ready for hub review Head: Commits:
Merge (12 conflicts)Resolved as the brief says. HB is rebuilt on Judgment call in the merge: #2010's HB couple test counted two claimant-or-partners as a couple. #2016's YAML case "An explicit single relationship stops the Housing Benefit couple rule" (review round 2) needs Other readers the merge broke:
I read the other legacy-flag readers: C1
New cases, each worked by hand in its comment:
UC for the review's family: foster Figures differ from the review. No BRMA in the model's tables for 2024-2028 has £228.70 or £273.09 as an HB C or D rate (I searched every BRMA). I used Maidstone 2026 with rent £300 a week and a working daughter (£20,000, 35 hours), so the non-dependant deduction is £105.20 a week. HB is £8,889.92 at 3 rooms against £5,359.64 at 2, £3,530.28 more. The review had £2,308.28. C2No code change was needed: the merge closes it. New cases in
The new property is invariant 7 in the CTR properties file. I read I updated the docstring of C3
Three YAML cases:
The property is invariant 7 in the LHA properties file. I updated Tests (at 9834880, or a04bc25 for the unchanged files)
DifferentialI generated 300 households (604 benefit units), Maidstone, 2025, with no placement, overnight-care or between-placements inputs and no children outside the head's family. Each household has a head family of 1-2 adults and up to 4 children aged 0-19, plus up to 2 adult-only sharer, boarder, lodger or non-dependant families. Both schemes' rooms match Mutations (scratch worktree at the head)All 8 were killed:
Skipped
Judgment calls
Hub documents are posted above: Generated by Claude Code |
juaristi22
left a comment
There was a problem hiding this comment.
Re-reviewed exact head 983488065231c5eaa10850196c9df25cfb17d2e2. C1, C2, C3 and A1 are resolved: the host's HB placement count, Scottish CTR responsibility and statutory UC adopter qualifier now have source-backed final-result checks, and the description correction has landed.
The actual description now reflects the adopted fixes and child-bound adopter input. The supplied extensions on rulespec-uk #406 and #411 were checked against the previously verified primary rules.
Review PARTIAL: 101 selected tests passed before the bounded runner timed out; 15 selected checks remain unfinished, and there are no hosted checks at this head. The close-relative control also passed through final UC and household net income.
This head still contains the older #2010 parent rather than its latest 2d362d2 fix. Approval remains withheld pending parent integration and required checks on the resulting head. The prior findings are closed; this does not approve a future integration tree.
Fixes #2011
Reproducer: policyengine_uk/tests/policy/baseline/finance/benefit/family/LHA_other_families_children_and_additional_bedrooms.yaml::A non-dependant's foster child raises the renter's final Housing Benefit
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); extension: TheAxiomFoundation/rulespec-uk#406 (comment)) | UC Sch 4 paras 12 and 29(5), (9A), with reg 2 and reg 89(3)(a) "adopter": TheAxiomFoundation/rulespec-uk#411 queued (extension: TheAxiomFoundation/rulespec-uk#411 (comment)) | 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); extension: TheAxiomFoundation/rulespec-uk#406 (comment))
Stacked on #2010 (base
lha-bedroom-young-people). Retarget tomainonce it merges.Problem
The model's 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
We read the provisions on legislation.gov.uk on 2026-10-01, and reg 2 and reg 89(3)(a) of the UC Regs 2013 and HB reg 21(3) again on 2026-11-02.
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)uc_non_dependants_counted)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)).housing_benefit_has_non_dependantand the HB severe disability premium's non-dependant test read the placement test too, so a child placed with the claimant does not become a non-dependant (HB reg 3(2)(c)).tax_free_childcare_qualifying_childexcludes a child placed for adoption (Childcare Payments (Eligibility) Regs 2015 reg 4(2)(d)). An adoption placement has a different effect in each scheme:youngest_child_age_for_legacy_benefits, which drives Income Support lone-parent eligibility, reads the legacy flag and so leaves out a child placed with the family (IS reg 16(4)).New inputs, all default false:
is_placed_for_adoption;adopter_is_foster_parent_or_close_relative, set on the child: the person the child lives with on an adoption placement is a foster parent or close relative of the child (UC reg 2, reg 89(3)(a)). Onlylha_renter_meets_foster_parent_conditionreads it;is_approved_foster_parent_without_placement;has_non_resident_overnight_carer.A user marks a foster child as a household member with the existing
is_looked_after_by_local_authority, whose documentation now describes 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 Scottish devolved equivalents (child disability payment, adult disability payment, Scottish adult DLA, pension age disability payment) also qualify under the law. The model has no variables for those, so they count only where the data records them as the DWP benefits. The same holds for the para 29(5) list.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. A local authority can look after only a child, a person under 18 (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_eligiblenow includes Income Support 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_childrentakes masks for the family's own children and other families' children, and a mask of the families that count the others; #2010'schild_bedroomsdoes the arithmetic for both schemes.Judgment calls
adopter_is_foster_parent_or_close_relativeon the child. Such a person still meets the condition as a foster parent of another child, or within 12 months after their last placement ended or after approval (para 12(4)(a), (5)). In reg 4A(1)(c), the Secretary of State writes of the child being "placed for adoption", without the defined term, so the child still counts. In HB reg 21(3) and the HB definition of a qualifying parent or carer, the Secretary of State doesn't use the term either, so HB doesn't change.num_bedrooms, and the data lacks it), so it assumes the dwelling has one.is_lha_foster_child). A looked-after 16- or 17-year-old placed with the renter therefore counts as 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. Its separate age-16 rule catches a 16-year-old. HB treats them the same way; on this reading, UC doesn't. 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 (2017-18).Invariants
test_lha_bedroom_young_people_properties.pyholds 7 Hypothesis properties, with 25 derandomized examples each, plus explicit examples.Monotonicity. Adding a person aged 16 to 19 never lowers any family's UC or HB bedrooms. This holds with the claimant and partner supplied or inferred.
Exact effect of a person aged 16 to 19. This extends Give benefit-unit members aged 16 or over a bedroom under LHA rules #2010's property:
Children. Adding a child under 16 who is neither fostered nor placed for adoption raises each family's bedrooms by 0 or 1, under each scheme.
Placed children. Adding a child under 16 placed with a family as a foster child or for adoption gives that family one more bedroom under each scheme if it did not already meet the foster condition, and none otherwise. If that family is a non-dependant's, boarder's or lodger's, each family liable for the rent gains 0 or 1 HB bedrooms. A foster child changes no other family's UC bedrooms; a child placed for adoption adds 0 or 1 to the adopter's family and to the claim counting a non-dependant adopter's household. No joint tenant's bedrooms change.
Reference count. Each family's bedrooms and additional bedrooms equal the test's own count.
child_bedroomsagainst the optimum.In-unit non-dependants (Give benefit-unit members aged 16 or over a bedroom under LHA rules #2010's property). Every benefit-unit member aged 16 or over who is not the claimant or partner, a UC qualifying young person, the household head or the family's foster child has a UC bedroom of their own, and making them qualifying young persons the renter is responsible for leaves every family's UC bedrooms unchanged.
The close-relative input. Setting
adopter_is_foster_parent_or_close_relativeon every member takes awaylha_renter_meets_foster_parent_conditionwhere, and only where, an adoption placement was the family's only route to it, lowers that family's UC bedrooms by one, and leaves UC responsibility, the HB placement test, the qualifying parent or carer and every family's HB bedrooms unchanged.test_council_tax_reduction_young_person_properties.pyadds:8. Scottish working-age adoption placements. From 2022-23, placing any member of a Scottish working-age family for adoption leaves the CTR child flag, lone-parent status and the applicable amount unchanged.
On 300 generated households (604 benefit units) in Maidstone in 2025, with no placement, overnight-care or between-placements inputs and no children outside the head's family,
LHA_allowed_bedroomsandhousing_benefit_LHA_allowed_bedroomsagree with #2010's d8c2249 for every benefit unit. Each household has a head family of 1-2 adults aged 20-85 and up to 4 children aged 0-19 (those aged 16 or over with random education and benefits), and up to 2 adult-only sharer, boarder, lodger or non-dependant families.We ran each mutation as one change to a copy of the branch, against the named tests.
At 1f3ce21 (the earlier head), each made at least one property fail:
At 1f3ce21, YAML cases also killed four more mutations: "placed" without the Child Benefit young-person test; a non-dependant's foster child's overnight care counting under UC; reverting (A1)(c) for a looked-after qualifying young person; and a looked-after claimant giving the foster room (a case with a 17-year-old looked-after claimant pins it; the property generator supplies claimant roles, so the properties cannot reach it).
At this head:
LHA_other_families_…,LHA_young_person_bedroom,council_tax_reduction_young_person)othersdrops placed children againownkeeps placed children~placedback inhousing_benefit_LHA_additional_bedroomsadopter_is_foster_parent_or_close_relativeis_child_or_qualifying_young_person_for_universal_credithousing_benefit_has_non_dependantTests
At 9834880 (this head):
policyengine-core test … -c policyengine_uk: 97 passed.LHA_other_families_children_and_additional_bedrooms.yaml: 44 cases, including a renter of 60 whose non-dependant daughter has a child placed with her, as a foster child and for adoption (HB[3, 2]; UC[2, 2]and[3, 3]), both through final Housing Benefit, a looked-after young person of 17 placed with a non-dependant, a child placed with a lodger, a child placed with a joint tenant, a non-dependant's placed child who needs overnight care (HB[4, 3]), three close-relative adopter cases, and a placed child who is not an HB non-dependant.LHA_young_person_bedroom.yaml: 11. The case of a looked-after qualifying young person in a non-dependant's family now expects the carer's foster room:[2, 2], categories[C, C].LHA_claimant_composition.yaml: 17.income_support.yaml: 7.tax_free_childcare_qualifying_child.yaml: 5.council_tax_reduction_young_person.yaml: 13, including Cases 11-13: in Scotland's working-age scheme, an adopter of 23 with a child of 3 has the same lone-parent status, applicable amount (£4,786.60) and final CTR (£286.40) with and without the adoption placement, and under Scotland's pension-age scheme the child placed for adoption drops out.pytest … -n 4:test_lha_bedroom_young_people_properties.py: 7 passed.test_child_and_adult_definitions_properties.py: 18 passed.test_means_test_income_properties.py: 2 passed.test_rent_of_sharers_boarders_and_lodgers_properties.py: 6 passed. Its no-op bedroom check now covers households with no child outside the head's family.test_council_tax_reduction_young_person_properties.py: 7 passed. Its scheme-selection reference now stops looked-after status at 18.test_household_head_agreement_properties.py: 3 passed, with the two additional-bedroom variables added to its outputs.policyengine_uk/tests/code_health: 3,102 passed.ruff format --check,ruff checkandruff check --select F811,F821 policyengine_uk(0.17.2): all pass.main.The final-HB cases use Maidstone in 2026, where the rent of £300 a week exceeds the D rate: the renter's HB at three bedrooms, £8,889.92, exceeds the HB at two, £5,359.64, by £3,530.28.
Impact (real microsimulation)
We ran these on #2010's earlier head and this PR's earlier head: base 49866c2, branch 500424e (084664c and 9311e4e give identical aggregates). We haven't rerun them at this head; a rerun needs the dataset. They use the enhanced FRS 2024-25 as released (policyengine-uk-data 1.57.4,
enhanced_frs_2024_25.h5, sha25603fe15e4…), for 2026.We identify a survey household by its rent and its members' ages, which every enhanced-FRS record shares with its FRS 2024-25 source household. We suppress cells built from fewer than 10 survey households, and suppress sub-cells together when any one of them falls short, so no one can recover a hidden cell by subtraction.
At 500424e against 49866c2, we estimate:
LHA_cap, which the model computes for every private renter whether or not they claim) rises by £14.7m net.Figures this head can move, pending a rerun:
uc_non_dependants_counted,is_resolved_household_head), HB occupiers for sharers' claims, and the mergedmain.uc_non_dependants_countedrather than the household head's family, so a household whose head does not claim UC can give them to a sharer's claim.is_couple) as well as having two claimants or partners.Known gaps (not changed here)
lha-disabled-cannot-share-roomsadds them.hb-joint-tenant-shared-non-dependant(Count a non-dependant shared by joint tenants in each tenant's Housing Benefit size criteria #2029) addresses apportionment.is_resolved_household_head), even if a lodger.Documentation
The variables'
documentationfields describe the rules. No docs notebook covers the size criteria.🤖 Generated with Claude Code