From c2cca982933e2d9046d184e2110519dac27f6b16 Mon Sep 17 00:00:00 2001 From: vahid-ahmadi Date: Mon, 19 Oct 2026 17:36:07 +0200 Subject: [PATCH 1/4] Add the Warm Home Discount in England and Wales Add warm_home_discount (Household, YEAR) with gov.ofgem.warm_home_discount amount and qualifying_benefits parameters, from winter 2025-26 when the high-cost-to-heat test was removed. The rebate is supplier-funded, so it stays out of household_benefits, household_net_income and gov_spending. Refs #502 Co-Authored-By: Claude Opus 5.5 --- changelog.d/warm-home-discount.added.md | 1 + .../gov/ofgem/warm_home_discount/amount.yaml | 18 ++ .../gov/ofgem/warm_home_discount/index.yaml | 3 + .../qualifying_benefits.yaml | 32 +++ policyengine_uk/programs.yaml | 12 + .../gov/ofgem/warm_home_discount.yaml | 266 ++++++++++++++++++ .../variables/gov/ofgem/warm_home_discount.py | 35 +++ 7 files changed, 367 insertions(+) create mode 100644 changelog.d/warm-home-discount.added.md create mode 100644 policyengine_uk/parameters/gov/ofgem/warm_home_discount/amount.yaml create mode 100644 policyengine_uk/parameters/gov/ofgem/warm_home_discount/index.yaml create mode 100644 policyengine_uk/parameters/gov/ofgem/warm_home_discount/qualifying_benefits.yaml create mode 100644 policyengine_uk/tests/policy/baseline/gov/ofgem/warm_home_discount.yaml create mode 100644 policyengine_uk/variables/gov/ofgem/warm_home_discount.py diff --git a/changelog.d/warm-home-discount.added.md b/changelog.d/warm-home-discount.added.md new file mode 100644 index 0000000000..1453491468 --- /dev/null +++ b/changelog.d/warm-home-discount.added.md @@ -0,0 +1 @@ +- Added the Warm Home Discount in England and Wales (`warm_home_discount`) from winter 2025-26, with parameters for the rebate amount and the qualifying means-tested benefits. diff --git a/policyengine_uk/parameters/gov/ofgem/warm_home_discount/amount.yaml b/policyengine_uk/parameters/gov/ofgem/warm_home_discount/amount.yaml new file mode 100644 index 0000000000..d0c3ab8fde --- /dev/null +++ b/policyengine_uk/parameters/gov/ofgem/warm_home_discount/amount.yaml @@ -0,0 +1,18 @@ +description: Rebate that a scheme electricity supplier gives each eligible customer in England and Wales under the Warm Home Discount, once per scheme year. +values: + 2022-04-01: + value: 150 + metadata: + reference: + - title: The Warm Home Discount (England and Wales) Regulations 2022, reg. 3 ("prescribed rebate") + href: https://www.legislation.gov.uk/uksi/2022/772/regulation/3/made + 2026-04-01: + value: 150 + metadata: + reference: + - title: The Warm Home Discount (England and Wales) Regulations 2026, reg. 3 ("prescribed rebate") + href: https://www.legislation.gov.uk/uksi/2026/389/regulation/3/made +metadata: + unit: currency-GBP + period: year + label: Warm Home Discount amount diff --git a/policyengine_uk/parameters/gov/ofgem/warm_home_discount/index.yaml b/policyengine_uk/parameters/gov/ofgem/warm_home_discount/index.yaml new file mode 100644 index 0000000000..fc2c380aba --- /dev/null +++ b/policyengine_uk/parameters/gov/ofgem/warm_home_discount/index.yaml @@ -0,0 +1,3 @@ +description: The Warm Home Discount in England and Wales, a rebate that electricity suppliers in the scheme pay to eligible customers each winter. Suppliers fund it, and Ofgem administers it. Scotland runs a separate scheme with its own criteria, which the model doesn't calculate, and the scheme doesn't operate in Northern Ireland. +metadata: + label: Warm Home Discount diff --git a/policyengine_uk/parameters/gov/ofgem/warm_home_discount/qualifying_benefits.yaml b/policyengine_uk/parameters/gov/ofgem/warm_home_discount/qualifying_benefits.yaml new file mode 100644 index 0000000000..d8d2d45cd7 --- /dev/null +++ b/policyengine_uk/parameters/gov/ofgem/warm_home_discount/qualifying_benefits.yaml @@ -0,0 +1,32 @@ +description: Means-tested benefits whose receipt by a member of the household qualifies it for the Warm Home Discount in England and Wales. The Secretary of State sets them in the eligibility statement for each scheme year. In 2025-26, Core Group 1 covered Pension Credit Guarantee Credit and Core Group 2 the other benefits listed, including Pension Credit Savings Credit, so any Pension Credit qualifies. From 2026-27 a single core group covers both elements of Pension Credit. Before 2025-26, the low-income group also had to pass a high-cost-to-heat test on property data, which the model doesn't encode, so the list is empty and the model doesn't calculate the rebate for those years. +values: + 2011-04-01: [] + 2025-04-01: + value: + - pension_credit + - universal_credit + - housing_benefit + - esa_income + - jsa_income + - income_support + metadata: + reference: + - title: "Warm Home Discount: eligibility statement, England and Wales, 2025 to 2026" + href: https://www.gov.uk/government/publications/warm-home-discount-eligibility-statement-england-and-wales-2025-to-2026-scheme-year/warm-home-discount-eligibility-statement-england-and-wales-2025-to-2026 + 2026-04-01: + value: + - pension_credit + - universal_credit + - housing_benefit + - esa_income + metadata: + reference: + - title: "Warm Home Discount: eligibility statement, England and Wales, 2026 to 2027" + href: https://www.gov.uk/government/publications/warm-home-discount-eligibility-statement-england-and-wales-2026-to-2027-scheme-year/warm-home-discount-eligibility-statement-england-and-wales-2026-to-2027 +metadata: + unit: list + period: year + label: Warm Home Discount qualifying benefits + reference: + - title: The Warm Home Discount (England and Wales) Regulations 2026, reg. 10 (eligibility statement) + href: https://www.legislation.gov.uk/uksi/2026/389/regulation/10/made diff --git a/policyengine_uk/programs.yaml b/policyengine_uk/programs.yaml index 2fa867458d..653040433f 100644 --- a/policyengine_uk/programs.yaml +++ b/policyengine_uk/programs.yaml @@ -554,6 +554,18 @@ programs: verified_end_year: 2024 notes: Temporary program, ended 31 March 2024 + - id: warm_home_discount + name: Warm Home Discount + full_name: Warm Home Discount (England and Wales) + category: Benefits + agency: Ofgem + status: partial + coverage: England and Wales + variable: warm_home_discount + parameter_prefix: gov.ofgem.warm_home_discount + verified_start_year: 2025 + notes: Supplier-funded bill rebate, outside household_net_income and gov_spending. Benefit-receipt rule from winter 2025-26; Scottish scheme not modelled + # --- Scotland programs --- - id: scottish_income_tax name: Scottish income tax diff --git a/policyengine_uk/tests/policy/baseline/gov/ofgem/warm_home_discount.yaml b/policyengine_uk/tests/policy/baseline/gov/ofgem/warm_home_discount.yaml new file mode 100644 index 0000000000..e1c90f600a --- /dev/null +++ b/policyengine_uk/tests/policy/baseline/gov/ofgem/warm_home_discount.yaml @@ -0,0 +1,266 @@ +# Warm Home Discount (England and Wales). Each case sets every qualifying +# benefit explicitly so that only the named one is received. + +- name: Pension Credit recipient in England, 2026-27 + period: 2026 + input: + people: + person: + age: 70 + benunits: + benunit: + members: [person] + pension_credit: 1000 + universal_credit: 0 + housing_benefit: 0 + esa_income: 0 + jsa_income: 0 + income_support: 0 + households: + household: + members: [person] + region: LONDON + output: + warm_home_discount: 150 + +- name: Universal Credit recipient in Wales, 2026-27 + period: 2026 + input: + people: + person: + age: 40 + benunits: + benunit: + members: [person] + pension_credit: 0 + universal_credit: 1000 + housing_benefit: 0 + esa_income: 0 + jsa_income: 0 + income_support: 0 + households: + household: + members: [person] + region: WALES + output: + warm_home_discount: 150 + +- name: Housing Benefit recipient in England, 2026-27 + period: 2026 + input: + people: + person: + age: 40 + benunits: + benunit: + members: [person] + pension_credit: 0 + universal_credit: 0 + housing_benefit: 1000 + esa_income: 0 + jsa_income: 0 + income_support: 0 + households: + household: + members: [person] + region: NORTH_EAST + output: + warm_home_discount: 150 + +- name: Income-related ESA recipient in England, 2026-27 + period: 2026 + input: + people: + person: + age: 40 + benunits: + benunit: + members: [person] + pension_credit: 0 + universal_credit: 0 + housing_benefit: 0 + esa_income: 1000 + jsa_income: 0 + income_support: 0 + households: + household: + members: [person] + region: SOUTH_WEST + output: + warm_home_discount: 150 + +- name: Income-based JSA qualifies in 2025-26 + period: 2025 + input: + people: + person: + age: 40 + benunits: + benunit: + members: [person] + pension_credit: 0 + universal_credit: 0 + housing_benefit: 0 + esa_income: 0 + jsa_income: 1000 + income_support: 0 + households: + household: + members: [person] + region: LONDON + output: + warm_home_discount: 150 + +- name: Income Support qualifies in 2025-26 + period: 2025 + input: + people: + person: + age: 40 + benunits: + benunit: + members: [person] + pension_credit: 0 + universal_credit: 0 + housing_benefit: 0 + esa_income: 0 + jsa_income: 0 + income_support: 1000 + households: + household: + members: [person] + region: LONDON + output: + warm_home_discount: 150 + +- name: Income-based JSA no longer qualifies in 2026-27 + period: 2026 + input: + people: + person: + age: 40 + benunits: + benunit: + members: [person] + pension_credit: 0 + universal_credit: 0 + housing_benefit: 0 + esa_income: 0 + jsa_income: 1000 + income_support: 0 + households: + household: + members: [person] + region: LONDON + output: + warm_home_discount: 0 + +- name: Income Support no longer qualifies in 2026-27 + period: 2026 + input: + people: + person: + age: 40 + benunits: + benunit: + members: [person] + pension_credit: 0 + universal_credit: 0 + housing_benefit: 0 + esa_income: 0 + jsa_income: 0 + income_support: 1000 + households: + household: + members: [person] + region: LONDON + output: + warm_home_discount: 0 + +- name: No qualifying benefit, 2026-27 + period: 2026 + input: + people: + person: + age: 40 + benunits: + benunit: + members: [person] + pension_credit: 0 + universal_credit: 0 + housing_benefit: 0 + esa_income: 0 + jsa_income: 0 + income_support: 0 + households: + household: + members: [person] + region: LONDON + output: + warm_home_discount: 0 + +- name: Pension Credit recipient in Scotland is outside the England and Wales scheme + period: 2026 + input: + people: + person: + age: 70 + benunits: + benunit: + members: [person] + pension_credit: 1000 + universal_credit: 0 + housing_benefit: 0 + esa_income: 0 + jsa_income: 0 + income_support: 0 + households: + household: + members: [person] + region: SCOTLAND + output: + warm_home_discount: 0 + +- name: Pension Credit recipient in Northern Ireland, where the scheme doesn't operate + period: 2026 + input: + people: + person: + age: 70 + benunits: + benunit: + members: [person] + pension_credit: 1000 + universal_credit: 0 + housing_benefit: 0 + esa_income: 0 + jsa_income: 0 + income_support: 0 + households: + household: + members: [person] + region: NORTHERN_IRELAND + output: + warm_home_discount: 0 + +- name: Not calculated before 2025-26, when the high-cost-to-heat test applied + period: 2024 + input: + people: + person: + age: 70 + benunits: + benunit: + members: [person] + pension_credit: 1000 + universal_credit: 0 + housing_benefit: 0 + esa_income: 0 + jsa_income: 0 + income_support: 0 + households: + household: + members: [person] + region: LONDON + output: + warm_home_discount: 0 diff --git a/policyengine_uk/variables/gov/ofgem/warm_home_discount.py b/policyengine_uk/variables/gov/ofgem/warm_home_discount.py new file mode 100644 index 0000000000..88ac2eb3db --- /dev/null +++ b/policyengine_uk/variables/gov/ofgem/warm_home_discount.py @@ -0,0 +1,35 @@ +from policyengine_uk.model_api import * + + +class warm_home_discount(Variable): + value_type = float + entity = Household + label = "Warm Home Discount" + documentation = ( + "Rebate an electricity supplier gives the household under the Warm " + "Home Discount scheme in England and Wales, in the year containing " + "the winter it is paid for. A household qualifies if any member " + "receives a qualifying means-tested benefit; the rebate is paid " + "without a claim. Suppliers fund the rebate from their customers' " + "bills, so it is not government spending, and it is not included in " + "household_benefits or household_net_income. The model doesn't check " + "the supplier, account-holder or property conditions, and doesn't " + "calculate the separate Scottish scheme." + ) + definition_period = YEAR + unit = GBP + reference = ( + "https://www.legislation.gov.uk/uksi/2026/389/contents/made", + "https://www.gov.uk/the-warm-home-discount-scheme", + ) + + def formula(household, period, parameters): + p = parameters(period).gov.ofgem.warm_home_discount + country = household("country", period) + countries = country.possible_values + in_scheme_area = (country == countries.ENGLAND) | (country == countries.WALES) + benefits = p.qualifying_benefits + if len(benefits) == 0: + return household.empty_array() + receives_benefit = add(household, period, benefits) > 0 + return in_scheme_area * receives_benefit * p.amount From 58b3d5b8bab24cda205d519f4631473d3b2980db Mon Sep 17 00:00:00 2001 From: vahid-ahmadi Date: Tue, 20 Oct 2026 09:38:08 +0200 Subject: [PATCH 2/4] Count the Warm Home Discount in HBAI household net income DWP's HBAI methodology classifies the Warm Home Discount as miscellaneous income, so add warm_home_discount to the HBAI before-housing-costs income list (and so to income after housing costs). The FRS-derived miscellaneous_income (odd jobs, allpay2, royalties, chamtern, chamttst) holds no rebate, so nothing is counted twice; its documentation now says it excludes the rebate. household_net_income, household_benefits and gov_spending are unchanged. Co-Authored-By: Claude Opus 5.5 --- changelog.d/warm-home-discount.added.md | 2 +- .../income/uc_statutory_pay.yaml | 5 +- .../gov/ofgem/warm_home_discount.yaml | 79 +++++++++++++++++++ .../variables/gov/ofgem/warm_home_discount.py | 4 +- .../income/hbai_household_net_income.py | 3 + .../variables/input/miscellaneous_income.py | 5 +- 6 files changed, 94 insertions(+), 4 deletions(-) diff --git a/changelog.d/warm-home-discount.added.md b/changelog.d/warm-home-discount.added.md index 1453491468..f288c81024 100644 --- a/changelog.d/warm-home-discount.added.md +++ b/changelog.d/warm-home-discount.added.md @@ -1 +1 @@ -- Added the Warm Home Discount in England and Wales (`warm_home_discount`) from winter 2025-26, with parameters for the rebate amount and the qualifying means-tested benefits. +- Added the Warm Home Discount in England and Wales (`warm_home_discount`) from winter 2025-26, with parameters for the rebate amount and the qualifying means-tested benefits, and its rebate counted as miscellaneous income in HBAI household net income. diff --git a/policyengine_uk/tests/policy/baseline/finance/benefit/family/universal_credit/income/uc_statutory_pay.yaml b/policyengine_uk/tests/policy/baseline/finance/benefit/family/universal_credit/income/uc_statutory_pay.yaml index c7c8c2d29f..e3c887520e 100644 --- a/policyengine_uk/tests/policy/baseline/finance/benefit/family/universal_credit/income/uc_statutory_pay.yaml +++ b/policyengine_uk/tests/policy/baseline/finance/benefit/family/universal_credit/income/uc_statutory_pay.yaml @@ -250,5 +250,8 @@ # 400 of pay raises its income by 180. household_benefits: 5_278.80 household_net_income: 5_278.80 - hbai_household_net_income: 5_278.80 + # HBAI also counts the £150 Warm Home Discount the Universal Credit + # award brings in England, as miscellaneous income. + warm_home_discount: 150 + hbai_household_net_income: 5_428.80 gov_spending: 5_278.80 diff --git a/policyengine_uk/tests/policy/baseline/gov/ofgem/warm_home_discount.yaml b/policyengine_uk/tests/policy/baseline/gov/ofgem/warm_home_discount.yaml index e1c90f600a..83fd4a24cd 100644 --- a/policyengine_uk/tests/policy/baseline/gov/ofgem/warm_home_discount.yaml +++ b/policyengine_uk/tests/policy/baseline/gov/ofgem/warm_home_discount.yaml @@ -264,3 +264,82 @@ region: LONDON output: warm_home_discount: 0 + +# HBAI counts the Warm Home Discount as miscellaneous income (DWP, HBAI +# background information and methodology report FYE 2025). Council Tax is +# set to zero so HBAI income is the benefit plus the rebate. + +- name: Rebate counts in HBAI income for a Universal Credit recipient in England + period: 2026 + input: + people: + person: + age: 40 + benunits: + benunit: + members: [person] + pension_credit: 0 + universal_credit: 1000 + housing_benefit: 0 + esa_income: 0 + jsa_income: 0 + income_support: 0 + households: + household: + members: [person] + region: LONDON + council_tax: 0 + output: + warm_home_discount: 150 + hbai_household_net_income: 1150 + hbai_household_net_income_ahc: 1150 + +- name: No rebate in HBAI income for a Universal Credit recipient in Scotland + period: 2026 + input: + people: + person: + age: 40 + benunits: + benunit: + members: [person] + pension_credit: 0 + universal_credit: 1000 + housing_benefit: 0 + esa_income: 0 + jsa_income: 0 + income_support: 0 + households: + household: + members: [person] + region: SCOTLAND + council_tax: 0 + output: + warm_home_discount: 0 + hbai_household_net_income: 1000 + hbai_household_net_income_ahc: 1000 + +- name: No rebate in HBAI income for income-based JSA in 2026-27 + period: 2026 + input: + people: + person: + age: 40 + benunits: + benunit: + members: [person] + pension_credit: 0 + universal_credit: 0 + housing_benefit: 0 + esa_income: 0 + jsa_income: 1000 + income_support: 0 + households: + household: + members: [person] + region: LONDON + council_tax: 0 + output: + warm_home_discount: 0 + hbai_household_net_income: 1000 + hbai_household_net_income_ahc: 1000 diff --git a/policyengine_uk/variables/gov/ofgem/warm_home_discount.py b/policyengine_uk/variables/gov/ofgem/warm_home_discount.py index 88ac2eb3db..b482cae829 100644 --- a/policyengine_uk/variables/gov/ofgem/warm_home_discount.py +++ b/policyengine_uk/variables/gov/ofgem/warm_home_discount.py @@ -12,7 +12,9 @@ class warm_home_discount(Variable): "receives a qualifying means-tested benefit; the rebate is paid " "without a claim. Suppliers fund the rebate from their customers' " "bills, so it is not government spending, and it is not included in " - "household_benefits or household_net_income. The model doesn't check " + "household_benefits or household_net_income. HBAI counts it as " + "miscellaneous income, so it is included in " + "hbai_household_net_income; miscellaneous_income excludes it. The model doesn't check " "the supplier, account-holder or property conditions, and doesn't " "calculate the separate Scottish scheme." ) diff --git a/policyengine_uk/variables/household/income/hbai_household_net_income.py b/policyengine_uk/variables/household/income/hbai_household_net_income.py index 08c2d514af..723d017eff 100644 --- a/policyengine_uk/variables/household/income/hbai_household_net_income.py +++ b/policyengine_uk/variables/household/income/hbai_household_net_income.py @@ -53,6 +53,9 @@ "scottish_child_payment", "carer_support_payment", "scottish_carer_supplement", + # HBAI classifies the Warm Home Discount as miscellaneous income: + # https://www.gov.uk/government/statistics/households-below-average-income-for-financial-years-ending-1995-to-2025/households-below-average-income-background-information-and-methodology-report-fye-2025 + "warm_home_discount", # Reference for tax-free-childcare: https://assets.publishing.service.gov.uk/media/5e7b191886650c744175d08b/households-below-average-income-1994-1995-2018-2019.pdf ] diff --git a/policyengine_uk/variables/input/miscellaneous_income.py b/policyengine_uk/variables/input/miscellaneous_income.py index e0d3e72b24..5780911c84 100644 --- a/policyengine_uk/variables/input/miscellaneous_income.py +++ b/policyengine_uk/variables/input/miscellaneous_income.py @@ -5,7 +5,10 @@ class miscellaneous_income(Variable): value_type = float entity = Person label = "miscellaneous income" - documentation = "Income from any other source" + documentation = ( + "Income from any other source. Excludes the Warm Home Discount, " + "which is calculated as warm_home_discount." + ) definition_period = YEAR unit = GBP uprating = "gov.economic_assumptions.indices.obr.per_capita.gdp" From 7f07a835ef2539f1e5aa00ad61f797e825440176 Mon Sep 17 00:00:00 2001 From: vahid-ahmadi Date: Tue, 20 Oct 2026 16:21:58 +0100 Subject: [PATCH 3/4] Allow the Warm Home Discount as an HBAI channel in the trading loss test MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Pension Credit passport family gains the £150 rebate when the loss brings it onto Pension Credit, so the unchanged-component check rejected a legitimate move. The channel-sum identity is kept. Co-Authored-By: Claude Opus 5.5 --- policyengine_uk/tests/test_trading_loss_properties.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/policyengine_uk/tests/test_trading_loss_properties.py b/policyengine_uk/tests/test_trading_loss_properties.py index 85b09326d0..340ce3b6dc 100644 --- a/policyengine_uk/tests/test_trading_loss_properties.py +++ b/policyengine_uk/tests/test_trading_loss_properties.py @@ -95,7 +95,8 @@ "universal_credit", ] # HBAI components the loss may move: the loss itself, taxes, and benefits -# that are means-tested or passported from a means-tested benefit. +# that are means-tested or passported from a means-tested benefit. The Warm +# Home Discount follows receipt of a qualifying means-tested benefit. HBAI_CHANNELS = { "trading_loss", "income_tax", @@ -118,6 +119,7 @@ "healthy_start_vouchers", "scottish_child_payment", "cost_of_living_support_payment", + "warm_home_discount", } From 20b038415e5b00bc2b58a52dd7b04a82e49cab3c Mon Sep 17 00:00:00 2001 From: vahid-ahmadi Date: Fri, 23 Oct 2026 16:51:01 +0100 Subject: [PATCH 4/4] End the Warm Home Discount with its scheme period on 31 March 2031 SI 2026/389 reg 4(2)(b) ends the scheme period on 31 March 2031, after scheme year 20, so the qualifying benefit list is empty from 2031-32. Boundary tests: a UC recipient in London gets 150 in 2030 and 0 in 2031. Co-Authored-By: Claude Opus 5.5 --- changelog.d/warm-home-discount.added.md | 2 +- .../qualifying_benefits.yaml | 10 ++++- .../gov/ofgem/warm_home_discount.yaml | 44 +++++++++++++++++++ 3 files changed, 54 insertions(+), 2 deletions(-) diff --git a/changelog.d/warm-home-discount.added.md b/changelog.d/warm-home-discount.added.md index f288c81024..2904004c88 100644 --- a/changelog.d/warm-home-discount.added.md +++ b/changelog.d/warm-home-discount.added.md @@ -1 +1 @@ -- Added the Warm Home Discount in England and Wales (`warm_home_discount`) from winter 2025-26, with parameters for the rebate amount and the qualifying means-tested benefits, and its rebate counted as miscellaneous income in HBAI household net income. +- Added the Warm Home Discount in England and Wales (`warm_home_discount`) from winter 2025-26 to the end of the scheme period on 31 March 2031, with parameters for the rebate amount and the qualifying means-tested benefits, and its rebate counted as miscellaneous income in HBAI household net income. diff --git a/policyengine_uk/parameters/gov/ofgem/warm_home_discount/qualifying_benefits.yaml b/policyengine_uk/parameters/gov/ofgem/warm_home_discount/qualifying_benefits.yaml index d8d2d45cd7..0318910b3b 100644 --- a/policyengine_uk/parameters/gov/ofgem/warm_home_discount/qualifying_benefits.yaml +++ b/policyengine_uk/parameters/gov/ofgem/warm_home_discount/qualifying_benefits.yaml @@ -1,4 +1,4 @@ -description: Means-tested benefits whose receipt by a member of the household qualifies it for the Warm Home Discount in England and Wales. The Secretary of State sets them in the eligibility statement for each scheme year. In 2025-26, Core Group 1 covered Pension Credit Guarantee Credit and Core Group 2 the other benefits listed, including Pension Credit Savings Credit, so any Pension Credit qualifies. From 2026-27 a single core group covers both elements of Pension Credit. Before 2025-26, the low-income group also had to pass a high-cost-to-heat test on property data, which the model doesn't encode, so the list is empty and the model doesn't calculate the rebate for those years. +description: Means-tested benefits whose receipt by a member of the household qualifies it for the Warm Home Discount in England and Wales. The Secretary of State sets them in the eligibility statement for each scheme year. In 2025-26, Core Group 1 covered Pension Credit Guarantee Credit and Core Group 2 the other benefits listed, including Pension Credit Savings Credit, so any Pension Credit qualifies. From 2026-27 a single core group covers both elements of Pension Credit. Before 2025-26, the low-income group also had to pass a high-cost-to-heat test on property data, which the model doesn't encode, so the list is empty and the model doesn't calculate the rebate for those years. The Warm Home Discount (England and Wales) Regulations 2026 set the scheme period to end on 31 March 2031, after scheme year 20 (2030-31), and an extension needs further regulations, so the list is empty from 2031-32. values: 2011-04-01: [] 2025-04-01: @@ -23,6 +23,14 @@ values: reference: - title: "Warm Home Discount: eligibility statement, England and Wales, 2026 to 2027" href: https://www.gov.uk/government/publications/warm-home-discount-eligibility-statement-england-and-wales-2026-to-2027-scheme-year/warm-home-discount-eligibility-statement-england-and-wales-2026-to-2027 + 2031-04-01: + value: [] + metadata: + reference: + - title: The Warm Home Discount (England and Wales) Regulations 2026, reg. 4(2)(b) (scheme period ends 31 March 2031) + href: https://www.legislation.gov.uk/uksi/2026/389/regulation/4/made + - title: The Warm Home Discount (England and Wales) Regulations 2026, reg. 3 ("scheme year" 16 to 20) + href: https://www.legislation.gov.uk/uksi/2026/389/regulation/3/made metadata: unit: list period: year diff --git a/policyengine_uk/tests/policy/baseline/gov/ofgem/warm_home_discount.yaml b/policyengine_uk/tests/policy/baseline/gov/ofgem/warm_home_discount.yaml index 83fd4a24cd..39f563113d 100644 --- a/policyengine_uk/tests/policy/baseline/gov/ofgem/warm_home_discount.yaml +++ b/policyengine_uk/tests/policy/baseline/gov/ofgem/warm_home_discount.yaml @@ -343,3 +343,47 @@ warm_home_discount: 0 hbai_household_net_income: 1000 hbai_household_net_income_ahc: 1000 + +- name: Universal Credit recipient in England, 2030-31, the last scheme year + period: 2030 + input: + people: + person: + age: 35 + benunits: + benunit: + members: [person] + pension_credit: 0 + universal_credit: 1000 + housing_benefit: 0 + esa_income: 0 + jsa_income: 0 + income_support: 0 + households: + household: + members: [person] + region: LONDON + output: + warm_home_discount: 150 + +- name: No rebate in 2031-32, after the scheme period ends on 31 March 2031 + period: 2031 + input: + people: + person: + age: 35 + benunits: + benunit: + members: [person] + pension_credit: 0 + universal_credit: 1000 + housing_benefit: 0 + esa_income: 0 + jsa_income: 0 + income_support: 0 + households: + household: + members: [person] + region: LONDON + output: + warm_home_discount: 0