Recently, I asked our readers to fill out a survey about grocery shopping habits, including where you shopped and what was on your most recent receipt. Thank you to the 53 readers who shared their data! I have been volunteering hard over the last half-month to bring you the most representative grocery index I could, and I think the results will be helpful no matter how you shop.
Last year in April, we published data with an index, but that was not representative of a reader survey.
The bread and frozen foods department of the Cub Foods in The Quarry. Photo: AuthorFirst, some takeaways from the reader survey.
The first question I asked was which local grocery option our readers shop at. Readers could select as many options as they wanted. The top choices were Cub Foods and Local Co-Op both with 52.8%, Lunds & Byerlys with 43.4%, and Target with 41.5%.
For Local Co-ops, I asked where people shop. The top answers in order of popularity were Seward, Wedge, and a tie between the Mississippi Market and Seward Friendship Store.

The top choices were Cub Foods and Local Co-Op, both with 52.8%.
To create a representative index of grocery buying for our readers, I asked what was on your most recent receipt or what you could recall from memory. The top items included were milk, eggs, mozzarella cheese, and chicken, which I standardized as fresh chicken breast and frozen chicken breast. You can check out the full list of items and weights on the Google Sheets spreadsheet that shows all the math behind this index.

The produce department at the Cub Foods in The Quarry. Photo: Author
Finally, with the knowledge that organic prices are usually different than conventional prices, I asked on a sliding scale from 0 to 10 what proportion of readers’ groceries were organic. The responses had a very flat distribution, and the average response was 4.5, or 45 percent organic.

The average was 45 percent of grocery shopping for our readers is organic.
Next the prices.
You can check out the full list of weights, items, and prices on the Google Sheets spreadsheet that shows all the math behind this index.
I compared prices at eight stores from February 5 – 16. The stores were: Aldi, Costco, Cub Foods, Kowalski’s, Lunds & Byerlys, Seward Co-op, Target, and Whole Foods. If an item wasn’t currently in stock, I recorded the price of the best option in that item class. For instance, in “milk”, skim was not always available, so I have some prices for one or two percent milkfat. I did not do this for conventional versus organic items. They are priced separately.
For the top five-weighted items — milk, eggs, mozzarella cheese, fresh chicken breast, and bananas — I found that there was no single best store for all these conventional (not organic) staples.
Store | Milk Price (gallon) | Eggs (egg) | Mozzarella Cheese (ounce) | Fresh Chicken Breast (pound) | Bananas (pound) |
Aldi | $2.66 | $0.11 | $0.22 | $1.89 | $0.65 |
Costco | $2.45 | $0.14 | $0.16 | $2.99 | $0.46 |
Cub Foods | $2.99 | $0.09 | $0.29 | $3.99 | $0.59 |
Kowalski’s | $3.19 | $0.14 | $0.40 | $7.99 | $0.73 |
Lunds & Byerlys | $2.99 | $0.14 | $0.31 | $7.99 | $0.63 |
Seward Co-op | $3.79 | $0.29 | $0.41 | $6.99 | $1.29 |
Target | $2.29 | $0.21 | $0.25 | $1.99 | $1.16 |
Whole Foods | $4.19 | $0.22 | $0.37 | $5.49 | $0.49 |
Costco had the best price on two of the top-weighted staples – mozzarella cheese and bananas – while ALDI, Cub Foods, and Target had the best prices on one of the top five.
After gathering price data for all the conventional (not organic) grocery items, I crunched the numbers using the weighting based on the survey. For a hypothetical grocery run for conventional items, Costco came in cheapest at $100.00, while ALDI came in at $103.08, and Target at $119.70.

Costco has the lowest prices on conventional groceries for a hypothetical grocery run using our weighted index based on the 2020 survey.
The median American household spends about $7,000 on food per year, according to 2018 data from the USDA. For the $60 membership to Costco to break even versus spending at ALDI, a household would have to spend at least $1,948 at Costco – significantly less than median household spending.

As their incomes rise, households spend more money on food, but it represents a smaller overall budget share. In 2018, households in the lowest income quintile spent an average of $4,109 on food, representing 35.1 percent of income, while households in the highest income quintile spent an average of $13,348 on food, representing 8.2 percent of income. Source: USDA
For organic groceries, Costco was also the highest value store. For a hypothetical grocery run for organic items, at Costco it would cost $100.00, at ALDI $101.26, and at Target $132.21.

