The hmrc package provides tidy access to statistical
data published by HM Revenue and Customs (HMRC) on GOV.UK. All functions
resolve download URLs at runtime via the GOV.UK Content API and cache
files locally between sessions.
get_tax_receipts() downloads the monthly HMRC Tax
Receipts and National Insurance Contributions bulletin, covering 41 tax
heads from April 2016 to the most recent published month.
# All 41 tax heads
receipts <- get_tax_receipts()
head(receipts)
#> date tax_head description receipts_gbp_m
#> 2016-04-01 income_tax Income Tax (PAYE... 17423
#> 2016-05-01 income_tax Income Tax (PAYE... 11847Use list_tax_heads() to see all available identifiers
without downloading data:
Filter to specific heads and date ranges:
library(ggplot2)
ggplot(big_three, aes(x = date, y = receipts_gbp_m / 1000, colour = description)) +
geom_line(linewidth = 0.8) +
scale_y_continuous(labels = scales::label_comma(suffix = "bn")) +
labs(
title = "UK monthly tax receipts",
x = NULL,
y = "GBP billions",
colour = NULL,
caption = "Source: HMRC Tax Receipts and NICs bulletin"
) +
theme_minimal(base_size = 12) +
theme(legend.position = "bottom")get_vat() covers monthly VAT receipts from April 1973,
broken into payments, repayments, import VAT, and home VAT.
get_fuel_duties() covers monthly hydrocarbon oil duty
receipts from January 1990, broken down into petrol, diesel, other, and
total.
get_tobacco_duties() covers monthly tobacco duty
receipts from January 1991, by product: cigarettes, cigars, hand-rolling
tobacco, other, and total.
get_corporation_tax() returns annual Corporation Tax
receipts broken down by levy type — onshore CT, offshore CT, Bank Levy,
Bank Surcharge, Residential Property Developer Tax (RPDT), Energy
Profits Levy (EPL), and Electricity Generators Levy (EGL). Covers
2019-20 to the most recent financial year.
get_stamp_duty() returns annual stamp duty receipts by
type from 2003-04: SDLT on property, SDLT on new leases, SDRT on shares,
and stamp duty on documents.
get_rd_credits() returns annual statistics on R&D
tax credit claims and their cost by scheme (SME R&D Relief and RDEC)
from 2000-01.
get_tax_gap() returns the most recent cross-sectional
tax gap estimates, broken down by tax type, taxpayer group, and
behaviour component (evasion, error, avoidance, etc.).
get_income_tax_stats() returns annual Income Tax
liabilities by income range (HMRC Table 2.5), including taxpayer counts,
total income, tax liabilities, and average tax rates.
get_property_transactions() returns monthly counts of
residential and non-residential property transactions by UK nation from
April 2005.
ggplot(prop, aes(x = date, y = transactions / 1000)) +
geom_line(colour = "#3B82F6", linewidth = 0.8) +
scale_y_continuous(labels = scales::label_comma(suffix = "k")) +
labs(
title = "UK residential property transactions",
x = NULL,
y = "Transactions (thousands)",
caption = "Source: HMRC Monthly Property Transactions bulletin"
) +
theme_minimal(base_size = 12)