The milk runs out on a Tuesday night, the cart is half full, and the choice of which store to hit next usually comes down to habit rather than math. A Boston-area price comparison published in June gives that habit some numbers to push against.
Tasting Table’s price comparison of 15 pantry staples found that Aldi or Walmart had the lowest price on 11 of them, according to a tally of the published figures. Aldi was cheapest outright on seven items, Walmart on two, and the two chains tied on two more. Costco won four items on price per unit, and Trader Joe’s did not win any.

The comparison was written by Samantha Maxwell and published by Tasting Table on June 8, 2026. Prices came from stores in the greater Boston area, so shelf tags in other regions will differ. The 15 items were milk, eggs, bread, frozen mixed vegetables, penne, black beans, canola oil, jasmine rice, tuna, oats, bananas, salad mix, Greek yogurt, olive oil and salt. Because the prices are five months old, they work best as a guide to how the stores compare, not as a shopping list for this weekend.
Where Aldi Won Outright
Aldi came out ahead on milk, sliced bread, canned black beans, canned tuna, old-fashioned oats, bananas by the pound and iodized salt. Whole milk was $2.89 a gallon at Aldi, compared with $3.62 for Walmart’s Great Value gallon and $3.69 for Costco’s Kirkland Signature gallon. Sliced white bread was $1.45 at Aldi and $1.48 at Walmart.
Canned goods followed the same pattern, though the margins were small. Black beans were $0.85 for 15 ounces at Aldi and $0.86 at Walmart, and tuna was $0.95 for a 5-ounce can at Aldi against $0.96 at Walmart. Bananas were $0.48 a pound at Aldi and $0.50 at Walmart. Staples like these move with the broader market, as this roundup of things getting cheaper shows.
The oats row deserves a note. The listed prices were $3.99 for 42 ounces at Aldi and $4.18 at Walmart, which makes Aldi the cheaper of the two on the published numbers, and that is how this tally counts it. Shoppers who keep a running price book can find more ideas in this list of frugal living tips and these wallet-friendly life hacks.
The Two Walmart Wins and Two Ties
Walmart took eggs and Greek yogurt. A dozen eggs was $1.44 at Walmart and $1.47 at Aldi, while the same dozen cost $5.99 at Trader Joe’s. Costco’s price was $4.89 for two dozen, which works out to about $2.45 a dozen. Greek yogurt in the 32-ounce tub was $3.28 at Walmart against $3.49 at Aldi.
Frozen mixed vegetables and penne were ties between Aldi and Walmart. Both stores priced a 12-ounce bag of frozen mixed vegetables at $0.98, and both priced penne at $0.98 a pound. That pairing is the main reason the two chains are grouped together in the headline count.
.jpg?width=1600)
When Costco’s Bulk Math Wins
Costco was cheapest per unit on canola oil, jasmine rice, salad mix and olive oil, but only in sizes that many households cannot easily use. The jasmine rice is the clearest case: $24.99 buys 25 pounds at Costco, roughly $1.00 a pound, while Aldi and Walmart charged about $6.20 for a 5-pound bag, near $1.24 a pound. Olive oil came to about $0.29 an ounce at Costco in a 101-ounce container, compared with about $0.36 an ounce at Walmart and $0.43 at Aldi.
Bulk math only pays when the food gets used. A 25-pound bag of rice is a bargain in a house that cooks rice twice a week and a pantry shelf problem in an apartment kitchen. Costco also requires a paid membership, which sets a minimum cost before the first cart is filled, and a clearance-shelf routine at a regular grocer can shave off more. A written shopping list is the usual guard against buying size over need.
Costco’s background helps explain the structure. According to Wikipedia, the warehouse club opened its first location in Seattle in 1983 and sells many goods under its Kirkland Signature label, which accounts for the milk comparison above.
Trader Joe’s Stayed Behind on Price
Trader Joe’s was the most expensive store on most rows, with a few exceptions. Its eggs were $5.99 a dozen, and its milk entry was an organic whole milk at $5.99 for 64 ounces, which is not the same product as the gallons at the other stores. Bread was $2.49 a loaf, against $1.45 at Aldi. The article notes that several Trader Joe’s items were different types, such as sea salt in place of iodized salt, so the gaps on those lines overstate the difference.
That caveat applies to the whole exercise. According to Wikipedia, Trader Joe’s built its business on a smaller store and a heavy private-label lineup, and it does not try to match big-box staples line by line. Its shelf is a different kind of shopping trip, and the price table does not measure the reasons many shoppers go there.
Reading a Boston Price List Elsewhere
The two chains behind most of the wins have different roots. Aldi’s U.S. stores date to the 1970s and lean on a limited range and mostly store-brand goods, and Walmart, founded by Sam Walton in Arkansas in 1962, competes by matching and undercutting on common staples. The Boston numbers fit those strategies, and the same logic probably holds in other cities, though no comparison from one metro area proves it.
A few habits follow from the table. Staples with tiny gaps between Aldi and Walmart, such as beans, tuna and pasta, are not worth a second stop. Items with big gaps, such as eggs and bread at Trader Joe’s, are worth buying elsewhere. Larger pantry items like rice and oil only make sense at Costco in a size that will be used up.
Prices move week to week, and a sale at any of these stores can flip a row. The June figures from Boston are one snapshot, dated and local, and Tasting Table’s own caveat that prices may vary elsewhere in the U.S. is the right way to read them. The useful part is the pattern: for everyday staples, the two lowest-priced chains were separated by cents, and the bigger choices were about package size and whether a basket needed Costco’s bulk pricing at all.
This article was produced with AI assistance and edited for accuracy against the sources linked above.
Image: Downtowngal – CC BY-SA 3.0/Wikimedia Commons