Grocery Shopping on a Budget? We Compared Prices at 3 Major Stores

supermarket comparison

We’ve all gotta eat.

And it inevitably eats into our budgets.

I’ve complained time and again about how wealthy I’d be if I didn’t need to eat. Imagine what I could spend all that money on!

Probably mostly traveling. But then again, trying new food is one of my favorite parts of traveling…

But I digress.

How to Buy Groceries on a Budget

Since we’re probably (hopefully) not going the way of Soylent Green anytime soon, you’re going to need to budget for food.

But why not spend as little on this necessity as possible?

As it turns out, you could be getting a way better deal on those recurring grocery items… just by driving a block or two further.

That’s because different retailers offer different prices on grocery items, even if they’re in the same neighborhood.

To figure out your best option to buy those must-have items, we hit the streets and compared prices on 10 common grocery items.

We hit big-box Walmart, crunchy-yet-cheap Trader Joe’s, as well as Publix — a stand in for whatever “vanilla” regional grocer you frequent.

Here’s what we found out.


For the purposes of this post, I compared the prices for a dozen large white eggs.

You could probably save a bit more buying the large 30-packs available in some stores. But if you don’t go through all those eggs in time, it’ll be a waste regardless.

At Publix, you’ll pay $2.39 for a dozen large white eggs. Compare that with Trader Joe’s’ $1.49 — and Walmart’s surprisingly high $2.57 carton.

Note: Walmart price-matches local competitors, but the policy states it has to be an “identical” item — so a different brand of eggs might not cut it.

Winner: Trader Joe’s


I compared prices for a quart-sized container of milk.

If you want milk really fresh, you should be consuming all of it within three days of opening the container. And a gallon is a lot of milk.

A quart was $2.50 at Publix, but just $1.87 at Walmart. Trader Joe’s came in last at $3.99 — but organic was the only option.

Winner: Walmart


Bread was similar to milk, a lovely coincidence for items so frequently purchased together — especially before impending snowstorms.

A regular-sized white loaf was $1.89 at Publix, but just $1.58 at Walmart.

To upgrade from the nutritional void of white bread, Publix multigrain costs $2.69 and Walmart’s wheat is $1.68.

The cheapest loaf at Trader Joe’s was $3.99 — but they were all fancy with mixed-in nuts and seeds and things.

Winner: Walmart

Peanut Butter

Show me a home without peanut butter, and I’ll show you a sad home, indeed.

Unless you’re allergic to nuts. In that case, please, please don’t buy peanut butter (more for me)!

Publix had one-pound cans of JIF for $2.99.

Trader Joe’s had versions as low as $1.99, but they looked as if they might be on sale. The next-cheapest version was $2.99, and wasn’t a big-name brand like the ones I saw in other stores. So if you’re a particularly choosy mom, this might not work for you.

Walmart had a one-pound can of JIF for $2.58.

Although Trader Joe’s had the lowest one, I don’t know if that’s a stable price point… so this one’s a bit of a toss-up.

Winner: Potentially Trader Joe’s; Walmart as a runner-up


Bananas are an awesome fruit for a whole slew of reasons, not least because they come in their own packaging.

Oh yeah, and they’re delicious, nutritious and cheap.

Publix and Walmart tied with bananas priced at $0.59 per pound. Trader Joe’s charges per banana — $0.19 each.

If there are three to four bananas in a pound, Trader Joe’s’ price is about $0.66 per pound. The price looks awesome, but it’s only better if you just want one or two bananas.

Full disclosure: I didn’t hand-weigh bananas, and I calculated the $0.66 using a pretty unlikely bunch size of 3.5 bananas. What’re you gonna do?  

Winner: Walmart/Publix


I don’t know about you, but I grew up eating Cheerios for breakfast, so that’s the cereal I chose to compare.

P.S. Slice up a banana on top of your next bowl. Thank me later.

