Methodology
Every figure on this site comes from one public file. This page defines each metric precisely enough that a third party can reproduce it, and states where our numbers cannot be trusted.
figures regenerated from the archive each build · wording changes in the changelog
1 · The source file
One public file, read on a schedule. Retailers in the scheme publish an open data file: for each site, the address, the grades offered and the current price per grade. We store every one unchanged before parsing it.
2 · Collection and gaps
228 readings, 113 distinct files, 0 failed. We read more often than the file is republished, so most readings return bytes we already hold. That is what separates “this price has not moved” from “we have not looked”.
We publish no expected time and count no file as late. The scheme's guidance says twice daily; we measured one generation per day in 15 of 17 samples. Until that is settled, any lateness we reported would measure our own assumption.
History before our first reading has 14 gaps. The earlier series is a weekly third-party archive of the same file. 35 of its 49 weeks produced a file; the rest are absent. A gap is not a zero, and no chart interpolates across one.
The two sources do not round alike. The weekly archive records a price to the penny; our own readings keep the tenth the file publishes. Figures either side of our first reading are therefore comparable to 1p and no finer, which is why a movement smaller than that is reported as unresolved rather than as a number.
There is no diesel history before our first reading. The archive carries one collapsed diesel grade rather than B7 standard and premium separately, so a B7 series can only begin where our own readings do. Drawing it beside a petrol line that reaches eighteen weeks further back would put two different windows on one axis, so it is not drawn until the gap closes.
| Week | Cause |
|---|---|
| 2026-07-04 | no gov_fuel_finder_gb output (404) |
| 2026-07-04 | no gov_fuel_finder_gb output (404) |
| 2026-05-30 | no gov_fuel_finder_gb output (404) |
| 2026-05-30 | no gov_fuel_finder_gb output (404) |
| 2026-05-02 | no gov_fuel_finder_gb output (404) |
| 2026-05-02 | no gov_fuel_finder_gb output (404) |
| 2026-04-04 | no gov_fuel_finder_gb output (404) |
| 2026-04-04 | no gov_fuel_finder_gb output (404) |
| 2026-02-21 | no gov_fuel_finder_gb output (404) |
| 2026-02-21 | no gov_fuel_finder_gb output (404) |
| 2026-02-14 | no gov_fuel_finder_gb output (404) |
| 2026-02-14 | no gov_fuel_finder_gb output (404) |
| 2026-02-07 | no gov_fuel_finder_gb output (404) |
| 2026-02-07 | no gov_fuel_finder_gb output (404) |
3 · Definitions
Median. The middle published price of the stations in scope at one reading. Stations that published no price for the grade are excluded from the median and counted separately, always with their count shown.
Reporting promptness. The share of observed price changes where the change appeared in a file within 30 minutes of the change timestamp the retailer supplied. It is a measure of publication timing, not of compliance with a legal duty.
Held for. Time between the first and most recent reading at the same price. A hold that begins and ends between two readings is invisible to us, so this is a floor.
4 · Worked example
Eastwood Esso Express — a real change from the most recent reading, not an illustration.
- previous reading → 169.9p
- this reading → 171.9p
- retailer change timestamp → 15:06:52 UK time
- retailer submission timestamp → 15:15:26 UK time
- lag = 9 min → counted as ≤30 min
Both timestamps are the retailer's own, carried in the file. The lag is the gap between them and never the gap between our readings — presenting our sampling interval as someone else's delay is the one error this figure exists to avoid.
Anyone with the same two files can reproduce every figure here. If you cannot, that is a bug and we want to hear about it.
5 · Known limits
Reading a published file cannot show a price that changed and changed back between two readings, or one that moved and was never published. We do not know whether a station was open, and a missing price is not evidence a grade was unavailable.
6 · What we leave out
Some forecourts have no map pin. A coordinate is withheld when we cannot stand behind it, and 14 are withheld in this reading. The station keeps its page and its prices; it simply cannot be placed on a map or measured a distance from.
Every one of the 2,419 districts can be found by postcode today. That will not always hold. A district where we withhold every coordinate has forecourts but no centre to search from, and we give it no page rather than a guessed one.
5 records are not on the site at all. A record is dropped only when all three are true: we have never held a price for it from any source, no government file has ever listed it, and its coordinate contradicts its own postcode. Any two of those and it stays. A record removed without a stated reason is exactly the kind of exclusion this site exists to make visible, so every one of them is listed here with the reason it went.
- Dimes London LS1 4AP · Exetersiteno price from any source, ever; listed only by alltheplaces; and its coordinate contradicts its own postcode
- Dimes London LS1 4AP · Exetersiteno price from any source, ever; listed only by alltheplaces; and its coordinate contradicts its own postcode
- Dimes London LS1 4AP · Exetersiteno price from any source, ever; listed only by alltheplaces; and its coordinate contradicts its own postcode
- Dimes London LS1 4AP · Exetersiteno price from any source, ever; listed only by alltheplaces; and its coordinate contradicts its own postcode
- Dimes London LS1 4AP · Exetersiteno price from any source, ever; listed only by alltheplaces; and its coordinate contradicts its own postcode
7 · Corrections and disputes
Email greg@pumplog.co.uk with the page, the figure and the date. Retailers disputing a figure get the references we used. Corrections are published here with the date, and the previous wording is kept.