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-pension-age-new-claims.fixed.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Let families in which every adult is over State Pension age make new Housing Benefit claims, as SI 2014/1230 reg 6A(4) allows. They no longer need a reported claim, and `would_claim_uc` no longer blocks them because Universal Credit is not available to them. Household calculations previously paid pension-age renters no Housing Benefit, and pension-age families in the Enhanced FRS who report Housing Benefit lost it whenever they drew `would_claim_uc`. Working-age and mixed-age families keep the existing continuing-award rule.
14 changes: 7 additions & 7 deletions docs/book/programs/gov/dwp/housing-benefit.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,14 @@
"source": [
"## Eligibility\n",
"\n",
"`housing_benefit_eligible` requires all of:\n",
"`housing_benefit_eligible` requires the benunit to be either in **social housing** or eligible for the **Local Housing Allowance** rate (broadly, private renters), with assessable capital at or below the working-age (or pension-age) capital limit, and to reach Housing Benefit by one of two routes:\n",
"\n",
"- the benunit was **already claiming** Housing Benefit in the previous period (proxied by a positive `housing_benefit_reported`) — this gates out new working-age claimants per the UC migration policy,\n",
"- the benunit is either in **social housing** or eligible for the **Local Housing Allowance** rate (broadly, private renters),\n",
"- the benunit is **not claiming Universal Credit**, and\n",
"- assessable capital is at or below the working-age (or pension-age) capital limit.\n",
"- **Pension age**: every adult in the benunit has reached the qualifying age for State Pension Credit (State Pension age). New Housing Benefit claims are open to them ([SI 2014/1230 reg. 6A(4)](https://www.legislation.gov.uk/uksi/2014/1230/regulation/6A)), and Universal Credit is not, so neither a previous claim nor `would_claim_uc` matters.\n",
"- **Continuing award**: any other benunit was **already claiming** Housing Benefit (proxied by a positive `housing_benefit_reported`) and is **not claiming Universal Credit**. Working-age and mixed-age families cannot make new claims; they claim the Universal Credit housing element instead. For mixed-age couples the reported award stands in for the saving for couples who were entitled to Housing Benefit or Pension Credit on 14 May 2019 ([SI 2019/37 art. 4](https://www.legislation.gov.uk/uksi/2019/37/article/4)).\n",
"\n",
"The take-up step is handled separately by the input variable `would_claim_housing_benefit`, populated stochastically when the dataset is built so that aggregates match published DWP caseloads."
"The pension-age test counts the same benunit members as Universal Credit's working-age test, and the continuing-award route requires not claiming Universal Credit, so no benunit receives both. Working-age awards outside specified or temporary accommodation ended on 1 July 2026 in Great Britain ([SI 2025/1148 art. 7](https://www.legislation.gov.uk/uksi/2025/1148/article/7)); PolicyEngine does not yet model that. Claims for specified or temporary accommodation, which remain open at any age, are not modelled.\n",
"\n",
"Take-up is handled by `would_claim_housing_benefit`, which is true for benunits that report Housing Benefit and, when no reported benefits are supplied (as in household calculations), for everyone. In the Enhanced FRS take-up therefore follows reported claims."
]
},
{
Expand All @@ -43,7 +43,7 @@
"3. **Means test** (`housing_benefit_entitlement`): the benunit's `housing_benefit_applicable_income` in excess of the applicable amount is tapered against the eligible rent at the published `withdrawal_rate` (currently 0.65). The result is then reduced by `housing_benefit_non_dep_deductions` for any non-dependant adults living in the household.\n",
"4. **Benefit cap** (`housing_benefit`): the post-means-test award is finally reduced by `benefit_cap_reduction` if the household's total benefit income exceeds the cap and no cap exemption applies.\n",
"\n",
"The take-up gate (`would_claim_housing_benefit`) is applied inside `housing_benefit_pre_benefit_cap` so the post-cap variable matches reported caseload after take-up."
"The take-up gate (`would_claim_housing_benefit`) is applied inside `housing_benefit_pre_benefit_cap`."
]
},
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
description: Share of eligible Housing Benefit recipients that participate. By definition,
this is 100%, because only current claimants are eligible (no new claims).
description: Share of eligible Housing Benefit recipients that participate. Not used by
the model, which takes Housing Benefit take-up from reported claims in survey data and
assumes full take-up in household calculations. Pension-age families can make new
claims; working-age families only continue existing awards.
metadata:
economy: false
label: Housing benefit take-up rate
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,274 @@
# Who may claim Housing Benefit: SI 2014/1230 reg 6A (NI: SR 2016/226 reg 4A).
# Pension-age units (claimant and any partner at State Pension Credit
# qualifying age) may make new claims (reg 6A(4)); others keep only a
# continuing award (reported HB and not claiming UC) in this model.

- name: Single pensioner council tenant makes a new Housing Benefit claim
period: 2026
absolute_error_margin: 0.01
input:
people:
person:
age: 70
state_pension_reported: 10_000
benunits:
benunit:
members: [person]
households:
household:
members: [person]
rent: 6_240
tenure_type: RENT_FROM_COUNCIL
output:
guarantee_credit: 2_376
housing_benefit_applicable_income: 0
housing_benefit_eligible: true
housing_benefit: 6_240
universal_credit: 0

- name: Pensioner couple renting privately is capped at the Local Housing Allowance
period: 2026
absolute_error_margin: 0.01
input:
people:
older:
age: 70
state_pension_reported: 2_500
younger:
age: 68
state_pension_reported: 2_500
benunits:
benunit:
members: [older, younger]
BRMA_LHA_rate: 8_000
households:
household:
members: [older, younger]
rent: 9_000
tenure_type: RENT_PRIVATELY
output:
housing_benefit_eligible: true
housing_benefit_applicable_income: 0
housing_benefit: 8_000
universal_credit: 0

