Every year I total up what we spend on what, and I continue to be baffled by our grocery costs. There are 3 of us1, we buy from all over but most commonly from Whole Foods, and the number just seems huge.
Before you make fun of me for shopping at Whole Foods and wondering why my groceries are expensive! Back in 2009 when I lived in Seattle and had a lot of time on my hands, I did a survey of grocery store prices. The headlines I remember are:
- Trader Joe’s is about 9% cheaper than your average grocery store (QFC, in my case). And most of their food, besides their produce, is pretty good.
- Whole Foods is only about 5% more expensive than your average grocery store. 5%! That’s nothing!
But is this still true? It would be nice to know, especially now that I buy 3x as much food!
Headlines
- Giant Eagle is about 5% cheaper than Whole Foods.
- Trader Joe’s is about 25% cheaper, Aldi around 33%!
- Buying organic costs maybe 50% more than buying the cheapest thing.
Results in more depth
- GE What I’d Buy is 95% of WF What I Buy. to be fair, GE Cheap is 91% of WF Cheap. But I care more about “What I’d Buy.”
- Aldi Cheap is 59% of WF What I’d Buy; Aldi Organic is 74% of it. TJ Cheap is 70%, TJ Organic is 88%. In both cases, I’m not really clear on “What I’d Buy”, but it’s closer to the Cheap than the Organic. So, I could cut my costs by somewhere between 12-41%, which is a wide number, but probably at least a quarter. That’s a couple thousand bucks a year, I suppose that’s enough for me to do it! Still, both stores are disappointingly not quite “one stop shops”, so given that everything is hard all the time, I don’t know, man
- holy cow though, if you’re trying to save, go to Aldi; compared to them you’re paying a 18% premium at TJ, 28% premium at GE, and 41% at WF. They’ve really made a dent in the market compared to 2009 Seattle.
- the Community Market (“cheap Giant Eagle”) costs more than the Market District (“fancy Giant Eagle”), and has fewer things. what a waste
- Organic costs a lot. I believe in buying quality food, I just don’t think the Organic label is a reliable indicator of it. And when you separate out the things that have an organic option vs those that don’t, you’re paying between 29-82% more, depending on store. It’s not that much of a difference from What I’d Buy, though, so I guess I can’t be too mad about it.
Methodology
I went to Whole Foods (WF) in East Liberty, Giant Eagle Market District (GE) in Shadyside, Trader Joe’s (TJ) in East Liberty, Aldi in Garfield, and Community Market (CM) in Bloomfield.
I picked out a “basket of food”, roughly corresponding to what we’d use in a week. This feels like the only sane way to think about food - it doesn’t really matter if the price of salt is high at one place because you’ll use about 1/50 of a container in a week. Some of these are arbitrary, like we don’t need 1lb of asparagus every week, but we would buy asparagus some weeks, broccoli some weeks, etc, so hopefully the price of asparagus would cover all this. In general, “what should be in the basket” is arguable, but I don’t care about those arguments.
For each item, I looked for up to 3 prices:
- the cheapest one
- the one that I’d buy
- the organic one
At TJ and Aldi, I skipped “the one that I’d buy”, because there aren’t many choices, and when there are, I’d usually just buy the cheap one. At Community Market, I skipped “organic”, because they don’t have much organic food. Of course I standardized sizes/units. In the case where volume = discount, I allowed buying up to 2-3x as much (e.g. if I’m comparing 1lb of peanut butter, I’d include the price for a 2lb jar divided by 2, but not a 5lb jar). This is because pantry space can usually stretch to 2x but not 5x; buying 2lb of peanut butter is easy but buying 5lb may not be.
I mostly didn’t include meat because I don’t buy meat from grocery stores. Meat is expensive; this may affect your results.
I imputed a few missing values because stores didn’t have a couple things. This is generally risky2, but in practice, there were only a few missing items: walnuts at TJ, kimchi at Aldi, and a few things at CM (but CM isn’t winning our contest anyway), so I threw in an imputed average value and moved on.
Then I calculated the cost of the basket of food, and used that to make claims like “Aldi Cheapest ($102.12) is 59% of WF What I Buy ($172.59)”.
The data
one of the three doesn’t eat as much but he does throw food everywhere so I’m counting him as a full person ↩︎
This is generally risky; in general you can’t really compare stores that offer different things! For example: store A: apples $3, caviar $10; store B: apples $1, caviar $20; store C: apples $2, no caviar; and a basket of (1 apple, 1 caviar). Then say we impute “$15 caviar” for store C. Store B looks more expensive than store C, but in reality B is better than C! We could imagine other imputations, like max(other stores) so store C would have $20 caviar too, but that can backfire in other ways. So maybe we should compare A-B, B-C, and A-C head to head, using only items that exist at both stores, and get a pairwise comparison instead of a strict ordering. But that muddies the conclusion. So, idk, I imputed a couple values, Community Market come at me ↩︎
blog 2025 2024 2023 2022 2021 2020 2019 2018 2017 2016 2015 2014 2013 2012 2011 2010