How MPG Calc Works

Last updated: April 2026

Where the prices come from

Every fuel price on MPG Calc comes directly from the UK Government Fuel Finder scheme, administered by the Department for Energy Security and Net Zero. Under legislation introduced in 2022, every UK fuel retailer operating more than one forecourt is legally required to submit their live prices to a central government API. There is no manual entry and no user-submitted data on this site.

The dataset covers approximately 8,000 forecourts across Great Britain and Northern Ireland, reporting four fuel types: unleaded (E10), premium unleaded (E5), diesel (B7), and premium diesel (SDV).

How often prices are updated

We collect from the government API every 30 minutes. Forecourts update their prices in the scheme as they change — typically once or twice a day, though supermarkets and large chains often update more frequently. The time you see on a station's page reflects when that forecourt last filed a price change, not when we last checked.

Data quality

The mandatory reporting scheme is comprehensive, but a small proportion of submissions contain filing errors — transposed prices, values entered in the wrong field, or implausible figures. Left uncorrected, these would distort the national and regional averages that the site displays.

We run an automated quality check on every incoming dataset. Stations with prices that appear erroneous are either corrected automatically (where the error type is unambiguous) or excluded from averages and comparisons while still being shown on their own station page with a warning. Either way, the original submitted price is preserved and visible.

Corrected or flagged prices do not affect the underlying government data — we are applying our own quality layer on top of it.

Town and location data

Each station's postcode is resolved against the postcodes.io API, a data service built on official ONS and OS datasets, to attach community names. This is what powers the town pages — /towns/doncaster, /towns/bishop-auckland and so on.

Not all postcodes map cleanly to a single place name — a city-centre forecourt might belong to a ward name that means nothing to most people, while a rural station might sit in a parish most maps don't label. We apply a set of rules to produce the most useful and accurate place names, drawing on built-up area data, civil parish records, and electoral ward data depending on what's available for each location.

Averages and statistics

The national and regional averages on the statistics page are computed from the quality-checked live dataset. Stations with flagged or erroneous prices are excluded. Regional averages cover each postcode area (e.g. all stations in the SW area). Brand averages are computed across all qualifying stations for that brand.

We store a daily snapshot of national averages in a historical record, which is what powers the trend charts on town and postcode pages. This archive goes back to when the site launched.

Price change signals

Station pages show an indicator of whether a price change looks likely in the near term, based on a combination of factors including how the station's price compares to others in the same brand and area, how long it has been since the last price change, and recent movements in crude oil prices. These are signals, not predictions — they reflect patterns in historical pricing behaviour and should be read accordingly.

Crude oil data

Brent crude prices and GBP/USD exchange rates are sourced from Yahoo Finance. The statistics page shows current crude prices alongside an implied range for what that might mean at the pump, based on our analysis of the historical relationship between crude movements and UK retail fuel prices. For more detail on that relationship, see our Rockets and Feathers analysis.

What we don't do

  • We do not accept user-submitted price corrections
  • We do not scrape competitor websites
  • We do not sell or share any user data
  • We are not affiliated with any fuel retailer, brand, or oil company

Questions about the data? Get in touch.