From 66281ec93b4172423b8ecb29d324966986bd24f0 Mon Sep 17 00:00:00 2001 From: Anthony Volk <14987227+anth-volk@users.noreply.github.com> Date: Fri, 9 Oct 2026 04:49:29 +0400 Subject: [PATCH 1/3] Add protected Housing Benefit family premiums --- changelog.d/hb-family-premium.added.md | 1 + .../premiums/family/amount.yaml | 55 +++++ .../family/lone_parent_protected_amount.yaml | 12 + .../premiums/family/new_claim_end.yaml | 21 ++ .../housing_benefit_family_premium.yaml | 214 ++++++++++++++++++ .../housing_benefit_applicable_amount.py | 5 +- .../housing_benefit_family_premium.py | 53 +++++ ...housing_benefit_family_premium_category.py | 33 +++ 8 files changed, 393 insertions(+), 1 deletion(-) create mode 100644 changelog.d/hb-family-premium.added.md create mode 100644 policyengine_uk/parameters/gov/dwp/housing_benefit/premiums/family/amount.yaml create mode 100644 policyengine_uk/parameters/gov/dwp/housing_benefit/premiums/family/lone_parent_protected_amount.yaml create mode 100644 policyengine_uk/parameters/gov/dwp/housing_benefit/premiums/family/new_claim_end.yaml create mode 100644 policyengine_uk/tests/policy/baseline/finance/benefit/family/housing_benefit/housing_benefit_family_premium.yaml create mode 100644 policyengine_uk/variables/gov/dwp/housing_benefit/housing_benefit_family_premium.py create mode 100644 policyengine_uk/variables/gov/dwp/housing_benefit/housing_benefit_family_premium_category.py diff --git a/changelog.d/hb-family-premium.added.md b/changelog.d/hb-family-premium.added.md new file mode 100644 index 0000000000..a2a0ec3d66 --- /dev/null +++ b/changelog.d/hb-family-premium.added.md @@ -0,0 +1 @@ +Added protected Housing Benefit family premiums with jurisdiction-specific closure dates and an explicit pre-assessed historical category. diff --git a/policyengine_uk/parameters/gov/dwp/housing_benefit/premiums/family/amount.yaml b/policyengine_uk/parameters/gov/dwp/housing_benefit/premiums/family/amount.yaml new file mode 100644 index 0000000000..f2958d3b17 --- /dev/null +++ b/policyengine_uk/parameters/gov/dwp/housing_benefit/premiums/family/amount.yaml @@ -0,0 +1,55 @@ +description: Weekly Housing Benefit ordinary family premium for legally protected awards. +values: + 2015-04-01: + value: 17.45 + metadata: + reference: + title: Housing Benefit 2015 family premium rate + href: https://www.legislation.gov.uk/uksi/2015/457/article/17/made + 2020-04-01: + value: 17.6 + metadata: + reference: + title: Housing Benefit 2020 family premium rate + href: https://www.gov.uk/government/publications/benefit-and-pension-rates-2020-to-2021/benefit-and-pension-rates-2020-to-2021 + 2021-04-01: + value: 17.65 + metadata: + reference: + title: Housing Benefit 2021 family premium rate + href: https://www.gov.uk/government/publications/benefit-and-pension-rates-2021-to-2022/benefit-and-pension-rates-2021-to-2022 + 2022-04-01: + value: 17.85 + metadata: + reference: + title: Housing Benefit 2022 family premium rate + href: https://www.gov.uk/government/publications/benefit-and-pension-rates-2023-to-2024/benefit-and-pension-rates-2023-to-2024 + 2023-04-01: + value: 18.53 + metadata: + reference: + title: Housing Benefit 2023 family premium rate + href: https://www.gov.uk/government/publications/benefit-and-pension-rates-2023-to-2024/benefit-and-pension-rates-2023-to-2024 + 2024-04-01: + value: 19.15 + metadata: + reference: + title: Housing Benefit 2024 family premium rate + href: https://www.gov.uk/government/publications/benefit-and-pension-rates-2024-to-2025/benefit-and-pension-rates-2024-to-2025 + 2025-04-01: + value: 19.48 + metadata: + reference: + title: Housing Benefit 2025 family premium rate + href: https://www.gov.uk/government/publications/benefit-and-pension-rates-2026-to-2027/proposed-benefit-and-pension-rates-2026-to-2027 + 2026-04-01: + value: 20.22 + metadata: + reference: + title: Housing Benefit 2026 family premium rate + href: https://www.gov.uk/government/publications/benefit-and-pension-rates-2026-to-2027/proposed-benefit-and-pension-rates-2026-to-2027 +metadata: + unit: currency-GBP + period: week + label: Housing Benefit protected family premium + uprating: gov.benefit_uprating_cpi diff --git a/policyengine_uk/parameters/gov/dwp/housing_benefit/premiums/family/lone_parent_protected_amount.yaml b/policyengine_uk/parameters/gov/dwp/housing_benefit/premiums/family/lone_parent_protected_amount.yaml new file mode 100644 index 0000000000..e9e3f0458f --- /dev/null +++ b/policyengine_uk/parameters/gov/dwp/housing_benefit/premiums/family/lone_parent_protected_amount.yaml @@ -0,0 +1,12 @@ +description: Weekly Housing Benefit family premium for working-age lone-parent awards satisfying the pre-April 1998 protection conditions. +values: + 2015-04-01: 22.20 +metadata: + unit: currency-GBP + period: week + label: Housing Benefit historical lone-parent family premium + reference: + - title: GB working-age Schedule 3 paragraph 3, before abolition, saved by SI 2015/1857 + href: https://www.legislation.gov.uk/uksi/2006/213/schedule/3/part/2/2015-04-06 + - title: NI working-age Schedule 4 paragraph 3, before abolition, saved by SR 2016/310 + href: https://www.legislation.gov.uk/nisr/2006/405/schedule/4/part/II/2015-04-06 diff --git a/policyengine_uk/parameters/gov/dwp/housing_benefit/premiums/family/new_claim_end.yaml b/policyengine_uk/parameters/gov/dwp/housing_benefit/premiums/family/new_claim_end.yaml new file mode 100644 index 0000000000..d324b71d45 --- /dev/null +++ b/policyengine_uk/parameters/gov/dwp/housing_benefit/premiums/family/new_claim_end.yaml @@ -0,0 +1,21 @@ +description: Legal closure dates for Housing Benefit family premiums on new claims, written as YYYYMMDD numbers, with existing qualifying awards protected. +great_britain: + description: GB new-claim closure date. + values: + 2015-01-01: 20160501 + metadata: + unit: date + label: Housing Benefit family premium GB new-claim closure date + reference: + title: SI 2015/1857 regulations 1, 2 and 4 + href: https://www.legislation.gov.uk/uksi/2015/1857/made +northern_ireland: + description: NI new-claim closure date. + values: + 2015-01-01: 20160905 + metadata: + unit: date + label: Housing Benefit family premium NI new-claim closure date + reference: + title: SR 2016/310 regulations 1, 3 and 5 + href: https://www.legislation.gov.uk/nisr/2016/310/made diff --git a/policyengine_uk/tests/policy/baseline/finance/benefit/family/housing_benefit/housing_benefit_family_premium.yaml b/policyengine_uk/tests/policy/baseline/finance/benefit/family/housing_benefit/housing_benefit_family_premium.yaml new file mode 100644 index 0000000000..eac1cb701a --- /dev/null +++ b/policyengine_uk/tests/policy/baseline/finance/benefit/family/housing_benefit/housing_benefit_family_premium.yaml @@ -0,0 +1,214 @@ +# Cases: none; ordinary; historical lone parent; no longer lone parent; no child. +- name: ENGLAND pension regime false protected family categories + period: 2026 + absolute_error_margin: 0.02 + input: + country: [ENGLAND, ENGLAND, ENGLAND, ENGLAND, ENGLAND] + housing_benefit_family_premium_category: [NONE, ORDINARY_PROTECTED, HISTORICAL_LONE_PARENT_PROTECTED, HISTORICAL_LONE_PARENT_PROTECTED, ORDINARY_PROTECTED] + is_child_or_young_person_for_legacy_benefits: [true, true, true, true, false] + is_lone_parent: [false, true, true, false, true] + housing_benefit_pension_age_regulations_apply: [false, false, false, false, false] + housing_benefit_eligible: [true, true, true, true, true] + eldest_claimant_or_partner_age: [40, 40, 40, 40, 40] + is_single_person: [true, false, false, true, false] + is_couple: [false, false, false, false, false] + benefits_premiums: [100, 100, 100, 100, 100] + output: + housing_benefit_family_premium: [0, 1051.44, 1154.3999999999999, 1051.44, 0] + housing_benefit_applicable_amount: [5068.599999999999, 6120.04, 6223, 6120.04, 5068.599999999999] + +# Cases: none; ordinary; historical lone parent; no longer lone parent; no child. +- name: ENGLAND pension regime true protected family categories + period: 2026 + absolute_error_margin: 0.02 + input: + country: [ENGLAND, ENGLAND, ENGLAND, ENGLAND, ENGLAND] + housing_benefit_family_premium_category: [NONE, ORDINARY_PROTECTED, HISTORICAL_LONE_PARENT_PROTECTED, HISTORICAL_LONE_PARENT_PROTECTED, ORDINARY_PROTECTED] + is_child_or_young_person_for_legacy_benefits: [true, true, true, true, false] + is_lone_parent: [false, true, true, false, true] + housing_benefit_pension_age_regulations_apply: [true, true, true, true, true] + housing_benefit_eligible: [true, true, true, true, true] + eldest_claimant_or_partner_age: [75, 75, 75, 75, 75] + is_single_person: [true, false, false, true, false] + is_couple: [false, false, false, false, false] + benefits_premiums: [100, 100, 100, 100, 100] + output: + housing_benefit_family_premium: [0, 1051.44, 1051.44, 1051.44, 0] + housing_benefit_applicable_amount: [13412, 14463.440000000002, 14463.440000000002, 14463.440000000002, 13412] + +# Cases: none; ordinary; historical lone parent; no longer lone parent; no child. +- name: NORTHERN_IRELAND pension regime false protected family categories + period: 2026 + absolute_error_margin: 0.02 + input: + country: [NORTHERN_IRELAND, NORTHERN_IRELAND, NORTHERN_IRELAND, NORTHERN_IRELAND, NORTHERN_IRELAND] + housing_benefit_family_premium_category: [NONE, ORDINARY_PROTECTED, HISTORICAL_LONE_PARENT_PROTECTED, HISTORICAL_LONE_PARENT_PROTECTED, ORDINARY_PROTECTED] + is_child_or_young_person_for_legacy_benefits: [true, true, true, true, false] + is_lone_parent: [false, true, true, false, true] + housing_benefit_pension_age_regulations_apply: [false, false, false, false, false] + housing_benefit_eligible: [true, true, true, true, true] + eldest_claimant_or_partner_age: [40, 40, 40, 40, 40] + is_single_person: [true, false, false, true, false] + is_couple: [false, false, false, false, false] + benefits_premiums: [100, 100, 100, 100, 100] + output: + housing_benefit_family_premium: [0, 1051.44, 1154.3999999999999, 1051.44, 0] + housing_benefit_applicable_amount: [5068.599999999999, 6120.04, 6223, 6120.04, 5068.599999999999] + +# Cases: none; ordinary; historical lone parent; no longer lone parent; no child. +- name: NORTHERN_IRELAND pension regime true protected family categories + period: 2026 + absolute_error_margin: 0.02 + input: + country: [NORTHERN_IRELAND, NORTHERN_IRELAND, NORTHERN_IRELAND, NORTHERN_IRELAND, NORTHERN_IRELAND] + housing_benefit_family_premium_category: [NONE, ORDINARY_PROTECTED, HISTORICAL_LONE_PARENT_PROTECTED, HISTORICAL_LONE_PARENT_PROTECTED, ORDINARY_PROTECTED] + is_child_or_young_person_for_legacy_benefits: [true, true, true, true, false] + is_lone_parent: [false, true, true, false, true] + housing_benefit_pension_age_regulations_apply: [true, true, true, true, true] + housing_benefit_eligible: [true, true, true, true, true] + eldest_claimant_or_partner_age: [75, 75, 75, 75, 75] + is_single_person: [true, false, false, true, false] + is_couple: [false, false, false, false, false] + benefits_premiums: [100, 100, 100, 100, 100] + output: + housing_benefit_family_premium: [0, 1051.44, 1051.44, 1051.44, 0] + housing_benefit_applicable_amount: [13412, 14463.440000000002, 14463.440000000002, 14463.440000000002, 13412] + +- name: Ordinary family premium published history 2015 + period: 2015 + absolute_error_margin: 0.01 + input: + housing_benefit_family_premium_category: ORDINARY_PROTECTED + is_child_or_young_person_for_legacy_benefits: true + is_lone_parent: false + housing_benefit_pension_age_regulations_apply: false + output: + housing_benefit_family_premium: 17.45 * 52 + +- name: Ordinary family premium published history 2020 + period: 2020 + absolute_error_margin: 0.01 + input: + housing_benefit_family_premium_category: ORDINARY_PROTECTED + is_child_or_young_person_for_legacy_benefits: true + is_lone_parent: false + housing_benefit_pension_age_regulations_apply: false + output: + housing_benefit_family_premium: 17.6 * 52 + +- name: Ordinary family premium published history 2021 + period: 2021 + absolute_error_margin: 0.01 + input: + housing_benefit_family_premium_category: ORDINARY_PROTECTED + is_child_or_young_person_for_legacy_benefits: true + is_lone_parent: false + housing_benefit_pension_age_regulations_apply: false + output: + housing_benefit_family_premium: 17.65 * 52 + +- name: Ordinary family premium published history 2022 + period: 2022 + absolute_error_margin: 0.01 + input: + housing_benefit_family_premium_category: ORDINARY_PROTECTED + is_child_or_young_person_for_legacy_benefits: true + is_lone_parent: false + housing_benefit_pension_age_regulations_apply: false + output: + housing_benefit_family_premium: 17.85 * 52 + +- name: Ordinary family premium published history 2023 + period: 2023 + absolute_error_margin: 0.01 + input: + housing_benefit_family_premium_category: ORDINARY_PROTECTED + is_child_or_young_person_for_legacy_benefits: true + is_lone_parent: false + housing_benefit_pension_age_regulations_apply: false + output: + housing_benefit_family_premium: 18.53 * 52 + +- name: Ordinary family premium published history 2024 + period: 2024 + absolute_error_margin: 0.01 + input: + housing_benefit_family_premium_category: ORDINARY_PROTECTED + is_child_or_young_person_for_legacy_benefits: true + is_lone_parent: false + housing_benefit_pension_age_regulations_apply: false + output: + housing_benefit_family_premium: 19.15 * 52 + +- name: Ordinary family premium published history 2025 + period: 2025 + absolute_error_margin: 0.01 + input: + housing_benefit_family_premium_category: ORDINARY_PROTECTED + is_child_or_young_person_for_legacy_benefits: true + is_lone_parent: false + housing_benefit_pension_age_regulations_apply: false + output: + housing_benefit_family_premium: 19.48 * 52 + +- name: Ordinary family premium published history 2026 + period: 2026 + absolute_error_margin: 0.01 + input: + housing_benefit_family_premium_category: ORDINARY_PROTECTED + is_child_or_young_person_for_legacy_benefits: true + is_lone_parent: false + housing_benefit_pension_age_regulations_apply: false + output: + housing_benefit_family_premium: 20.22 * 52 + +- name: Before closure ordinary family premium needs no historical category + period: 2015 + absolute_error_margin: 0.01 + input: + is_child_or_young_person_for_legacy_benefits: true + is_lone_parent: true + housing_benefit_pension_age_regulations_apply: false + output: + housing_benefit_family_premium_category: NONE + housing_benefit_family_premium: 17.45 * 52 + +- name: Missing category in closure year does not presume a protected claim + period: 2016 + input: + is_child_or_young_person_for_legacy_benefits: true + is_lone_parent: true + housing_benefit_pension_age_regulations_apply: false + output: + housing_benefit_family_premium_category: NONE + housing_benefit_family_premium: 0 + +- name: Parameter reform overrides the protected ordinary amount + period: 2026 + input: + gov.dwp.housing_benefit.premiums.family.amount: 0 + housing_benefit_family_premium_category: ORDINARY_PROTECTED + is_child_or_young_person_for_legacy_benefits: true + is_lone_parent: true + housing_benefit_pension_age_regulations_apply: false + output: + housing_benefit_family_premium: 0 + +- name: Child or young person status excludes an unrelated adult and a looked after child + period: 2026 + input: + people: + parent: + age: 40 + is_claimant_or_partner: true + looked_after: + age: 10 + is_looked_after_by_local_authority: true + unrelated_adult: + age: 30 + benunits: + family: + members: [parent, looked_after, unrelated_adult] + housing_benefit_family_premium_category: ORDINARY_PROTECTED + output: + housing_benefit_family_premium: 0 diff --git a/policyengine_uk/variables/gov/dwp/housing_benefit/housing_benefit_applicable_amount.py b/policyengine_uk/variables/gov/dwp/housing_benefit/housing_benefit_applicable_amount.py index cba43eaafe..ebc217deeb 100644 --- a/policyengine_uk/variables/gov/dwp/housing_benefit/housing_benefit_applicable_amount.py +++ b/policyengine_uk/variables/gov/dwp/housing_benefit/housing_benefit_applicable_amount.py @@ -11,6 +11,8 @@ class housing_benefit_applicable_amount(Variable): reference = ( "https://www.legislation.gov.uk/uksi/2006/213/schedule/3", "https://www.legislation.gov.uk/uksi/2006/214/schedule/3", + "https://www.legislation.gov.uk/uksi/2015/1857/made", + "https://www.legislation.gov.uk/nisr/2016/310/made", ) def formula(benunit, period, parameters): @@ -52,4 +54,5 @@ def formula(benunit, period, parameters): + lone_parent * lone_parent_personal_allowance ) * WEEKS_IN_YEAR premiums = benunit("benefits_premiums", period) - return personal_allowance + premiums + family_premium = benunit("housing_benefit_family_premium", period) + return personal_allowance + premiums + family_premium diff --git a/policyengine_uk/variables/gov/dwp/housing_benefit/housing_benefit_family_premium.py b/policyengine_uk/variables/gov/dwp/housing_benefit/housing_benefit_family_premium.py new file mode 100644 index 0000000000..b89f2231d1 --- /dev/null +++ b/policyengine_uk/variables/gov/dwp/housing_benefit/housing_benefit_family_premium.py @@ -0,0 +1,53 @@ +from policyengine_uk.model_api import * +from policyengine_uk.variables.gov.dwp.housing_benefit.housing_benefit_family_premium_category import ( + HousingBenefitFamilyPremiumCategory, +) + + +class housing_benefit_family_premium(Variable): + value_type = float + entity = BenUnit + definition_period = YEAR + unit = GBP + label = "Housing Benefit protected family premium" + documentation = ( + "Ordinary family premium before the new-claim closure year; from " + "that year it requires the pre-assessed protection category. At least " + "one legally included child or young person is required. The higher " + "historical lone-parent rate is restricted to the working-age " + "schedule and current lone parents. Claim continuity and within-year " + "claim dates are not inferred from current household composition." + ) + reference = ( + "https://www.legislation.gov.uk/uksi/2015/1857/made", + "https://www.legislation.gov.uk/nisr/2016/310/made", + "https://www.legislation.gov.uk/uksi/2006/213/schedule/3/part/2/2015-04-06", + "https://www.legislation.gov.uk/uksi/2006/214/schedule/3/part/2/2015-04-06", + "https://www.legislation.gov.uk/nisr/2006/405/schedule/4/part/II/2015-04-06", + "https://www.legislation.gov.uk/nisr/2006/406/schedule/4/part/II/2015-04-06", + ) + + def formula(benunit, period, parameters): + p = parameters(period).gov.dwp.housing_benefit.premiums.family + category = benunit("housing_benefit_family_premium_category", period) + categories = HousingBenefitFamilyPremiumCategory + child = benunit.members("is_child_or_young_person_for_legacy_benefits", period) + country = benunit.household("country", period) + # The closure year contains both pre- and post-closure claims. From + # that year, the category must establish legal protection rather + # than treating all claims as having begun before the cutoff. + before_closure_year = where( + country == country.possible_values.NORTHERN_IRELAND, + period.start.year < p.new_claim_end.northern_ireland // 10000, + period.start.year < p.new_claim_end.great_britain // 10000, + ) + eligible = benunit.any(child) & ( + before_closure_year | (category != categories.NONE) + ) + historical_lone_parent = ( + (category == categories.HISTORICAL_LONE_PARENT_PROTECTED) + & benunit("is_lone_parent", period) + & ~benunit("housing_benefit_pension_age_regulations_apply", period) + ) + weekly = where(historical_lone_parent, p.lone_parent_protected_amount, p.amount) + return where(eligible, weekly * WEEKS_IN_YEAR, 0) diff --git a/policyengine_uk/variables/gov/dwp/housing_benefit/housing_benefit_family_premium_category.py b/policyengine_uk/variables/gov/dwp/housing_benefit/housing_benefit_family_premium_category.py new file mode 100644 index 0000000000..f418c22719 --- /dev/null +++ b/policyengine_uk/variables/gov/dwp/housing_benefit/housing_benefit_family_premium_category.py @@ -0,0 +1,33 @@ +from policyengine_uk.model_api import * + + +class HousingBenefitFamilyPremiumCategory(Enum): + ORDINARY_PROTECTED = "Ordinary protected family premium" + HISTORICAL_LONE_PARENT_PROTECTED = "Protected pre-April 1998 lone-parent premium" + NONE = "No protected family premium" + + +class housing_benefit_family_premium_category(Variable): + value_type = Enum + possible_values = HousingBenefitFamilyPremiumCategory + default_value = HousingBenefitFamilyPremiumCategory.NONE + entity = BenUnit + definition_period = YEAR + label = "Pre-assessed Housing Benefit protected family premium category" + documentation = ( + "Legally assessed family-premium protection, including continuous " + "qualifying entitlement before GB's 1 May 2016 or NI's 5 September " + "2016 new-claim closure and subsequent loss-of-protection conditions. " + "The historical lone-parent category additionally requires the " + "pre-April 1998 continuity conditions, not current lone-parent status " + "alone. It applies only in the working-age schedule. No dataset " + "mapping has been verified: NONE from the closure year omits " + "protected awards and can understate entitlement. This annual " + "pre-assessment does not reconstruct changes within the year." + ) + reference = ( + "https://www.legislation.gov.uk/uksi/2015/1857/made", + "https://www.legislation.gov.uk/nisr/2016/310/made", + "https://www.legislation.gov.uk/uksi/2006/213/schedule/3/part/2/2015-04-06", + "https://www.legislation.gov.uk/nisr/2006/405/schedule/4/part/II/2015-04-06", + ) From dfb2e11dc3df8a601d6ecc013eec7b83c5617e9a Mon Sep 17 00:00:00 2001 From: Max Ghenis Date: Sun, 25 Oct 2026 02:05:19 -0400 Subject: [PATCH 2/3] Pin the pre-cutoff pension-age flag in family premium fixtures The two pension-regime cases override the eldest claimant's age to 75 without a claimant of that age. Since #2576 the pension-age cutoff reads claimants and partners only, so the fixtures now state that the claimant attained State Pension age before 1 April 2021 (SI 2021/188), as #2221's fixtures do. No expected amount changes. Co-Authored-By: Claude Opus 5.5 --- .../housing_benefit/housing_benefit_family_premium.yaml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/policyengine_uk/tests/policy/baseline/finance/benefit/family/housing_benefit/housing_benefit_family_premium.yaml b/policyengine_uk/tests/policy/baseline/finance/benefit/family/housing_benefit/housing_benefit_family_premium.yaml index eac1cb701a..2e3befbfac 100644 --- a/policyengine_uk/tests/policy/baseline/finance/benefit/family/housing_benefit/housing_benefit_family_premium.yaml +++ b/policyengine_uk/tests/policy/baseline/finance/benefit/family/housing_benefit/housing_benefit_family_premium.yaml @@ -27,6 +27,9 @@ is_child_or_young_person_for_legacy_benefits: [true, true, true, true, false] is_lone_parent: [false, true, true, false, true] housing_benefit_pension_age_regulations_apply: [true, true, true, true, true] + # The claimants attained State Pension age before 1 April 2021, so the + # higher pension-age personal allowances apply (SI 2021/188). + housing_benefit_attained_pension_age_before_cutoff: [true, true, true, true, true] housing_benefit_eligible: [true, true, true, true, true] eldest_claimant_or_partner_age: [75, 75, 75, 75, 75] is_single_person: [true, false, false, true, false] @@ -65,6 +68,9 @@ is_child_or_young_person_for_legacy_benefits: [true, true, true, true, false] is_lone_parent: [false, true, true, false, true] housing_benefit_pension_age_regulations_apply: [true, true, true, true, true] + # The claimants attained State Pension age before 1 April 2021, so the + # higher pension-age personal allowances apply (SI 2021/188). + housing_benefit_attained_pension_age_before_cutoff: [true, true, true, true, true] housing_benefit_eligible: [true, true, true, true, true] eldest_claimant_or_partner_age: [75, 75, 75, 75, 75] is_single_person: [true, false, false, true, false] From 1a7e1df93910726d6126bb50260ea92020e913d8 Mon Sep 17 00:00:00 2001 From: Max Ghenis Date: Sun, 25 Oct 2026 04:44:26 -0400 Subject: [PATCH 3/3] Cite the NI pension-age cutoff and drop stale "separate work" notes The Northern Ireland pension-age fixture now cites SR 2021/70, which inserts the 1 April 2021 cutoff into SR 2006/406 Sch 4 para 1; SI 2021/188 amends only the Great Britain regulations. The Housing Benefit README and the child allowances page now say the applicable amount includes the child disability premiums and the protected family premium, which #2221 and this PR add. Co-Authored-By: Claude Opus 5.5 --- .../assumptions/housing-benefit-child-allowances.md | 10 ++++++---- .../parameters/gov/dwp/housing_benefit/README.md | 8 ++++---- .../housing_benefit_family_premium.yaml | 2 +- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/docs/book/assumptions/housing-benefit-child-allowances.md b/docs/book/assumptions/housing-benefit-child-allowances.md index 6f65002afe..13266dfe74 100644 --- a/docs/book/assumptions/housing-benefit-child-allowances.md +++ b/docs/book/assumptions/housing-benefit-child-allowances.md @@ -4,7 +4,8 @@ PolicyEngine does not currently calculate ordinary child personal allowances in the Housing Benefit applicable amount. This omission applies before, during and after the historical two-child restriction. The model calculates an adult personal allowance from the benefit unit's composition and age, then adds the -premiums selected by `benefits_premiums`. It does not calculate an ordinary +premiums selected by `benefits_premiums`, the child disability premiums and the +protected family premium. It does not calculate an ordinary allowance for either the first two children or additional children. See `housing_benefit_applicable_amount` in [`policyengine_uk/variables/gov/dwp/housing_benefit/`](https://github.com/PolicyEngine/policyengine-uk/blob/main/policyengine_uk/variables/gov/dwp/housing_benefit/housing_benefit_applicable_amount.py). @@ -111,8 +112,9 @@ included-child count is one possible interface for that discussion; it is not a supported model input. This documentation introduces no claim-history or exception inputs and changes no calculation. -Child disability premiums and the protected family premium are separate work -under [#2221](https://github.com/PolicyEngine/policyengine-uk/issues/2221) and -[#2223](https://github.com/PolicyEngine/policyengine-uk/issues/2223). This page +The model adds child disability premiums and the protected family premium +separately, from +[#2221](https://github.com/PolicyEngine/policyengine-uk/pull/2221) and +[#2223](https://github.com/PolicyEngine/policyengine-uk/pull/2223). This page does not revive [closed PR #2198](https://github.com/PolicyEngine/policyengine-uk/pull/2198) or its associated issues. diff --git a/policyengine_uk/parameters/gov/dwp/housing_benefit/README.md b/policyengine_uk/parameters/gov/dwp/housing_benefit/README.md index 60cc6cd1ae..387076d757 100644 --- a/policyengine_uk/parameters/gov/dwp/housing_benefit/README.md +++ b/policyengine_uk/parameters/gov/dwp/housing_benefit/README.md @@ -1,11 +1,11 @@ # Housing Benefit The default `housing_benefit_applicable_amount` calculation includes an adult -personal allowance and selected premiums. It omits ordinary child personal -allowances, including in periods when no two-child restriction applied. +personal allowance, selected adult premiums, child disability premiums and the +protected family premium. It omits ordinary child personal allowances, +including in periods when no two-child restriction applied. See [historical child personal allowances and the deferred implementation](../../../../../docs/book/assumptions/housing-benefit-child-allowances.md) for the Great Britain and Northern Ireland rules, individual-child protection, Child Tax Credit assessment requirements and the missing historical facts. -The documentation adds no model input or calculation. Child disability and -protected family premiums remain separate work. +The documentation adds no model input or calculation. diff --git a/policyengine_uk/tests/policy/baseline/finance/benefit/family/housing_benefit/housing_benefit_family_premium.yaml b/policyengine_uk/tests/policy/baseline/finance/benefit/family/housing_benefit/housing_benefit_family_premium.yaml index 2e3befbfac..7f2821edd6 100644 --- a/policyengine_uk/tests/policy/baseline/finance/benefit/family/housing_benefit/housing_benefit_family_premium.yaml +++ b/policyengine_uk/tests/policy/baseline/finance/benefit/family/housing_benefit/housing_benefit_family_premium.yaml @@ -69,7 +69,7 @@ is_lone_parent: [false, true, true, false, true] housing_benefit_pension_age_regulations_apply: [true, true, true, true, true] # The claimants attained State Pension age before 1 April 2021, so the - # higher pension-age personal allowances apply (SI 2021/188). + # higher pension-age personal allowances apply (SR 2021/70). housing_benefit_attained_pension_age_before_cutoff: [true, true, true, true, true] housing_benefit_eligible: [true, true, true, true, true] eldest_claimant_or_partner_age: [75, 75, 75, 75, 75]