Skip to content
Open
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/676.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- Add the Rural Fuel Duty Relief Scheme: a 5p/litre reduction on petrol and diesel for households in eligible rural postcodes, exposed through a new `in_rural_fuel_duty_relief_area` input.
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
description: Per-litre reduction in fuel duty applied to petrol and diesel purchased in eligible rural areas under the Rural Fuel Duty Relief Scheme.
values:
2012-03-01: 0.05
metadata:
unit: currency-GBP
label: Rural Fuel Duty Relief rate
reference:
- title: Rural fuel duty relief scheme — Notice 2001
href: https://www.gov.uk/guidance/rural-duty-relief-scheme-notice-2001
- title: Hydrocarbon Oil (Mileage Allowance for Rural Petrol Filling Stations) Regulations 2011 (SI 2011/2935)
href: https://www.legislation.gov.uk/uksi/2011/2935/contents/made
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
- name: Household outside the Rural Fuel Duty Relief area pays the full fuel duty rate
period: 2025
absolute_error_margin: 0.01
input:
people:
adult:
age: 40
benunits:
benunit:
members: [adult]
households:
household:
members: [adult]
petrol_litres: 1_000
diesel_litres: 0
in_rural_fuel_duty_relief_area: False
output:
# 1,000 litres * 0.5295 GBP/L / 0.5 (statutory) * 1 (economic) = 1,059
fuel_duty: 1_059

- name: Household inside the Rural Fuel Duty Relief area receives the 5p/L reduction
period: 2025
absolute_error_margin: 0.01
input:
people:
adult:
age: 40
benunits:
benunit:
members: [adult]
households:
household:
members: [adult]
petrol_litres: 1_000
diesel_litres: 0
in_rural_fuel_duty_relief_area: True
output:
# 1,000 litres * (0.5295 - 0.05) GBP/L / 0.5 (statutory) * 1 (economic) = 959
fuel_duty: 959

- name: Rural relief applies to both petrol and diesel litres
period: 2025
absolute_error_margin: 0.01
input:
people:
adult:
age: 40
benunits:
benunit:
members: [adult]
households:
household:
members: [adult]
petrol_litres: 600
diesel_litres: 400
in_rural_fuel_duty_relief_area: True
output:
# (600 + 400) litres * (0.5295 - 0.05) GBP/L / 0.5 * 1 = 959
fuel_duty: 959
6 changes: 5 additions & 1 deletion policyengine_uk/variables/gov/hmrc/fuel_duty/fuel_duty.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,12 @@ def formula(household, period, parameters):
fd = parameters(period).gov.hmrc.fuel_duty
petrol_litres = household("petrol_litres", period.this_year) / MONTHS_IN_YEAR
diesel_litres = household("diesel_litres", period.this_year) / MONTHS_IN_YEAR
in_relief_area = household("in_rural_fuel_duty_relief_area", period.this_year)
effective_rate = (
fd.petrol_and_diesel - in_relief_area * fd.rural_fuel_duty_relief
)
return (
fd.petrol_and_diesel
effective_rate
* (petrol_litres + diesel_litres)
/ STATUTORY_CONSUMER_INCIDENCE
* ECONOMIC_CONSUMER_INCIDENCE
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
from policyengine_uk.model_api import *


class in_rural_fuel_duty_relief_area(Variable):
label = "In Rural Fuel Duty Relief scheme area"
documentation = (
"Whether the household is located in a postcode eligible for the Rural "
"Fuel Duty Relief Scheme, which provides a flat per-litre reduction on "
"petrol and diesel purchased from registered retailers. Eligible areas "
"include the Inner and Outer Hebrides, the Northern Isles, the Islands "
"in the Clyde, the Isles of Scilly, and specified rural parts of "
"Cumbria, Devon and Northumberland."
)
entity = Household
definition_period = YEAR
value_type = bool
default_value = False
reference = "https://www.gov.uk/guidance/rural-duty-relief-scheme-notice-2001"