Personal Case Study · Zürich 2026
EN DE
Household Case Study  ·  Zürich Region  ·  2023–2026

Is Lidl worth
the detour?

The question everybody has but nobody answers

It started at a BBQ. The kind where someone brings a picanha, the rosé is cold, and the conversation eventually — inevitably — drifts toward groceries.

"Lidl ist viel günstiger, weisst du." A few nods. Someone refills their glass. "Lidl lohnt sich wirklich." More nods. The kind of collective wisdom that circulates freely at summer gatherings — confident, well-meaning, and entirely unverified.

I heard some version of this at the next BBQ too. And the one after that. For a while I just smiled and changed the subject. Honestly, I wasn't sure Lidl was for us — we tend to buy Bio when we can, and I had the vague feeling that the savings probably came at some kind of cost.

But the question stuck. Eventually curiosity won.

I told my wife I'd try Lidl for a year, track everything, and see what the data said. She actually helped convince me to go ahead. So every Monday I went, with our daughter along — who, to be fair, takes the whole thing extremely seriously and has strong opinions about which products are worth it. One year turned into seventeen months of data. This article is the result. The friends are welcome to read it. They'll recognize the conversation.

The short answer: they're not entirely wrong — but they're not as right as they think, and almost entirely for reasons they'd never guess.

484
receipts collected over 3 years
8'438
individual line items analysed

Two stores, two very different experiences

Before we get to the numbers, it's worth being honest about something the data doesn't fully capture: shopping at these two stores is a materially different experience — and that difference has a cost.

The Migros I go to has Passabene, the self-scanning system where you pack your bags as you shop. Grab a scanner at the entrance, scan as you go, walk out after a quick self-checkout. No conveyor belt, no repacking. With our daughter helping and things to get done, this matters more than it sounds.

The Lidl nearby doesn't have this. You queue. Everything goes on the belt. The cashier scans fast, genuinely fast, the kind of pace that makes you feel like you're already behind even before you've started packing. Then you repack at a small shelf at the end while the next person's items are already moving toward you.

Then there's the parking. The Migros I use has a covered car park, always space, protected from whatever the weather is doing. The Lidl nearby has an open-air lot that fills up fast. On a mild Tuesday it's fine. In February, rain coming down sideways, full lot, that psychological cost adds up.

What used to be one stop is now two. Migros for everything we count on, Lidl for what we could find there on the day, since the Sortiment isn't always consistent... and because I committed to doing it for a year. 🤷

None of this is quantified in the savings analysis below. But it's real, and it belongs in any honest accounting of the question.

Snowy outdoor car park in winter

The numbers: where the savings actually come from

Across 27 product categories where both stores carry comparable products, I saved an estimated CHF 875 per year by buying at Lidl. That number is extrapolated from 17 months of Lidl data. Here's the problem with that headline figure:

66%
of the total annual saving comes from
a single product category: Skyr.

The Migros "You" brand Skyr costs approximately CHF 10.59 per kilogram. The equivalent at Lidl costs CHF 3.95–5.30/kg. That's a factor-of-two to factor-of-three gap for what is, nutritionally speaking, essentially the same product. It's not a small discount — it's a structural pricing anomaly, and it dominates everything else.

Remove Skyr from the analysis and the annual saving drops from CHF 875 to CHF 467. Still real, but a much more modest proposition.

Annual savings by category — CHF (extrapolated from 17 months)
Lidl cheaper
Migros cheaper
Same-tier comparison only (Bio vs Bio, Standard vs Standard). Categories with insufficient data excluded.

Fruit: the second-biggest opportunity

Fresh fruit and vegetables at market

Fruit is where this household spends most of its grocery budget after meat: roughly 8% of total grocery spend over 37 months, almost entirely at Migros. Tomatoes alone account for CHF 250 at Migros vs CHF 67 at Lidl, with Lidl's Bio Dattelcherrytomaten running cheaper than Migros' equivalent.

Berries are the most interesting case. The raw numbers look like a massive Lidl advantage — Lidl Himbeeren at CHF 2.55/pack versus Migros Bio Himbeeren at CHF 5.96/pack. But per kilogram, it's closer than it looks: Lidl's Bio berries come in at CHF 27.94/kg, while Migros Bio berries average CHF 22–25/kg. The punnet is smaller and the Bio certification on Lidl berries means German or Spanish origin, not Swiss.

