Fuel Duty#
Fuel duty is a tax levied on the sale of fuels, mainly petrol and diesel used in vehicles or used for heating. PolicyEngine models fuel duty imposed on the purchases of petrol and diesel for vehicles only.
Fuel duty parameters can be found in policyengine_uk/parameters/gov/hmrc/fuel_duty
and logic in policyengine_uk/variables/gov/hmrc/fuel_duty
.
Fuel Duty Rate#
Fuel duty is levied per unit of petrol or diesel sold. The UK government usually updates rates in Spring or Autumn Budgets alongside other tax reforms. In March 2022, the UK government announced a 5 pence cut in fuel duty rates for 12 months and the cut was further extended to March 2024. Before this reduction, the rates of fuel duty had been frozen at £0.5795 per litre of petrol and diesel since April 2013.
The table and graph of historical rates on petrol and diesel for fuel duty since April 2010 show below:
Show code cell source
from policyengine_uk import CountryTaxBenefitSystem
import plotly.express as px
import pandas as pd
system = CountryTaxBenefitSystem()
hmrc = system.parameters.gov.hmrc
df = pd.DataFrame()
df["Date of change"] = [
parameter.instant_str
for parameter in hmrc.fuel_duty.petrol_and_diesel.values_list
]
df["Fuel duty rate (£/litre)"] = [
parameter.value
for parameter in hmrc.fuel_duty.petrol_and_diesel.values_list
]
df.sort_values("Date of change", inplace=True)
df.set_index("Date of change")
Fuel duty rate (£/litre) | |
---|---|
Date of change | |
2010-04-01 | 0.571900 |
2010-10-01 | 0.581900 |
2011-01-01 | 0.589500 |
2011-03-23 | 0.579500 |
2012-01-01 | 0.609700 |
2013-04-01 | 0.579500 |
2015-01-01 | 0.579500 |
2016-01-01 | 0.579500 |
2017-01-01 | 0.579500 |
2018-01-01 | 0.579500 |
2019-01-01 | 0.579500 |
2020-01-01 | 0.579500 |
2021-01-01 | 0.579500 |
2022-01-01 | 0.529500 |
2023-01-01 | 0.529500 |
2024-01-01 | 0.579500 |
2025-01-01 | 0.583879 |
2026-01-01 | 0.583909 |
2026-04-01 | 0.592897 |
2026-07-01 | 0.596999 |
2026-10-01 | 0.603298 |
2027-01-01 | 0.599042 |
2027-04-01 | 0.609043 |
2027-07-01 | 0.614374 |
2027-10-01 | 0.621257 |
2028-01-01 | 0.617539 |
Show code cell source
import plotly.express as px
px.line(
df,
x="Date of change",
y="Fuel duty rate (£/litre)",
title="Fuel duty rate on petrol and giesel",
color_discrete_sequence=["#2C6496"],
).update_layout(
yaxis_title="Fuel duty rate per litre",
yaxis_tickprefix="£",
yaxis_tickformat=",.2f",
xaxis_title="Date",
xaxis_tickformat="%Y",
height=600,
width=800,
template="plotly_white",
).update_xaxes(
tickangle=45, tickfont={"size": 10}
).update_traces(
line_shape="hv"
)