Costco has the lowest prices on organic groceries for a hypothetical grocery run using our weighted index based on the 2020 survey.

It’s very hard to beat the Costco price. Photo: Author
Some thoughts from my experiences being a secret shopper for our readers:
Generally, the stores that advertised their prices more prominently, as with the above large-print sign at Costco with price per pound, were lower priced. ALDI and Costco were good about making the price clear. Kowalski’s and Seward had missing or fallen price tags, I found, and the price per ounce or other metric was nearly impossible to read.

Ultra. Ultra. Ultra! Photo: Author
There is also a compromise between choice and price. Kowalski’s was a great grocery experience with a delicious and well-priced hot bar and wide selection of deli and sushi. But having all that selection creates high overhead costs, and Kowalski’s turned out to be one of the most expensive grocery stores in this month’s survey.
Before you ask again, here were the dates and addresses of the different grocery stores where I went as a secret shopper. I did buy at all the stores, as a thank you for their hospitality. All prices reflect sales at the date of secret shopping.
Store | Location | Date |
ALDI | 1311 E Franklin Ave, Minneapolis, MN 55404 | February 7, 2020 |
Costco | 5801 W 16th St, St Louis Park, MN 55416 | February 16, 2020 |
Cub Foods | 1540 New Brighton Blvd, Minneapolis, MN 55413 | February 5, 2020 |
Kowalski’s | 2440 Hennepin Ave, Minneapolis, MN 55405 | February 16, 2020 |
Lunds & Byerlys | 25 University Ave SE, Minneapolis, MN 55414 | February 7, 2020 |
Seward | 2823 E Franklin Ave, Minneapolis, MN 55406 | February 16, 2020 |
Target | 1650 New Brighton Blvd, Minneapolis, MN 55413 | February 5, 2020 |
Whole Foods | 222 Hennepin Ave, Minneapolis, MN 55401 | February 8, 2020 |
I hope this helps you in your search for the best deal and best value for you and your household.
Do you have a best grocery store to find that one special item? What are your grocery shopping hacks and pro moves? Share your special finds and stellar victories in the comments.
I am compelled to point out that it costs money (and time) to get to and from the store too. If you aren’t accounting for that, you may not be saving anything by going farther away to get your stuff: https://streets.mn/2015/09/30/shop-closer-to-home/
Sure, but when you hit Costco you also save a bunch on gas since they always have the lowest prices 😉
This makes very, very, little difference in your transportation costs.
Still adds up. And our Costco trips aren’t standalone trips, they’re done on our way home (4 person carpool) and the store is on our route. Throw in the ability to buy in bulk which minimizes the need for additional stops, plus the super tasty (and cheap) food court that feeds said family of four, and it’s a winning combination.
The problem that accounting for that is pretty esoteric. You can easily figure out the value of your time based on your wages (although if you’re a homemaker is your time worth zero, or is it worth the MnDOT recommended value for time lost in traffic of $20.30 / person hour, or something else?) You have to pay for insurance whether your car drives 1 mile or 20 miles to go shopping. Obviously mileage depreciates your car and created repairs, but some deprecation and repairs occur regardless of mileage.
I did try to do the math once though. Excluding insurance I figure it costs me about a quarter a mile to drive (I didn’t know how to exclude the time based factor of depreciation and repairs). Walmart is 4.8 miles instead of .06 mile to Festival Foods, so an extra 8 miles round trip, so $2 for transportation, using MnDOT’s value an extra 12 minutes round trip so about $4 for time, or $6 total. I’d suspect Walmart is roughly equivalent to Target and Festival, and $120 is what I spend on my weekly shopping trip. At Festival (assuming whole foods level) it would be $145, so it makes a lot of sense for me personally to drive farther.
I don’t know why you consider travel a killer with Costco. The Minneapolis Costco is closer to my South Minneapolis home than Kowalski’s, Whole Foods or Mississippi Market and, while it doesn’t sell prepared food, it does have everything in the shopping basket described.
I don’t. It all depends on where you live/work/otherwise need to travel.
To get to a Costco, I’d have to go past several other options. The math might still work, but I also prefer to support businesses in the city, especially if I can walk or bike to them (or even if I can’t, others can).
You prefer to support businesses in the city? Great. What city do you live in? I live in Minneapolis and go to the Minneapolis Costco.
I think the point is to take transportation (time/money) into account. Cool, he doesn’t go to COSTCO. Cool, you go to COSTCO. Cool.
I agree. We live a five minute walk from the downtown Lunds and walk there about three times a week with a shopping cart. Lunds isn’t the cheapest, but I have no transportation costs. We supplement this by driving to the Wedge a few times a month. Another factor that I think should be considered is the people who work in the stores. Some stores are unionized, and some are not. Check out the web pages UFCW Local 683 and 1189. For example, Lunds, Cub, Kowalskis, Seward and the Wedge are unionized, but not Costco, Target or Aldi.
This was a really cool, practical study. I should have done the survey, but forgot. Living car-free in Cedar-Riverside, the new TJ’s on Chicago and Washington is my go-to. It’s got good quality produce and helpful staff. Selection-wise it doesn’t have everything, but the occasional trip to a Cub or Target supplements it nicely. And Adam’s comment about extra time/money applies doubly when one’s only wheels are in the form of a car share.
Wish everything at TJ’s wasn’t wrapped in plastic, though.
I’m sure a lot of Minneapolis shoppers go to the Bloomington Walmart, considering it’s the closest one. As luck turns out I had to do shopping tonight, so here are the prices:
Milk: $2.61 (2nd Lowest)
Eggs: $0.09 (Tied Lowest)
Mozzarella Cheese: $0.28 (4th Lowest)
Chicken Breast $1.99 (Tied 2nd Lowest)
Bananas: $0.59 (Tied 3rd Lowest)
Although I feel kind of unclassy shopping at Walmart and actually witnessed a fight there once, their prices are relatively low. Unlike Cub they bag your groceries for you. Unlike Target they’re guaranteed to have non-organic butter in stock (Note to Target: your problem with your grocery section is keeping name brand non-organic stuff people that want to buy in stock, not that you don’t have fancy enough shelves). If you need socks or light bulbs you can pick those up the same trip.
Hy-Vee would be interesting to compare since they seem to have deliberately located as close as possible to Minneapolis without being subject to the business-hurting ordinances and their model is a wide variety of prepared and convenience food rather than strictly low prices. A lot of people on the Bloomington Facebook pages really, really want a Hy-Vee in Bloomington. I’ve never been in one as there’s none remotely close to me.
I would love to do shop at Costco, but none are within reasonable biking distance from home. I’m super happy that they built an Aldi just off my commute route.
N.E. Minneapolis isn’t my neighborhood, but it’s close enough to Longfellow that I make regular bike trips to the N.E. Costco.
Of course, I have to bring a trailer because it’s Costco.
I did a little bit of digging, and here is some wage data to help inform the conversation about wages at grocery stores and union representation.
At Costco, the national minimum wage is $15.00, set in March 2019. Staff at Costco in St. Louis Park didn’t know beyond that.
At Cub, I wasn’t able to find a starting wage. I found job openings in Minneapolis for Cashier, Deli, etc, but there was no wage given. When I talked with customer service at the Nicollet location, they said wage was linked to experience. When I talked with the New Brighton Blvd location, they were under the impression that the starting wage was around $11-$12.
The Minneapolis city minimum wage is $12.25 for large employers (100+ employees), increasing to $13.25 on July 1, 2020.
I did not want to fill out a job application just to find out the compensation.
What I do know is that when I worked at Rainbow Foods, a union grocery store, in 2010-2011, my wage was $7.65, while the minimum wage was $7.25 (Minnesota hadn’t passed the higher minimum at that time). With inflation, $7.65 in 2010 is roughly $9.00 in 2019 (most current available inflation data).
The current state minimum wage (for outside Minneapolis) is $10.00.
This is not a transportation related article. I really don’t understand why its being published here.
Do you just magically teleport to a grocery store? Knowing who has the best grocery prices can help determine where to go and may reduce your VMT.
The mission is not limited to transportation: https://streets.mn/about/
Hi Joe. Speaking as a board member here, our mission is not just transportation, but about what makes for better places in Minnesota. Grocery access is about people-centricity, future orientation and justice. Access to fresh groceries is a real issue of equity and public health.