The berry nuance

Lidl berries look cheaper on the shelf. Per kilogram, Migros Bio berries are actually comparable — or even slightly cheaper — and are Swiss-grown when in season (May–August). If provenance matters to you, this isn't the saving it appears to be.

Avocado is cleaner: Lidl Bio Avocado at CHF 1.35/piece versus Migros Bio at CHF 1.74 — 22% cheaper, consistent across 29 Lidl purchases. No provenance catch here; both are imported.


Meat: where Lidl loses

Fresh meat at butcher counter

We try to buy Swiss Bio meat first. Swiss conventional if Bio isn't there. This shapes what we actually buy, and it's also where Lidl's limits become most visible.

For chicken, the numbers show Lidl's Bio Pouletbrust at CHF 26.37/kg versus Migros Bio Poulet Oberschenkel at CHF 24/kg — Migros cheaper. Though to be fair, breast and thigh aren't quite the same thing, and comparing them per kilogram is a bit like comparing apples and slightly different apples. What's clearer is the origin: Migros Bio chicken is Swiss; Lidl's is labeled "Bio Hähnchen" — the German word for chicken — which signals German or Austrian provenance. For beef mince, Lidl wins more cleanly: Bio Weiderind Hackfleisch at CHF 19.62/kg versus Migros at CHF 22.75/kg, a solid 14% saving.

Meat spend in numbers

80.4% of Lidl meat purchases are Bio — this household consistently chose the Bio option at Lidl when available. At Migros, the apparent Bio share is lower (17.9%) because most meat is bought at the fresh counter, where receipt names like "Rindsbraten" or "Fleischvögel" carry no certification label even when the product is Swiss-raised.

But the bigger story is range and consistency. A big chunk of meat spending stayed at Migros not because Migros was cheaper — but because Lidl's selection is unpredictable. Some days they have Rindsbraten. Other days they don't. Spare Ribs, Bündnerfleisch, a decent Bratwurst — sometimes there, sometimes not. You can't plan a week's meals around a maybe. For varied proteins, Lidl is a supplement to Migros, not a substitute.


Frozen spinach: a draw

This one surprised me. Lidl TK Schweizer Blattspinat: CHF 6.68/kg. Migros Bio Blattspinat: CHF 7.10/kg. Both bought 21 times each. The saving is CHF 0.42/kg, or about CHF 8 over 17 months. Negligible — and worth noting that Migros' spinach carries the Bio certification.

This category produced no meaningful finding, and that's worth saying explicitly. Not every comparison yields a clear winner. Sometimes two products are just about the same price.


The price ratio: category by category

Lidl price as % of Migros price — same quality tier
Below 100% = Lidl cheaper. Above 100% = Migros cheaper. Red line at 100%.

The chart above shows Lidl's price as a percentage of Migros' equivalent, same tier. Most categories cluster in the 70–100% range — Lidl is cheaper, but not dramatically so. The outliers are instructive:


Is the detour worth it?

Calculator and receipt — calculating grocery savings

At ~36 Lidl trips per year (roughly every two weeks), the cash saving works out to CHF 24 per trip. At a conservative Swiss time valuation of CHF 80/hour, 20 minutes of extra travel and queuing costs CHF 27 per trip. The math barely breaks even — and that's before accounting for the conveyor belt, the outdoor car park in January, and the lack of Passabene.

CHF 875
annual cash saving
(all comparable categories)
CHF 960
annual time cost
(CHF 80/hr × 20 min × 36 trips)
CHF 408
saving from Skyr alone
(one product switch)
The practical verdict

The single most efficient strategy: buy Skyr at Lidl. That one switch captures CHF 408/year — 47% of total savings — with zero change to your primary shopping destination. Add tomatoes and Bio lemons on Lidl trips and you've covered 60% of all available savings with three product categories.

For everything else — especially meat, fresh counter items, and any product where Swiss provenance matters to you — Migros remains the better choice on both range and quality tier.


Will I keep going to Lidl?