- name: New pension-age claim is tapered at 65% above the applicable amount
period: 2026
absolute_error_margin: 0.01
input:
people:
person:
age: 80
benunits:
benunit:
members: [person]
BRMA_LHA_rate: 12_000
housing_benefit_applicable_income: 20_000
households:
household:
members: [person]
rent: 9_000
tenure_type: RENT_PRIVATELY
output:
housing_benefit_eligible: true
housing_benefit_applicable_amount: 13_312
housing_benefit: 4_652.80

- name: Pensioner with capital over 16,000 and no Guarantee Credit is not eligible
period: 2026
absolute_error_margin: 0.01
input:
people:
person:
age: 70
state_pension_reported: 15_000
benunits:
benunit:
members: [person]
households:
household:
members: [person]
rent: 6_240
tenure_type: RENT_FROM_COUNCIL
savings: 20_000
output:
guarantee_credit: 0
housing_benefit_assessable_capital: 20_000
housing_benefit_eligible: false
housing_benefit: 0

- name: Pensioner on Guarantee Credit has capital disregarded
period: 2026
absolute_error_margin: 0.01
input:
people:
person:
age: 70
state_pension_reported: 10_000
benunits:
benunit:
members: [person]
households:
household:
members: [person]
rent: 6_240
tenure_type: RENT_FROM_COUNCIL
savings: 20_000
output:
guarantee_credit: 1_336
housing_benefit_assessable_capital: 0
housing_benefit_eligible: true
housing_benefit: 6_240

- name: Would-claim-UC flag does not block a pension-age claim
period: 2026
absolute_error_margin: 0.01
input:
people:
person:
age: 70
state_pension_reported: 10_000
benunits:
benunit:
members: [person]
would_claim_uc: true
households:
household:
members: [person]
rent: 6_240
tenure_type: RENT_FROM_COUNCIL
output:
housing_benefit_eligible: true
housing_benefit: 6_240
universal_credit: 0

- name: Survey-style pensioner reporting HB with would_claim_uc true is paid
period: 2026
absolute_error_margin: 0.01
input:
people:
person:
age: 70
state_pension_reported: 10_000
housing_benefit_reported: 1
benunits:
benunit:
members: [person]
would_claim_uc: true
claims_all_entitled_benefits: false
households:
household:
members: [person]
rent: 6_240
tenure_type: RENT_FROM_COUNCIL
output:
would_claim_housing_benefit: true
housing_benefit_eligible: true
housing_benefit: 6_240

- name: Mixed-age couple without a continuing award cannot claim HB
period: 2026
absolute_error_margin: 0.01
input:
people:
older:
age: 70
state_pension_reported: 10_000
younger:
age: 60
benunits:
benunit:
members: [older, younger]
households:
household:
members: [older, younger]
rent: 6_240
tenure_type: RENT_PRIVATELY
output:
housing_benefit_eligible: false
housing_benefit: 0
is_uc_eligible: true

- name: Mixed-age couple with a continuing award keeps HB and gets no UC
period: 2026
absolute_error_margin: 0.01
input:
people:
older:
age: 70
state_pension_reported: 10_000
housing_benefit_reported: 1
younger:
age: 60
benunits:
benunit:
members: [older, younger]
would_claim_uc: false
households:
household:
members: [older, younger]
rent: 6_240
tenure_type: RENT_PRIVATELY
output:
housing_benefit_eligible: true
universal_credit: 0

- name: Working-age council tenant cannot make a new HB claim
period: 2026
absolute_error_margin: 0.01
input:
people:
person:
age: 40
benunits:
benunit:
members: [person]
households:
household:
members: [person]
rent: 6_240
tenure_type: RENT_FROM_COUNCIL
output:
housing_benefit_eligible: false
housing_benefit: 0

- name: Pension-age owner-occupier gets no HB
period: 2026
absolute_error_margin: 0.01
input:
people:
person:
age: 70
state_pension_reported: 10_000
benunits:
benunit:
members: [person]
households:
household:
members: [person]
rent: 6_240
tenure_type: OWNED_OUTRIGHT
output:
housing_benefit_eligible: false
housing_benefit: 0

- name: Northern Ireland pensioner council tenant makes a new claim
period: 2026
absolute_error_margin: 0.01
input:
people:
person:
age: 70
state_pension_reported: 10_000
benunits:
benunit:
members: [person]
households:
household:
members: [person]
rent: 6_240
tenure_type: RENT_FROM_COUNCIL
region: NORTHERN_IRELAND
output:
housing_benefit_eligible: true
housing_benefit: 6_240
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
# Regression tests for issue #201: UC and legacy benefit `claims_*` consistency.
#
# `housing_benefit_eligible` explicitly includes `& ~claiming_uc` so a benunit
# claiming Universal Credit cannot also be eligible for Housing Benefit. These
# tests pin that contract so a future refactor can't quietly break it.
# A working-age benunit keeps Housing Benefit only while it continues an
# existing award and does not claim Universal Credit, so a benunit claiming
# Universal Credit cannot also be eligible for Housing Benefit. Wholly
# pension-age benunits can make new Housing Benefit claims whatever
# `would_claim_uc` says, because Universal Credit is not available to them
# (see housing_benefit_pension_age_claims.yaml). These tests pin the
# working-age contract so a future refactor can't quietly break it.

- name: HB eligibility excludes benunits claiming Universal Credit
period: 2025
Expand Down
Loading
Loading