9 ms·
I got frustrated that every fuel price app just shows you what's cheap nearby. I wanted to know how stations actually behave: do prices go up faster than they c
by theazureguy 5mo ago
I got frustrated that every fuel price app just shows you what's cheap nearby. I wanted to know how stations actually behave: do prices go up faster than they come down, do supermarkets really save you much, how bad are motorway prices really?
So I built a scraper that hits the UK government's mandatory Fuel Finder API every 10 minutes and stores every price change. 90k records across 7,700 stations since January.
Some things I found that surprised me:
The rocket and feather effect is real and measurable. When stations raise prices the average move is 2.35p/litre. When they cut, it's 1.85p. There are also more up moves than down moves. I queried the raw history to check this rather than eyeballing a chart.
Motorway fuel is 28.4p/litre more expensive than everywhere else right now. That's about £14 extra on a 50L fill. Everyone knows motorways are expensive but I didn't expect the gap to be that wide.
The supermarket discount is only about 1.7p. I assumed it would be bigger.
Stack is Azure Functions, TimescaleDB, PostGIS, Next.js. The interesting thing about this project is the history. No public site shows how an individual station has priced over time or how a local cluster of stations react to each other. That's what I'm building towards.
Site: https://fuelinsight.co.uk https://fuelinsight.co.uk
Happy to talk through the architecture or the data if anyone's interested.
- fredoralive 5mo agoFor the "supermarket saving", did you include Asda in the supermarket pool, or as a general pool? They seem to be rather less price competitive than other supermarkets, I'd presumably because of the recentish private equity takeover involving petrol station operator Euro Garages meaning they've kinda opted out of the petrol price war (they're hardly likely to want to undercut their existing forecourts). Although the other recent private equity takeover of Morrisons led to some sort of deal with Motor Fuels Group to operate their petrol stations (but no ownership stuff in this case?), but they're seemingly still being competitive with Sainsbury's and Tesco's.
- theazureguy 5mo agoYeah Asda is in there. I match on brand name directly rather than the API's is_supermarket flag because that flag is all over the place (loads of Asda stations don't have it set). So it explicitly checks for Asda, Tesco, Morrisons, Sainsbury's, Co-op, Costco. Your point about post-PE Asda is interesting, I've noticed it too. If you want to see how they compare individually you can check the brands page on the site, shows each supermarket chain as its own line. Pretty easy to split the supermarket aggregate out per brand too, would probably show Asda creeping back towards the independents since the takeover. Might add that.
- lotsofpulp 5mo agoIt is well established that Costco sells Top Tier brand fuel at zero margins, so you could have just tracked Costco prices. In the US, Walmart, Kroger, and Albertsons also sell fuel at near zero margins, but it’s not Top Tier branded.
- appreciatorBus 5mo agoAnother insightful way to look at this is to include gasoline spot market data as a comparison. I kept hearing about the vast profits of gas stations, so one day I started a spreadsheet of my gas purchases and kept it going over 10 years. When I tried lining up the graph of what I have actually paid per litre with a spot market graph, after converting for currency, units, taxes etc, they were almost identical, indicating extremely slim margins, if any. Yes there were differences, places in the graph where stations had likely made money on my purchase, but there were just as many where they likely lost money, unless I also stepped inside to but a snack.
- theazureguy 5mo agoGood shout. DESNZ publishes weekly wholesale rack prices and they are OGL, so there is no barrier there. The interesting bit isn't just showing the gap; it's the propagation lag. Wholesale spikes and pump prices follow within days. Wholesale drops and pump prices take their time. That asymmetry is basically what I built this dataset to measure. Adding the wholesale series as a reference line is on the list.
- christina97 5mo agoYou’re absolutely right!
- jacquesm 5mo agoYou are correct. Non-chain gas stations often make only as little as one or two cents per liter, and that's before you look at pump maintenance, inspections, periodical tank replacements/upgrades/liners and other costs. Manned stations really need that shop otherwise they'd go bankrupt. Chains make a bit more money but mostly because they can play longer games with stock and options on much larger volume buys. Source: former gas station owner.
- spockz 5mo agoAnd yet I see in earnings that companies like BP and Shell make record profits over increased gas prices. How come that they do profit but the station holders not? Are shell/bp increasing the margin harder and eating the station’s lunch?
- yzydserd 5mo ago> So I built a scraper that hits the UK government's mandatory Fuel Finder API every 10 minutes and stores every price change. 90k records across 7,700 stations since January. Only 1 change per station per week on average? Fewer than I expected. Not sure I'd call it a scraper, myself. 157p/L national average is about 8 USD/G.
- theazureguy 5mo agofair point on scraper, it's more of an ingest pipeline really. the 90k is total price records across 7,700 stations since january, stations update a few times a week on average. the 10 min polling catches every move when it happens. the value is in the per-station, history over time, not the raw volume.
- traceroute66 5mo ago> Only 1 change per station per week on average? Fewer than I expected. My uneducated guess is it correlates to the weekly delivery of fuel. ;-)
- rootusrootus 5mo ago> 157p/L national average is about 8 USD/G. Europeans seem to be far more comfortable with Pigovian taxes than Americans. Or does it even come up for discussion when people are referencing the retail price at the pump?
- pacificpendant 5mo agoIt definitely does come up. A common complaint in the UK is that there are two types of tax added to fuel prices; fuel duty and VAT. So you end up paying VAT on the fuel duty you’re paying. We have had fuel price protests too, sometimes involving blockades by hauliers. https://en.wikipedia.org/wiki/Fuel_protests_in_the_United_Kingdom https://en.wikipedia.org/wiki/Fuel_protests_in_the_United_Ki...
- gruez 5mo ago>The rocket and feather effect is real and measurable. When stations raise prices the average move is 2.35p/litre. When they cut, it's 1.85p. There are also more up moves than down moves. I queried the raw history to check this rather than eyeballing a chart. Comparing the absolute size of price rises vs drops doesn't make sense, because it could very well be an issue with the underlying price (eg. crude oil or whatever). It seems hardly fair to blame gas stations for being slow to lower prices, when refineries are still also slow to lower prices. Same for blaming refineries when the global market is slow to lower prices.
- theazureguy 5mo agoyeah that's fair, without wholesale rack prices as a baseline you can't really isolate station behaviour from what's happening upstream.
- gruez 5mo ago>without wholesale rack prices as a baseline The US government publishes data on this (eg. https://www.eia.gov/petroleum/gasdiesel/ https://www.eia.gov/petroleum/gasdiesel/). The UK government might have something similar. Barring that, you can use Brent crude as a proxy.
- jonahx 5mo agoWhat did you use for the UI widgets, graphs, etc? Looks like tailwind is being used but is the design bespoke or a CSS/dashboard lib?
- theazureguy 5mo agobespoke design but used tailwind for styling. charts are recharts. no dashboard lib.
- hermitcrab 5mo agoAre you aware the some of the Fuel Finder data is total garbage? https://successfulsoftware.net/2026/03/29/stop-publishing-garbage-data-its-embarrassing/ https://successfulsoftware.net/2026/03/29/stop-publishing-ga... Why did you make 'Esso' and 'Shell' the same colour in your brand chart?
- theazureguy 5mo agoYeah aware of some data quality issues in the feed, bad coordinates, missing brands, occasional obviously wrong prices. I filter out anything outside 100-300p and exclude stations flagged as closed but there's definitely still noise in there. check the methodology page for the full detail on how i clean it. On the colours, esso and shell are both red brands so they ended up close on the chart. will fix that.
- hermitcrab 5mo agoThe Shell logo is mostly yellow, isn't it?
- theazureguy 5mo agoshell's logo does have a lot of yellow but morrisons has already claimed yellow on the chart.
- fragmede 5mo agoAny appetite in adding data for electricity rates for EVs?
- theazureguy 5mo agoI would love too. But I have not found an API that surfaces this data. This data is only public as the CMA determined the market was fundamentally broken.
- rconti 5mo agoI can only go back to March 31?
- theazureguy 5mo agoyeah that's as far back as my data goes, started ingesting in march. no history existed before that
- rconti 5mo agoI see-- no problem, thank you. I thought it was just user error or a UI bug because of this comment: > 90k records across 7,700 stations since January.
- NooneAtAll3 5mo agowhat is "since January" about then?
- theazureguy 5mo agodata goes back to january but coverage is patchy early on as we were doing full fetches rather than continuous polling. march onwards is complete.
- smashah 5mo agohttps://petrol.now/trends https://petrol.now/trends has data since feb
- umbra07 5mo agoIs at least part of this comment LLM-generated? ... Just curious, not intending this as an attack on your project.
- theazureguy 5mo agosome of my replies yeah, been a bit busy keeping the site up while the thread was live. helps with the typos too.
- bossyTeacher 5mo agoSince you are happy to talk on this topic, can I mention your privacy policy page? If a new user clicks on Accept, he has no (normie) mechanism to revoke that as the choice is stored in local storage and it doesn't expire.
- theazureguy 5mo agoAhhh thanks for that. I have deployed a change to fix this ASAP.
- King-Aaron 5mo agoMy company network wont let me see newly registered domains, so I couldn't check out your build (I'll wait until I get home!), but our local state government set up a tool called Fuel Watch that does a pretty good job of showing the today/tomorrow pricing based on post code. Probably not doing exactly what your tool does, but you might be interested: https://www.fuelwatch.wa.gov.au/ https://www.fuelwatch.wa.gov.au/
- dkga 5mo agoHi, economist focused on monetary policy/inflation here! That data would make for a cool empirical paper that could help central banks and other economists better understand price dynamics around a significant shock. Are you interested in discussing it?
- theazureguy 5mo agoAbsolutely, feel free to reach out. contact details are on the site. would love to see how I can help!
- shantnutiwari 5mo ago> I got frustrated that every fuel price app just shows you what's cheap nearby. Yes it gets a bit tiring. Considering the difference is usually 0.01 penny per litre, so it doesnt make a big difference. But it does mean in a panic everyone runs to that one station and it runs out I never understood the logic of driving 20 miles to save 0.01p/litre (but then I live in the countryside, maybe its different in cities-- though cities also have huge traffic so you are wasting the same amount of fuel)
- icanhasjonas 5mo agoI made something similar for Thailand in the peak of the crisis .. all on GitHub, regional concerns and such.. https://www.fuelthai.com/ https://www.fuelthai.com/
- prennert 5mo agoQuite interesting that some service stations did not report a change for weeks. Like this one: https://www.fuelinsight.co.uk/stations/7fd603ba12430695595b2e16fa3de0310832fe7a8c60fdfd4fcb3a19a8a13fc6 https://www.fuelinsight.co.uk/stations/7fd603ba12430695595b2... I wonder if your API queries get capped / paginated or if those stations really do not report any changes for so long. It would be interesting to know if there is a pattern with those low frequency updates.
- zpeti 5mo agoI built the very first prototype of petrolprices.com almost exactly 20 years ago I think. One man job, 2 weeks I think and we launched. Nice project :)
- theazureguy 5mo agopetrolprices.com is still going strong. nice to meet one of the OGs.
- IneffablePigeon 5mo agoBaffled that there is now a fuel price API and yet there is no such electric charger price API