Yes. Partly because the numbers make sense, partly because my daughter now has strong opinions about which Lidl products are "the good ones," and partly because after seventeen months I've built a routine and I'd feel guilty breaking it.

Do I regret starting? Ask me on a February Monday, rain pouring down, open-air car park completely full, and me trying to load thirty packs of Skyr into the boot while my daughter explains at length why we should have bought the Lidl Himbeeren too.

Still worth it, probably. The neighbors were mostly right. I just needed the data to admit it.

What the data couldn't tell us

Some comparisons that seemed promising turned out to produce no useful finding. Berries appear cheaper at Lidl on the shelf but normalize to comparable per-kg prices. Frozen spinach is effectively the same at both stores. Bio chicken at Lidl costs more per kilo than at Migros, and comes from Germany rather than Switzerland. The analysis is honest about these dead ends — they're part of the story.

There's also a significant blind spot: 17.5% of all receipt line items couldn't be matched to a product catalog entry. Most of these are from the Migros fresh meat counter — Rindsbraten, Fleischvögel, Schweinsrack — where the receipt carries only a handwritten-style name and a price per 100g. This is a significant chunk of Migros spending that has no equivalent at Lidl and no CHF/kg breakdown.


Limitations of this analysis tap to expand
N = 1

One household in Zürich/Wallisellen. These findings describe my shopping accurately. They cannot be generalized to "Swiss households save CHF 875/year at Lidl." Your products, your frequency, your store locations — all different.

Bio bias

This household spends 29% of its grocery budget on Bio products — well above the Swiss average. Bio tiers often show larger price gaps between premium retailers and discounters. Standard-tier shoppers may see different, possibly smaller, differentials.

Lidl data

Only 17 months of Lidl receipts versus 37 months of Migros data. Annual savings are extrapolated. Lidl also provides almost no product metadata — 95% of Lidl items have no machine-readable package size, making per-unit comparison impossible for most of their range.

Skyr effect

Remove Skyr and the annual saving drops from CHF 875 to CHF 467. A single pricing anomaly in one category is driving nearly half the headline number. This is fragile — if Migros corrects the Skyr price, or you stop eating it, the finding changes substantially.

Selection bias

The analysis measures what was actually bought at Lidl, not what could have been bought. If you'd switched more categories to Lidl, savings would theoretically be higher — but this assumes comparable product availability and quality, which isn't always the case.

Further reading tap to expand

Further reading

This analysis sits within a broader body of research on supermarket price comparison and consumer behavior. A few relevant threads:

  • The price-quality relationship in private-label vs. national brands is well documented: Gabrielsen & Sørgard (2007), Private labels, price rivalry, and public policy — European Economic Review.
  • On Swiss food consumer behavior and organic premiums: Swiss Federal Office for Agriculture publishes annual agricultural reports with organic market share data (agrarberichte.ch).
  • For supermarket format competition — hard discounters vs. full-service supermarkets — Cleeren, Verboven et al. (2010), Intra- and interformat competition among discounters and supermarkets, Marketing Science.
  • The time cost of shopping is analyzed in Seiders et al. (2000), Do satisfied customers buy more? — though most academic literature underestimates the friction of format differences like checkout flow and parking.

The source data and extraction scripts for this analysis are published on GitHub, including the reverse-engineered Migros Cumulus API and Lidl Plus receipt parser. Contributions to add Coop, Aldi, or Denner support are welcome.



Different findings? Different dataset? Happy to hear from you.
✉ Mail me

About this project. Built by Eduardo de Magalhães. The data pipeline, receipt parsing, product matching, price normalisation, and this website were written by me. Claude (Anthropic) was used as a programming assistant — for debugging, code generation from specifications, and as the underlying language model for fuzzy product-name matching between receipt abbreviations and product catalog entries. All data collection, curation decisions, category design, and analytical conclusions are my own.

The Migros Cumulus receipt API and Lidl Plus receipt structure were reverse-engineered from browser network traffic. Neither is officially documented for third-party use. Scripts published on GitHub — use at your own risk.

Visits:
Eduardo de Magalhães · Zürich · May 2026
484 receipts · 8'438 line items · 156 weeks