A brilliant and efficient menu and grocery shopping system built with Google Sheets

We’ve optimized the heck out of cooking and shopping at my house. The key is a simple spreadsheet that my wife Kimberley built in Google Sheets — and it uses almost no math. We’ve improved it over more than a decade, and I can’t resist showing it off.

Why this works for us

This system is ideal for us because of who we are and how we share the labor of acquiring and preparing food at our house.

First, Kimberley and I are open to simple technology hacks. She’s not a tech whiz — and I’m not much of one — but we’re both pretty comfortable with the features of a free product like Google Sheets, and with using it on multiple devices including a PC, a Mac, several iPads, and our Android phones.

Second, we share. We do the grocery shopping together every Monday morning (as you’ll see, with our system, this is very efficient and saves time). And we plan a week’s worth of dinners every Sunday night.

We want to share the effort, but we don’t have equal skills. Kimberley is much better and more experienced at cooking, but I’ve been learning; for example, I just made an awesome zucchini frittata last week. So every week includes one night where I cook, three nights where my wife cooks, one night where we cook together (and she teaches me), one night of leftovers, and one night of takeout or eating at a restaurant.

How we plan

There are three separate sheets in the Google Sheet that help with the planning.

First is the weekly menu sheet. It looks like this:

We just put Monday’s date in cell B2, and some simple date arithmetic fills in the rest of the week (and that’s the only math in the whole system). The weather in row 3 includes the high temperature for the day, typed in from a weather app, since that helps us see when we might want to eat on our deck and when we might want to avoid slaving over a hot stove. (If you’re thinking that the weather in Portland, Maine seems pretty nice in July, it’s true, it’s one reason we love living here.)

The Notes in row 5 are useful for identifying when someone might be traveling and out, or when we’re visiting other people, having our adult children stay here, or having people over for dinner.

Row 6 helps ensure you’re not having chicken every night, and as you can see in rows 7 to 10, we always have a vegetable. We often do a vegetarian meal, but on this particular week we were trying to use up the chicken.

The “Available Food” starting in Row 16 keeps track of what’s in the refrigerator so we can make sure we use it in the week’s recipes.

As you can see, some recipes are taken from the internet, like the pasta dish we had on Monday; in those cases there’s a link right in the spreadsheet. The parenthetical notations like “(M 30)” and “(NJ 140)” refer to page numbers in my wife’s well-worn collection of cookbooks (M is Moosewood, NJ is the newer edition of the Joy of Cooking).

Ah, but what to cook? The answer to that question comes from perusing the sheet called “Recipes we like,” which includes an alphabetical list of dozens of possibilities, sorted by type of protein and alphabetically. Some are links, others include page numbers in the cookbooks. The color codes refer to which family members like which foods, which we can ignore now that the children don’t live here.

The third key sheet is the grocery list. Having chosen recipes, we can update the grocery list sheet with everything we need to buy at the supermarket (and in some cases, other places like the Farmer’s Market). The grocery list is organized according to departments in the supermarket. I typically enter my groceries on an iPad or my Mac, while my wife simultaneously, or subsequently, uses her Microsoft Surface PC. Sometimes, we make selections based on what’s on sale in the supermarket, or what we already bought or have left over.

When the children were living with us, they’d often take over the cooking for a night or two, and add their own desires to the list. It rapidly became clear to them: if you don’t put it in the Google Sheet, we wouldn’t buy it in the store. This system works just as well with more than two people planning, cooking, and eating.

The list as shown here is how it looks on Sunday night. On Monday morning, we arrive at the supermarket and each take a shopping cart. Kimberley buys the produce, meat, and fish, since that requires experience and judgment, while I range through the rest of the supermarket finding the dairy and other groceries.

Each of uses the Google Sheets app on our phones and deletes items once we’ve put them in the cart. That way, each of us can tell what the other has located and selected. We typically meet up in the meat department where I might buy some meat that doesn’t require much judgment (like hamburgers) and she might track down a grocery that she is particular about (like whatever breakfast cereal she’s in the mood for).

Finally, we line up with both carts at the checkout. She puts groceries on the belt, while I’m bagging in the reusable grocery bags at the far end. That goes easier because my wife has organized the groceries on the belt with the refrigerated stuff separated from the stuff that goes in the pantry or the medicine cabinet. She pays while I’m finishing bagging. (The baggers in the store, watching me while I give them a little break, often ask if I want a job bagging groceries, but for me it’s just aerobic exercise and three-dimensional puzzle solving.)

Then we load the car together, unload it at home, and put the stuff away (her in the refrigerator, me in the pantry).

With this efficient division of labor, the planning and shopping takes about 90 minutes per week.

Why this works

I actually think this application shows how collaborative apps like Google Sheets can make it easy for people to divide the labor and work efficiently together.

There are three reasons this works.

The first is that Google Sheets is a simple app that runs on every possible device. We can use it in the kitchen and in the grocery store and we can each work on it separately and see what the other is doing. We don’t have to get together to plan, or even do it at the same time.

The second is that there’s a clear division of labor. Kimberley is the expert cook, but I am responsible for choosing what’s for dinner for two nights a week. I buy groceries, she buys produce. I bag, she loads the conveyer and pays. Everyone has to be committed to doing their part well and helping the other person to be efficient.

Finally, it works because Kimberley was smart enough to figure out how to build this sheet and this process, and because she put in the effort to create the sheet, including all the recipes. It’s easy because she built it that way.

This sort of sharing makes our lives — or at least the parts associated with food — enjoyable. There’s no need for a specialized grocery application, since it’s far easier to take advantage of improvements in Google Sheets, or new ways we come up with to use it.

What shared processes could you make efficient with a Google Sheets hack like this? Have I changed how you think about cooking and shopping? I’m curious what you make of our system, and how it compares to the way you do things.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.


  1. We similarly use shopping lists in Google Keep, one for each store. But I really like this idea, as it will help us ensure that we’re actually using all the food we buy, reducing as much waste and clutter as possible. Thanks for sharing!!!

  2. It’s funny. If you’d had asked me two years ago which tool I would have used for something like this, I would have said Google Sheets.

    Now, not so much.

    I’ve been noodling with Notion and other no-code and low-code tools. They’re powerful and easy to use. What’s more, as I write and research, I’m finding them — and Notion in particular—invaluable. I don’t think that I’ll be reverting to Google Docs/Workspace/Whatever It Is Today for this type of thing.