Skip to content

Commit e5f6439

Browse files
vahid-ahmadiclaude
andcommitted
Add Rural Fuel Duty Relief Scheme (#676)
Apply a 5p/litre reduction to petrol and diesel for households flagged as being in an eligible rural area via the new `in_rural_fuel_duty_relief_area` input. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 6d2a176 commit e5f6439

5 files changed

Lines changed: 94 additions & 1 deletion

File tree

changelog.d/676.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
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.
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
description: Per-litre reduction in fuel duty applied to petrol and diesel purchased in eligible rural areas under the Rural Fuel Duty Relief Scheme.
2+
values:
3+
2012-03-01: 0.05
4+
metadata:
5+
unit: currency-GBP
6+
label: Rural Fuel Duty Relief rate
7+
reference:
8+
- title: Rural fuel duty relief scheme — Notice 2001
9+
href: https://www.gov.uk/guidance/rural-duty-relief-scheme-notice-2001
10+
- title: Hydrocarbon Oil (Mileage Allowance for Rural Petrol Filling Stations) Regulations 2011 (SI 2011/2935)
11+
href: https://www.legislation.gov.uk/uksi/2011/2935/contents/made
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
- name: Household outside the Rural Fuel Duty Relief area pays the full fuel duty rate
2+
period: 2025
3+
absolute_error_margin: 0.01
4+
input:
5+
people:
6+
adult:
7+
age: 40
8+
benunits:
9+
benunit:
10+
members: [adult]
11+
households:
12+
household:
13+
members: [adult]
14+
petrol_litres: 1_000
15+
diesel_litres: 0
16+
in_rural_fuel_duty_relief_area: False
17+
output:
18+
# 1,000 litres * 0.5295 GBP/L / 0.5 (statutory) * 1 (economic) = 1,059
19+
fuel_duty: 1_059
20+
21+
- name: Household inside the Rural Fuel Duty Relief area receives the 5p/L reduction
22+
period: 2025
23+
absolute_error_margin: 0.01
24+
input:
25+
people:
26+
adult:
27+
age: 40
28+
benunits:
29+
benunit:
30+
members: [adult]
31+
households:
32+
household:
33+
members: [adult]
34+
petrol_litres: 1_000
35+
diesel_litres: 0
36+
in_rural_fuel_duty_relief_area: True
37+
output:
38+
# 1,000 litres * (0.5295 - 0.05) GBP/L / 0.5 (statutory) * 1 (economic) = 959
39+
fuel_duty: 959
40+
41+
- name: Rural relief applies to both petrol and diesel litres
42+
period: 2025
43+
absolute_error_margin: 0.01
44+
input:
45+
people:
46+
adult:
47+
age: 40
48+
benunits:
49+
benunit:
50+
members: [adult]
51+
households:
52+
household:
53+
members: [adult]
54+
petrol_litres: 600
55+
diesel_litres: 400
56+
in_rural_fuel_duty_relief_area: True
57+
output:
58+
# (600 + 400) litres * (0.5295 - 0.05) GBP/L / 0.5 * 1 = 959
59+
fuel_duty: 959

policyengine_uk/variables/gov/hmrc/fuel_duty/fuel_duty.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,12 @@ def formula(household, period, parameters):
1515
fd = parameters(period).gov.hmrc.fuel_duty
1616
petrol_litres = household("petrol_litres", period.this_year) / MONTHS_IN_YEAR
1717
diesel_litres = household("diesel_litres", period.this_year) / MONTHS_IN_YEAR
18+
in_relief_area = household("in_rural_fuel_duty_relief_area", period.this_year)
19+
effective_rate = (
20+
fd.petrol_and_diesel - in_relief_area * fd.rural_fuel_duty_relief
21+
)
1822
return (
19-
fd.petrol_and_diesel
23+
effective_rate
2024
* (petrol_litres + diesel_litres)
2125
/ STATUTORY_CONSUMER_INCIDENCE
2226
* ECONOMIC_CONSUMER_INCIDENCE
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
from policyengine_uk.model_api import *
2+
3+
4+
class in_rural_fuel_duty_relief_area(Variable):
5+
label = "In Rural Fuel Duty Relief scheme area"
6+
documentation = (
7+
"Whether the household is located in a postcode eligible for the Rural "
8+
"Fuel Duty Relief Scheme, which provides a flat per-litre reduction on "
9+
"petrol and diesel purchased from registered retailers. Eligible areas "
10+
"include the Inner and Outer Hebrides, the Northern Isles, the Islands "
11+
"in the Clyde, the Isles of Scilly, and specified rural parts of "
12+
"Cumbria, Devon and Northumberland."
13+
)
14+
entity = Household
15+
definition_period = YEAR
16+
value_type = bool
17+
default_value = False
18+
reference = "https://www.gov.uk/guidance/rural-duty-relief-scheme-notice-2001"

0 commit comments

Comments
 (0)