Here’s how I think of optimizing grocery shopping. Food makes up a nontrivial fraction of my recurring monthly expenses, and while shopping, I’ve given it a bit of thought. I’m impressed how much money many people manage to spend on food, especially when they should be benefiting from scale/group. Anyway:
plan recipes ahead to avoid impulse shopping and food wastage while puzzling how to eat something. Resources on frugal cooking are everywhere and you can find tons of advice on eg cooking soup or stew. You should emphasize minimally unprocessed goods which are commodities and so cheap, with fewer layers of bogus product differentiation and overhead and advertising. (I wouldn’t take ‘health’ too seriously as a criterion. Diet and nutrition research is one of the worst fields in all medicine, IMO. Don’t let that diminish your quality of life!)
investigate all local groceries. The average price can differ considerably between stores. In my own, I have Walmart, Target, Shoppers, Aldi, NEX and some others (BJ’s is the major alternative but I’ve never been convinced I would be able to buy enough to benefit). When I switched from NEX to Walmart, I saved a good 10%; when I switched (most of) my shopping to Aldi, I saved another good 10%. (The cost savings had I started with Whole Foods or Harris Teeter hardly bear thinking on.) There are some disadvantages to shopping at Aldi (more restricted selection, very disorganized store, having to remember to bring a quarter for the shopping carts) but saving $20 or $30 is a good salve for the annoyances. It may take some time to get familiar with a store (I take about an hour to thoroughly walk through a store, looking at where everything is and noting prices for things I often buy), but consider the Value of Information: if you spend 2 or 3 hours to find a new grocery store and save 10-20%, that’s a savings of easily $120+ a year for a NPV of something like $2k. (120 / log(1.05))
120 / log(1.05)
in choosing a grocery store and what to buy, remember the costs also of travel and time spent shopping. The goal is to get your groceries for a total cost which minimizes money, time, and effort. Every second spent shopping is a waste—certainly I don’t particularly enjoy it. The cost of driving to a store is somewhere around $0.10-$0.50 per mile, and then there is the risk of accidents and your own time; adding up the mileage and time, I get ~$15 per grocery trip. This is a substantial fraction of the total cost of my groceries, and so I keep that in mind when planning: I shop once a month, stocking up as much as possible. I’d much rather make one trip to buy a lot of food at $120+$15=$135 than two trips at $60+$60+$15+$15=$150! (In this respect, Aldi is a wash for me: I have to spend somewhat longer driving to it, but it’s so much more compact and tiny that I spend much less time walking around it and checking out.) Travel time is also why it makes a lot of sense to occasionally buy from the local dollar store about 3 minutes away—when a single trip costs $15, then even if a bottle of ketchup or whatever costs twice as much as at Aldi, it’s still a lot cheaper. (Although if you find yourself resorting to that too often, it suggests you are making mistakes further upstream.)
in buying a specific ingredient, always start with the unit cost. Many foods keep a long time and you can easily make use of a larger quantity. It’s somewhat unusual for something to be too big to buy and a bad idea due to spoilage/opportunity cost (usually something either perishable, like fruit, or ridiculously long-lasting; eg a few months ago, I finished off a bottle of molasses which dated, as best as I could infer from the copyrights on the label, from ~1995, and it would not be a good idea to buy a very big bottle of molasses if you only use it once in a while like I do, for baking rye bread).
when buying a new ingredient, start with the generic.
If you have doubts about buying generic, test it: require the much more expensive brandname goods to justify their existence. My preference is to take into account Value of Information: by the same logic as choosing groceries, rejecting a cheap generic food in favor of an expensive one is a very expensive mistake as you incur it indefinitely. One of my pet peeves is how much money people waste on brandname goods rather than defaulting to generics or off-brands, when there is rarely a noticeable taste difference to me.
So my suggestion is that whenever you try something new, buy 1 of everything and try them out side by side to see what you like and if the brandname quality can possibly justify paying so much more. I’ve done this with butter, milk, applesauce, cereal, bacon, sausage, mustard, ice cream, etc. It baffles me how few people apparently take advantage of this—like at Walmart, the ‘irregular bacon’ tastes literally identical and is not that different from the regular bacon and yet is always almost half-price per ounce! Half! If I spend $8 a month rather than $4 on bacon, that’s a NPV of -$983. Quite an expensive mistake to make over a lifetime.
I don’t advise reinforcement learning-style approaches like Thompson sampling. Why? Because the VoI for testing all options is so high, you can sample them all simultaneously (making it more of a multiple-play MAB), there is large cognitive costs to maintaining options (the point is to get in and out as fast as possible, remember, to minimize time-cost) and so each sample has a fixed cost (which is ignored in the usual MAB formulation where it’s assumed you have to choose each round anyway), and in my experience sampling foodstuffs, not many things are ‘acquired tastes’ where multiple tastes will yield a different result, and there is not just not that much noise in taste comparisons of this sort. Typically, I try something and it’s immediately extremely obvious that the generics/brandname are equivalent or which one is much superior. (And if the difference is subtle, then it doesn’t matter, and typically the price difference is not subtle.) If there is no noise, the EV is very positive, and you can take multiple actions simultaneously, taking a Thompson sampling or sequential testing approach is merely incurring unnecessary regret and complexity compared to a single-trial decision approach. So it’s best to do a single precise test of all available contenders, and then buy the top-ranked item from then on without thinking about it further.
Does the optimal buy change? Maybe, but food prices are fairly stable in a relative sense (eg when bacon spiked in price the past 2 years, all the bacons did simultaneously, so I wound up buying the exact same discount bacon), so the decisions don’t seem to need to be revisited more. Even if the information decays, the tests are still worth running because aside from learning about the specific food type you’re testing, you benefit from getting an idea of the general range of variation in food taste/quality and how much a brandname is worth (ie ‘little’).
skip coupons and sales. They are obviously negative sum games after sorting through the gimmicks and all the options, intended to get things you didn’t want to buy in the first place, even at the discounted price, even occasional mistakes will wipe out the savings, and they discourage experimentation and comparison (you wouldn’t want to buy the other applesauce which you don’t have a coupon for, would you? why, that would be a ripoff!); worse, they are by definition ephemeral, so your gained knowledge and effort becomes immediately worthless, as compared to stable long-term knowledge like which grocery store is cheapest, where all items are located, which generics to buy etc. Like credit card churning or frequent-flier miles, they should be avoided as traps. Life is far too short.
Grocery lists should be kept regularly and reused as templates to avoid forgetting about important things or indulging in impulse or spree purchasing.
Tracking expenditures can be helpful in finding categories of food which have been getting imbalanced spending and reviewing enjoyment/$ tradeoffs.
After evaluating stores, learning where items are, finishing taste comparisons, picking recipes, making template lists, the whole process shouldn’t occupy more than an hour or so a month: you take your template, modify slightly for current recipes, drive there, dash in to the prespecified items, buy just those, and get out.
plan sensible cheap meals
find the cheapest local grocery store
buy as rarely as possible, in bulk, and generic (unless a food is proven in taste-testing to be superior); get in and out and don’t be tempted.
In terms of optimizing, keep in mind the Pareto principle: quantitatively, I think the biggest wins comes in this order:
choice of foods (potentially 10x difference in cost)
generic vs brandname (1-3x)
choice of grocery store (<=1.3x)
buying bulk (1-1.5x)
location and frequency of visits (1-1.1x)
in-store shopping efficiency (1-1.05x)
I spend about $110 a month on regular food, excluding tea. (Tea is one of my great luxuries which I like to splurge on, and it would be unfair to include that. If I wanted to save money there too, I think I could probably get it down to ~$5-10/month by buying >500g of a good oolong tea from Upton’s, freezing most of it, and doing resteeps more.) I think I eat reasonably well: eg today I had eggs, kimchi, bacon, Old Bay flavored sausages, cottage cheese (there’s something addictive about the Aldi cottage cheese), milk/protein powder, a banana, carrots, vanilla yogurt, and plenty of tea; tomorrow my sous vide beer-sauce corned beef will finally finish cooking, and I’ll be having that and chili, and maybe making yogurt with the sous-vide cooker or something chicken. (Since Monoprice restocked their $70 sous-vide cooker, I’ve been trying it out for cooking meat and I’m pretty pleased by how much better it cooks chicken than I do; this is great since chicken is just about the cheapest meat around. I’ve also been cooking more meat in general as part of my past year of weight loss & exercise; see my occasional posts on /r/SlateStarCodex for details/graphs.)
Re: buying generic:
In my experience, quality varies tremendously by generic brand. For example, America’s Choice (the now-defunct A&P brand) products were decent but not quite as good as brand-name ones; Kroger brand stuff (especially the dairy products) are excellent; while Stop & Shop brand stuff ranges from sub-par to abysmal.
Of course, some products are such that it’s difficult to impossible for them to be meaningfully low-quality, and any inferiority in the off-brand stuff will be along dimensions that are orthogonal to “quality” per se. For instance, if you buy generic-brand granulated sugar, you will often find that it’s full of stuck-together clumps, rather than being uniformly separate grains (as is almost guaranteed when buying brand-name). But this obviously does nothing to affect its edibility—sugar is sugar!
Good advice. Here’s another bit: don’t shop when you’re hungry; this cuts down on impulse purchases if you have less-than-heroic willpower.