Methodology

How we collect and serve fuel price data

Transparency is central to Fuelsy. This page explains exactly how we source, process, and deliver fuel price data.

Data Source

All fuel price data in Fuelsy comes from the UK Government Fuel Finder API, maintained by the Department for Energy Security and Net Zero. This is the same data source that powers the GOV.UK fuel price comparison service.

Under UK regulations, major fuel retailers are required to report their pump prices to this central government system. The API covers approximately 7,500 fuel stations across England, Scotland, Wales, and Northern Ireland, spanning 15+ major brandsincluding Asda, BP, Shell, Tesco, Sainsbury’s, Esso, and Morrisons.

Polling Cadence

Our backend infrastructure polls the government API on two schedules:

  • Price data: Every 2 minutes. This captures price changes as close to real time as the source data allows.
  • Station metadata: Hourly. This includes station names, addresses, amenities, opening hours, and operational status (temporary or permanent closures).

On every price poll, we compare the incoming data against our stored current prices. When a change is detected, we record the event in an append-only price change log with both old and new prices, enabling full historical analysis.

Data Pipeline

Our data pipeline processes incoming fuel data through several stages:

  • Ingestion: Raw API responses are parsed and validated against expected schemas.
  • Price normalisation: All prices are stored in tenths of a penny per litre for precision, avoiding floating-point rounding issues.
  • Change detection: Each incoming price is compared against the last known price for that station and fuel type. Only genuine changes are logged.
  • Daily snapshots: At the end of each day, we capture a snapshot of all current prices, enabling accurate historical trend analysis.
  • Station change tracking: Metadata changes (rebranding, closures, amenity updates) are tracked separately to maintain station history.

Fuel Types

Fuelsy tracks four fuel types as defined by the government API:

  • E10 — Unleaded petrol (10% ethanol), the UK standard since September 2021
  • E5 — Super Unleaded petrol (5% ethanol), the previous standard grade
  • B7 — Standard diesel (up to 7% biodiesel)
  • SDV — Premium/Super diesel

Intelligence & Metrics

Beyond raw prices, Fuelsy computes derived intelligence metrics for each station:

  • vs. usual price:How the current price compares to the station’s 30-day rolling average, highlighting whether the station is currently cheap or expensive for itself.
  • Trust score: A 0-100 score reflecting how reliably and frequently a station reports price updates.
  • Volatility: Categorised as low, medium, or high based on the frequency and magnitude of price changes.
  • Anomaly detection: Prices that appear unusually high, low, or stale are flagged with human-readable explanations.

Regional Aggregation

Regional metrics are computed at the postcode district level (e.g. “LS” for Leeds, “M” for Manchester). For each district and fuel type, we calculate:

  • Median and average prices
  • Price spread (range between cheapest and most expensive)
  • 3-day and 7-day price momentum (directional trend)
  • Station count

Freshness & Latency

Every API response from Fuelsy includes a data_age_secondsfield, indicating how many seconds have elapsed since the last successful poll. On the website, this is shown as the “last updated” indicator. Typical data age is under 2 minutes during normal operation.

Limitations

Fuelsy’s data quality is bounded by the quality of the government source:

  • Not all UK stations participate in the government scheme. Very small independent stations may not be included.
  • Retailers report prices at their own discretion. Some stations update more frequently than others.
  • There can be a delay between a physical pump price change and the retailer reporting it to the government API.
  • Prices shown are the retailer’s reported price and may not always reflect the exact price at the pump in real time.

Infrastructure

The Fuelsy backend runs on dedicated infrastructure in the UK, ensuring low latency for data retrieval. The backend is built with Swift (Vapor) and uses PostgreSQL for storage. The website is built with Next.js and uses Incremental Static Regeneration (ISR) to serve fresh data with minimal latency.

See methodology in action

The Fuelsy app shows trust scores, anomaly flags, and freshness indicators for every station — so you always know how reliable a price is.