Today was ... interesting. If you followed me for the past months over on the shitbird site, you might have seen a bunch of angry German words, lots of graphs, and the occassional news paper, radio, or TV snippet with yours truely. Let me explain.

In Austria, inflation is way above the EU average. There's no end in sight. This is especially true for basic needs like energy and food.

Our government stated in May that they'd build a food price database together with the big grocery chains. But..

the responsible minister claimed it's an immense task and will take til autumn. It will only include 16 product categories (think flour, milk,etc.). And it will only be updated once a week.

Given how Austria works, some corp close to the minister would have gotten the contract for a million on two to create a POS just enough so the minister can say "look, I did something!"

Well. I heard that and build a prototype for all products of the two biggest chains in 2 hours. The media picked it up...

Here's a selection of media coverage of the entire thing.

https://heisse-preise.io/media.html

It spread like wild fire and made the minister look like an idiot.

I took the thing down in fear of retaliation by the grocery chains. My plan: get a big NGO, news outlet or political party to host the thing and be a legal shield for the endevour.

Almost every NGO, media outlet and political party got in contzct with me (not the other way around). There were lots of promises and big words but zero action.

Heisse Preise

Nicht-kommerzielles Open-Source-Projekt um KonsumentInnen es zu ermöglichen, die günstigste Variante eines Produktes im Handel ausfindig zu machen.

All these orgs only had their self-interest in mind. After two weeks of this bullshit, I figured I might as well gamble and put this thing up in my own name.

Surely the grocery chains won't sue me. The bad PR would easily outweigh whatever little inckme loss they'd suffer from a few hundred people using the site to find the cheapest product.

You see, I'm basically just crawling the stores online stores. Most of them have an API. I then normalize the data across the stores, and expose it.

The whole thing runs client-site. The server fetches the latest data from the stores once a day. All data fits into 5mb of gzipped JSON. Small enough for the client to do anything. The server just serves 8 static files. It can handle serve all of Austria easily and could be scaled trivially. It's just static files.

Being the idiot I am, I also made it open-source:
https://github.com/badlogic/heissepreise

And as usual, people flocked to it and contributed. In no time we had all stores in Austria in there.

GitHub - badlogic/heissepreise: Jo eh.

Jo eh. Contribute to badlogic/heissepreise development by creating an account on GitHub.

GitHub

Then we also got German and Slovenian stores. Then we normalized product categories across stores and added some light data science techniques to match the same or similar products across stores to make prices more easily comparable. You know, iterative improvements.

And then some anomymous guy in Twitter send me the data he crawled for the two biggest chains. Starting in 2017. And that's when thinga really got interesting...

I scrambled to integrate his data into my platform. I added analytics tools. And then I ran my first few analyses. And my jaw dropped.

"Well, that's a bit to much of a price increase even given higher energy prices."

So I started to dig. And boy did I find a lot of things...

My first analysis actually happened before I build the platform. I was manually comparing prices of products the stores themselves offer in the lowest price segment. Things like grocer store brand milk or flour.

I compared 40 product pairs across the two biggest chains. And lo and behold: their prices matched exactly to the cent!

An NGO picked this up on Twitter and did the analysis for 600 product pairs. Same picture.

With my platform in place, I could do more advanced stuff.

E.g. given the historical data, I could see price movements for a product across the two chains. And you won't believe what I found (well, you know what's coming...)

Them fine grocery chains changed the prices of the self-branded low cost products with one to two days, or even on the same day. And they both came up with the exact same price.

This wasn't only happening in the low-price chain-brand segment. It also happened in the mid-range segment of self-branded goods.

And it all started happening when inflation went through the roof.

Clearly, something was up. My guess was: tacit collusion, meaning, oligopolic price coordination without explicit coordination.

Meanwhile, others have build platforms like I did as well. And they too saw these patterns.

There were more.

@badlogic The supermarkets used to send people with clipboards round to each other's shops to write down the prices. These days they can just scrape each other's web sites. If they so choose they can then programme their systems to put up their own prices to match without any human intervention, other than that someone has to change the prices on the shelves.
@TimWardCam we have digital price tags now. No need to manually change them in stores either anymore.
@badlogic Ah, I wouldn't know. I haven't been inside a shop since the plague started.