Publix had an 8.9-ounce box for $3.59 or an 18-ounce box for $4.49.

Trader Joe’s 15-ounce box of “Joe’s Os” was $1.99.

Walmart’s generic 2-pound, 7-ounce version was $5.98. The real deal was $3.53 for an 18-ounce box or $3.98 for a 21-ounce box.

Working out all the math, the very best deal is the Trader Joe’s cereal, at 13 cents per ounce.

Walmart’s generic version comes in next at 15 cents per ounce.

But if you want real Cheerios, your best bet is Walmart’s big box at 18 cents per ounce. Publix’s small box is forty cents per ounce. Are those Cheerios made of gold?

Winner: Trader Joe’s if you’re not picky; Walmart if you are


What food can even compete for cheap, easy and delicious dinner on the fly?

Publix’s Barilla pasta was $1.69 per pound.

Trader Joe’s’ spaghetti went for just 99 cents per pound.

And at Walmart, spaghetti was $1 per pound on rollback… or $2.92 for a family-sized three-pound box, or $0.97 per pound.

Winner: Walmart if you want to buy in bulk; Trader Joe’s if you’re just looking for a regular-sized box of spaghetti.

Chicken Breast

If there’s one ubiquitous meat in American kitchens, it’s boneless, skinless chicken breast.

Here’s how it’s priced at these three stores — I looked for the cheapest version, so this isn’t the organic, free-range, “happy” meat you may want to buy.

Publix’s chicken breast was $3.49 per pound, and it was $2.69 at Trader Joe’s. Finally, Walmart’s chicken was $3.09 per pound.

Winner: Trader Joe’s

Coconut Oil

As you may know, coconut oil has many wonderful uses — and it’s a healthy fat for everything from sauteeing veggies to popping popcorn.

Publix’s 29-ounce can was $5.99.

Trader Joe’s’ was also $5.99… but for 16 ounces and only organic options.

Walmart had 30 ounces for $6.64, or 14 ounces for $3.98.

Winner: Publix led at 20 cents per ounce


If there isn’t coffee in my kitchen, I’m not capable of mornings. Here’s where to get it cheapest.

Publix’s big 1-pound, 14-ounce canister of Maxwell House was $9.97.

Trader Joe’s only carries their own proprietary roasts, which I’d argue are significantly nicer than Maxwell. But the cheapest one I saw was $5.99 for a 12-ounce package (or $14.99 for a 28-ounce one).

Finally, Walmart’s large Maxwell House canister was just $6.93.

Winner: Walmart, unless you’re a coffee snob like me

The Verdict

Here’s how the stores stacked up their wins:

  • Publix/Regional Grocer Option: 1.5
  • Trader Joe’s: 3.5
  • Walmart: 5

But in the long run, choosing a grocer really depends on how you shop and what you’re getting.

If you’re a singleton, shopping only for yourself and eating mostly lean meat and produce (hi!) — or if eating organic is important to you — Trader Joe’s might be a good option.

Hint: Trader Joe’s has really, really good affordable wine options.

But if you’re cooking for a family and need bulk items in large supply, Walmart is probably the more convenient, cost-effective way to go.

For the best results, do your own comparison.

Make a list of the items you consistently need, then hit your local shops — a regional grocer, a value market like Aldi or Trader Joe’s, and a big-box store like Walmart or Target. Or, if you’re willing to pay the annual fee, maybe even a warehouse store like Costco or Sam’s Club.

Write down the price and amount of each item, then divide the price by the amount to find out the price per ounce or unit.

Depending on how far out of your way and how much extra time it’d take, it might be worthwhile to make a couple of different grocery trips to get the best deal on your staples.

Your Turn: Which grocery store do you do most of your shopping at? Have you considered taking multiple trips? Let us know in the comments!

Jamie Cattanach (@jamiecattanach) is a junior writer at The Penny Hoarder. She also writes other stuff, like wine reviews and poems.