Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions changelog.d/hb-family-premium.added.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Added protected Housing Benefit family premiums with jurisdiction-specific closure dates and an explicit pre-assessed historical category.
10 changes: 6 additions & 4 deletions docs/book/assumptions/housing-benefit-child-allowances.md
Original file line number Diff line number Diff line change
Expand Up @@ -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).
Expand Down Expand Up @@ -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.
8 changes: 4 additions & 4 deletions policyengine_uk/parameters/gov/dwp/housing_benefit/README.md
Original file line number Diff line number Diff line change
@@ -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.
Original file line number Diff line number Diff line change
@@ -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
Original file line number Diff line number Diff line change
@@ -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
Original file line number Diff line number Diff line change
@@ -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
Original file line number Diff line number Diff line change
@@ -0,0 +1,220 @@
# 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]
# 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]
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]
# The claimants attained State Pension age before 1 April 2021, so the
# 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]
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
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ class housing_benefit_applicable_amount(Variable):
"https://www.legislation.gov.uk/nisr/2006/405/schedule/4/part/I",
"https://www.legislation.gov.uk/nisr/2006/405/schedule/4",
"https://www.legislation.gov.uk/nisr/2006/406/schedule/4",
"https://www.legislation.gov.uk/uksi/2015/1857/made",
"https://www.legislation.gov.uk/nisr/2016/310/made",
)

def formula(benunit, period, parameters):
Expand Down Expand Up @@ -93,8 +95,15 @@ def higher_allowance(category):
+ lone_parent * lone_parent_personal_allowance
) * WEEKS_IN_YEAR
premiums = benunit("benefits_premiums", period)
family_premium = benunit("housing_benefit_family_premium", period)
child_premiums = benunit("housing_benefit_child_disability_premiums", period)
esa_adjustment = benunit(
"housing_benefit_main_phase_esa_allowance_adjustment", period
)
return personal_allowance + premiums + child_premiums + esa_adjustment
return (
personal_allowance
+ premiums
+ family_premium
+ child_premiums
+ esa_adjustment
)
Loading
Loading