- I compared prices per ounce for 32 common grocery items on my list at Walmart and Costco.
- Costco had better prices but Walmart had more variety and no paid membership required to shop there.
- I'll buy most of my groceries at Costco from now on, but I'll still grab certain things at Walmart.
Costco and Walmart both have budget-friendly reputations, but it's hard to beat the perceived value at Walmart.
With the signs screaming "rollback" and "low price" and a private-label name like "Great Value," even walking into the store feels like saving.
I've always assumed Walmart had cheaper grocery prices than other chains, but a recent Consumer Reports comparison says otherwise — by a margin.
Despite things feeling cheaper at Walmart, the report found Costco 21.4% less expensive than Walmart (on average), making the wholesale club the lowest-priced grocery retailer in the US.
As such, it also found Costco cheaper than Aldi, BJ's Wholesale Club, Lidl, and the rest of the bargain bunch.
Maybe Costco is lighter on the wallet nowadays, but 21.4% less? I had to see for myself. So, I took the same grocery list of 32 items to both stores, looking for either brand-name or private-label equivalents.
The results shocked me.
My first stop was the Costco produce department.
I'm consistently impressed by the quality and prices of Costco's fruits and vegetables. This trip was no exception.
I picked out 10 pounds of red potatoes, 4 pounds of honeycrisp apples, 2 pounds of strawberries, 6 heads of romaine lettuce, and one watermelon, totaling $33.05.
At $0.60 a pound for potatoes, $2.17 a pound for apples, and $2.25 a pound for strawberries, plus the $0.82 per heart for romaine and the flat $8.99 per watermelon, my haul felt like a solid value.
My produce basket could've been a few bucks cheaper at Walmart.
Between the $0.84 a pound for potatoes, $1.75 a pound for apples, and $2.87 a pound for strawberries, as well as the $0.71 per heart of romaine and $4.48 per watermelon, Walmart produce prices felt low.
Most of them were quite similar to Costco's, but Walmart had a cheaper watermelon (although it was smaller than Costco's) and honeycrisp apples for $0.42 less per pound.
However, I wasn't quite as impressed by the produce itself.
The apples were smooth and the strawberries looked more vibrant than Costco's, but the rest of my haul appeared lackluster. The potatoes looked soft, the romaine hearts a tad wilted, and the watermelons petite.
For consistent quality, I'd pay a few bucks more at Costco.
Milk was priced similarly, but butter and cheese were a much better deal at Costco.
A gallon of milk was $2.09 at Costco, only $0.03 cheaper than at Walmart. However, the price of cheese and butter gave Costco a major leg up.
For a 5-pound bag of shredded Mexican-style cheese, I would've paid $2.60 per pound at Costco — low compared to $3.46 per pound at Walmart.
Both stores also had private-label butter. Kirkland Signature butter came in at $2.12 per pound; Great Value, on the other hand, cost $3.23 per pound.
To get Costco's price, though, I'd have to buy 16 sticks. At Walmart, I could buy as few as four.
Eggs were a better deal at Walmart.
Costco eggs came to $1.80 per dozen, seemingly the best deal until I checked Walmart, where a dozen worked out to $1.65.
It's worth noting that neither store's cheapest eggs came in traditional dozen cartons.
Costco's lowest-priced eggs came in a 60-count carton; Walmart's came in an 18-count one. Though still supersized, the latter makes more sense for two-person households like mine.
Chicken breast also felt like a great value at Walmart.
I typically buy pasture-raised chicken, but if price were my only consideration, I'd load up at Walmart.
The quality seemed to match what I saw at Costco, yet cost $0.42 less per pound — which stacks quickly when breasts are only sold in 8-pound packages.
Walmart, on the other hand, had weight options starting at 1 pound, giving it another edge.
Regardless, at $2.57 per pound at Walmart and $2.99 per pound at Costco, both offered competitive prices.
My favorite drinks would be a way better deal at Costco.
I live on Zevia soda and decaf coffee.
Costco's Zevia variety pack included 30 cans, while Walmart's variety pack had only eight. Based on price-per-can math, Costco's cans would come out to $0.60 apiece, whereas Walmart's would be $0.94.
I'll be buying my Zevia from Costco from here on out.
I was disappointed by the decaf coffee selection at both stores, though. Costco had only one option, Kirkland Signature ground decaf, and Walmart had eight similar ground varieties, most of which were too pricey per ounce to even consider.
A 3-pound can of Kirkland Signature decaf came to $0.48 an ounce, a bargain for months' worth of joe.
A 25.9-ounce container of Great Value decaf was the closest equivalent, and it came out to $0.59 an ounce — which still felt steep for private-label coffee.
I'd buy popcorn, crackers, and chips at Costco every time.
As a warehouse club, I assumed Costco would be a better bet for brand-name snacks. I just didn't realize how much better.
I'd pay $0.43 per ounce for Lesser Evil popcorn at Costco, pennies on the dollar compared to the same kernels that came to $0.72 per ounce at Walmart.
Simple Mills crackers had an even more striking discrepancy. This crunchy snack was more than double at Walmart, coming in at a staggering $1.08 per ounce compared to Costco's $0.50 per ounce.
Even Nabisco graham crackers cost more at Walmart, coming to $0.24 per ounce versus $0.14 per ounce at Costco — a steal for the upcoming summer months.
That said, I didn't see marshmallows or Hershey bars at Costco, so I'd have to grab those at Walmart if I wanted s'mores.
Cereals and pancake mixes also showed major price contrasts.
Cheerios and Catalina Crunch, my go-tos, were both significantly cheaper at Costco. Priced at $0.17 per ounce, a jumbo 40.7-ounce box of Cheerios came to under $7.
Walmart's family-size box — which was only 18 ounces — cost $0.25 per ounce, and that was on sale.
Catalina Crunch had a similar story. The only Catalina Crunch at Costco came in a 24-ounce bag for $12.89, or $0.54 an ounce. At Walmart, the best value was the 9-ounce bag for $6.97, or $0.77 an ounce.
Buying Kodiak mix at Costco was another opportunity to save, given that a bag cost $0.18 per ounce at the warehouse, an exceptional value compared to the $0.32 per ounce at Walmart.
Despite Costco's solid prices, Walmart took the cake for flour and sugar.
Generally, flour and sugar were more affordable at Costco.
A 25-pound bag of flour clocked in at $0.32 per pound and a 10-pound bag of sugar at $0.58 per pound. At Walmart, I found a 25-pound bag of flour for $0.43 per pound and a 10-pound bag of sugar for $0.80 per pound,
However, I'm not a professional baker so most of Costco's options were far too big for my household. The smallest bag of flour was 12 pounds, but it would've been a bit steeper at $0.75 per pound.
Meanwhile, at Walmart, I preferred the range of size options. I could buy a smaller 5-pound bag of flour for $0.48 a pound or a 4-pound bag of sugar at $0.74 a pound.
In addition to regular flour and sugar, Walmart had oat flour, granulated monk-fruit sweetener, and other niche baking products that I keep in my pantry but didn't find at Costco.
Most pantry staples on my list were a better deal at Costco.
With the exception of canned tuna, which was about a penny per ounce cheaper at Walmart, other pantry staples like pasta sauce, jasmine rice, and mac and cheese were more reasonably priced at Costco.
Notably, store-label olive oil cost $0.19 per ounce at Costco and $0.30 per ounce at Walmart. For a 3-liter jug of private-label olive oil, I'd save $10.98 by shopping at Costco.
Theoretically, based on price per ounce, my cart would have been 25.6% less at Costco.
Consumer Reports' 21.4% price difference sounded like a stretch to me until my personal shopping trip yielded an even more drastic gap.
Assuming I bought identical weights and quantities of each item at each store, I'd pay about 25.6% more at Walmart than Costco.
This is quite conceptual since the two chains sell items in different weights and quanities, but I calcuated this using price-per-ounce math to try to be as fair as possible.
An extra $0.25 (almost $0.26) more on the dollar isn't too bad for a few staples, but larger or more frequent hauls would add up fast.
Despite Costco's lower prices, value depends on household size and eating habits.
Based on my math and this particular haul, Costco generally offers lower prices.
However, the only way to reap the benefits is to purchase bulk-sized quantities, which isn't for everyone. The real value depends on how much you can reasonably consume.
Produce is the perfect example. It's hard to eat six heads of romaine or 10 pounds of potatoes before they go bad, even for veggie lovers.
Although these items are cheaper at Costco, large packages make it easier to waste food (and therefore money). The same goes for Costco's mega-sized spices, chips, egg cartons, and beyond.
Plus, Costco has a $65 annual membership fee, so you'd have to spend enough to make it worth it — though breaking even is an achievable goal for most shoppers, especially families, since Costco carries more than groceries. Members also get discounts on things like travel, rental cars, tires, and gas.
For the best value, I'll continue shopping at both stores — but mostly Costco.
Another consideration when comparing these chains is variety.
Costco had fewer options compared to Walmart, which was stocked with organic and conventional produce, specialty brands, allergy-friendly alternatives, international ingredients, and more.
For niche ingredients, eggs, and select produce items, I'll shop at Walmart.
For just about everything else, I'll go to Costco. Aside from balancing low prices and high quality, being a member has other perks like discounted gas and no-fuss returns.
Plus, the supersized packaging means I don't have to grocery shop as often — and when I do, it's an experience.













