Methodology
Last updated . Figures refresh every night. How each figure is worked out.
Every figure on this site is either read directly from a published source or derived from published sources by a calculation set out on this page. Nothing is estimated, modelled or adjusted beyond what is described here.
The pump price decomposition
Each week's pump price is split into four parts. The first three are measured; the fourth is whatever is left.
- Crude. Brent in dollars a barrel, divided by 158.987 litres, divided by the pound in dollars, times 100. Brent and the exchange rate are daily, so each week takes the most recent observation on or before the pump price date. A week is dropped rather than guessed at if either is more than 21 days old.
- VAT. The pump price includes VAT, so VAT is price × r ÷ (1 + r), where r is the rate DESNZ publishes for that week. At 20% that is exactly one sixth of the pump price.
- Duty. The rate DESNZ publishes alongside that week's price, not a rate typed in here.
- Margin. The residual: price minus crude minus duty minus VAT. It covers refining, shipping, storage, distribution and the forecourt. Because it is a residual, anything the Brent benchmark misses — biofuel content, refinery timing, the crack spread — lands in it. It is not a measure of retailer profit.
The current split is 61.5p crude, 28.9p margin, 52.95p duty and 28.7p VAT on a 172.0p litre.
Year-on-year comparisons
Each figure is compared with the observation nearest to exactly one year before its own date, taken from the same series. Where the series is annual or semi-annual, the nearest observation can be some months from the anniversary, so the comparison date is shown next to the change rather than implied. A comparison more than 400 days from the anniversary is not shown at all.
Flagging weeks
Three checks run over the weekly decomposition on every build.
- Oil dearer, pump cheaper. Weeks where Brent in dollars was higher than the latest week but the pump price was lower. Runs of nearby qualifying weeks describe the same event, so only the most striking week of each episode is kept.
- The same in pence. The identical test with crude converted to pence per litre, which removes the exchange rate and isolates duty, VAT and margin.
- Wide margins. Weeks where the residual margin sat more than 1.5 standard deviations above its own trailing 52-week mean. Consecutive weeks are grouped into episodes.
The rockets-and-feathers estimate
Weekly changes in the pump price are regressed on the positive and negative parts of weekly changes in crude (in pence per litre, so the exchange rate is already inside the input), with lags from zero to eight weeks:
ΔPumpt = a + Σk β+k ΔCrude+t−k + Σk β−k ΔCrude−t−k
Three numbers come out. Cumulative pass-through is the sum of the coefficients in each direction: how much of a move in crude eventually reaches the pump. The median lag is the point at which half of that response has arrived, and is the headline figure. The mean lag is the coefficient-weighted average, which weights the tail of the response and can point the other way; when it does, the page says so rather than quoting whichever number reads better. Fitted by ordinary least squares with a small ridge term, since adjacent lag columns are nearly collinear.
Current fit: 1153 weekly observations, R² 0.605.
This is one specification estimated on national weekly averages. It describes how the average price across thousands of forecourts has moved; it is not evidence about any individual retailer.
Sanity checks and last-good values
Every fetched value passes two tests before it is accepted.
- Bounds. Absolute limits per series — UK petrol between 80p and 400p, Brent between $10 and $300, and so on. A value outside them is rejected whatever surrounds it, which is what catches a units error.
- Step change. A limit on the change between consecutive observations, typically 15% for weekly pump prices and 25% for daily crude. This one is a suspicion rather than a verdict: crude really did fall 30% in a day when the Gulf War started. So a value that breaks the limit is accepted when the next observation confirms the new level, and rejected when nothing confirms it — which includes the case that matters most on a nightly run, a lone bad value at the end of a series.
A rejected value never replaces a good one. A source that fails entirely never blanks a figure: the stored series is kept, the page shows the last good value with its as-of date, and a marker appears if it is older than that source normally publishes. The status page lists every source and its state.
Which source each figure comes from
| Series | Source | Publisher | Figures as of |
|---|---|---|---|
| Brent crude oil spot price (FRED DCOILBRENTEU) | link | Federal Reserve Bank of St. Louis | 15 September 2026 |
| Consumer Prices Index including owner occupiers’ housing costs (CPIH) | link | Office for National Statistics | 6 April 2024 |
| Consumer Prices Index including owner occupiers’ housing costs (CPIH) | link | Office for National Statistics | 1 January 2026 |
| Weekly Oil Bulletin | link | European Commission | 14 September 2026 |
| Electricity prices for household consumers (nrg_pc_204) | link | Eurostat | 1 July 2025 |
| Gas prices for household consumers (nrg_pc_202) | link | Eurostat | 1 July 2025 |
| Weekly Oil Bulletin | link | European Commission | 14 September 2026 |
| Spot exchange rate, US $ into sterling (XUDLUSS) | link | Bank of England | 21 September 2026 |
| Domestic electricity prices in the IEA (QEP 5.5.1) | link | DESNZ, derived from IEA Energy Prices and Taxes | 1 July 2024 |
| Industrial electricity prices in the IEA (QEP 5.3.1) | link | DESNZ, derived from IEA Energy Prices and Taxes | 1 July 2024 |
| HMRC tax receipts and National Insurance contributions for the UK | link | HM Revenue and Customs | 6 April 2025 |
| HMRC tax receipts and National Insurance contributions for the UK | link | HM Revenue and Customs | 6 April 2025 |
| HMRC tax receipts and National Insurance contributions for the UK | link | HM Revenue and Customs | 6 April 2025 |
| HMRC tax receipts and National Insurance contributions for the UK | link | HM Revenue and Customs | 6 April 2025 |
| HMRC tax receipts and National Insurance contributions for the UK | link | HM Revenue and Customs | 6 April 2025 |
| HMRC tax receipts and National Insurance contributions for the UK | link | HM Revenue and Customs | 6 April 2025 |
| HMRC tax receipts and National Insurance contributions for the UK | link | HM Revenue and Customs | 6 April 2025 |
| Tobacco Bulletin | link | HM Revenue and Customs | 6 April 2025 |
| Typical retail prices of petroleum products (QEP 4.1.1 to 4.1.3) | link | Department for Energy Security and Net Zero | 1 July 2026 |
| Weekly road fuel prices | link | Department for Energy Security and Net Zero | 21 September 2026 |
| Weekly road fuel prices | link | Department for Energy Security and Net Zero | 21 September 2026 |
| Typical retail prices of petroleum products (QEP 4.1.1 to 4.1.3) | link | Department for Energy Security and Net Zero | 1 July 2026 |
| Weekly road fuel prices | link | Department for Energy Security and Net Zero | 21 September 2026 |
| Weekly road fuel prices | link | Department for Energy Security and Net Zero | 21 September 2026 |
| Weekly road fuel prices | link | Department for Energy Security and Net Zero | 21 September 2026 |
| US No. 2 diesel retail price (FRED GASDESW) | link | Federal Reserve Bank of St. Louis | 7 September 2026 |
| US regular all formulations gas price (FRED GASREGW) | link | Federal Reserve Bank of St. Louis | 7 September 2026 |
| US dollar / euro exchange rate (FRED DEXUSEU) | link | Federal Reserve Bank of St. Louis | 18 September 2026 |
| West Texas Intermediate spot price (FRED DCOILWTICO) | link | Federal Reserve Bank of St. Louis | 15 September 2026 |
| Weekly road fuel prices | link | Department for Energy Security and Net Zero | 21 September 2026 |
Figures kept by hand — Ofgem's cap components, the eVED rates, the policy timeline, the renewables
scheme costs — are in config/manual.json with a source link and a verification date
each, and that date is shown next to the figure on the page. A nightly check reads Ofgem's published
unit rates and raises an issue if they no longer match what is in that file.