Shopping the Gap: How to Make a Grocery List From What You Already Have
Write the list last, not first. Inventory your perishables, build your first two meals around whatever dies soonest, then write down only the difference between what those meals need and what’s already on your shelves. That subtraction step is the whole method, and it’s the one every normal list skips.
Here’s how almost everyone writes a grocery list:
- Decide what to cook this week
- Look at what those recipes need
- Write it down
- Buy it
It’s logical, it’s what every recipe site encourages, and it has one significant flaw: step 3 doesn’t subtract anything. The list describes the full ingredient requirements of your plan, as though your kitchen were empty. It isn’t. It contains, at any given moment, somewhere between forty and a hundred food items you already paid for.
So you buy the olive oil you have. The rice you have. The second tub of yoghurt. And — more expensively — you don’t build any meals around the vegetables already in the drawer and about to die, because those vegetables were never part of the conversation.
What a gap list is
The alternative inverts the order:
- Look at what you have, especially what’s about to turn
- Build a plan that uses those things first
- Write down only the difference between what the plan needs and what’s on the shelves
- Buy that
Same destination — a week of meals and a shopping list — arrived at backwards. Three things change as a result, and they compound.
Your existing food gets used. Not as a virtuous afterthought but structurally, because it was the starting point. The spinach isn’t competing with a recipe you picked on Sunday; the spinach is the reason for the recipe.
Your list gets shorter. Everything you already own drops off automatically. Duplicate buying becomes almost impossible, because a line can only exist on the list if the comparison produced a shortfall.
Your meals get less repetitive. This one surprises people. Planning forward from recipes means picking from your mental shortlist of about nine dinners. Planning backward from “half a cabbage, some feta, and chicken thighs” forces you somewhere you wouldn’t have chosen — which is usually more interesting.
How to build a gap list by hand
It’s genuinely feasible, and worth doing manually at least once so you can see the mechanism working.
Step 1 — Inventory the fast stuff only. Not everything. Open the fridge and the vegetable drawer and write down what’s perishable and what state it’s in. Ignore the pantry entirely for now; tinned tomatoes are not time-sensitive and will still be there next week. This takes about three minutes.
Step 2 — Sort it by urgency. What dies in two days, what dies in a week. See what goes bad first if you’re unsure — the ordering is more predictable than it feels.
Step 3 — Build the first two meals from the top of that list. These are your Monday and Tuesday. This is the non-negotiable part; everything else is optional.
Step 4 — Fill in the rest of the week loosely. Two or three more meals, at least one built from long-life pantry items as a backstop for when the week goes wrong.
Step 5 — Now do the subtraction. For each planned meal, what does it need that you don’t have? That is your list.
Step 6 — Check the perishables for a second home. Anything fresh on your list that comes in a bigger quantity than one recipe needs — herbs, greens, most vegetables — should appear in a second meal. Otherwise you’re generating next week’s waste while writing this week’s list.
Why gap lists are hard to sustain manually
Being honest about the friction, because the whole approach lives or dies on it.
Step 1 is fine. Steps 2 and 3 are fine. Step 5 is where it collapses — the subtraction is a tedious cross-reference of maybe eight recipes against maybe sixty pantry items, it has to happen every single week, and being wrong about any one line means either a duplicate purchase or a missing ingredient mid-cook.
That’s why people default to forward-planning despite it costing more. Forward-planning is easy: transcribe the recipe. Gap-planning is arithmetic across two lists, one of which you can’t see from the shop.
This is a computer’s job. It’s exactly the kind of tedious, exact, repetitive cross-reference that people are bad at and machines are perfect at — and notably, it needs no cleverness at all. No prediction, no taste, no language model. Just an accurate picture of what’s on the shelves and a subtraction.
The thirty-second version
If the full method sounds like more than you’ll sustain, do only this:
Before you write any list, look at your vegetable drawer and commit the two most urgent things to specific meals.
That’s it. It doesn’t get you the shorter list or the duplicate elimination, but it captures most of the waste saving — because produce is about a third of household food waste, and produce waste is almost entirely a scheduling failure.
The rest is optimisation. That one habit is the whole idea in miniature.
FAQ
How do I make a grocery list from what I already have? Inventory your perishables first, plan your first two meals around whatever expires soonest, then list only the ingredients those meals need that you don’t already own. The subtraction at the end is what makes it a gap list rather than a wish list.
What is a gap list? A shopping list containing only the difference between what your meal plan requires and what’s already in your kitchen. Because every line is generated by a comparison, it can’t contain duplicates by construction.
How long does this take each week? About ten minutes by hand: three minutes to inventory perishables, a few to plan the first meals, and the rest on the subtraction. The subtraction is the slow part and the part that decays first.
Do I need to inventory my whole pantry? No, and trying to is why people quit. Inventory perishables only. Shelf-stable goods aren’t time-sensitive, so the cost of missing one is a duplicate jar, not a bin bag of spoiled produce.
Why does this reduce food waste more than buying less? Because it changes which food gets eaten, not just how much gets bought. Waste is mostly a sequencing failure — the food was fine, it just wasn’t scheduled before it died.
Cupboard exists to do step 5. Photograph a shelf and it itemizes what’s there, including best-by dates where they’re legible. It plans the week from that inventory — soonest-to-expire first — and generates a list that is, by construction, only the gap. When it can’t fill a slot, it names the ingredient that fell short rather than quietly dropping the meal. See how it builds a list.
Last verified: August 2026.
Related: The third jar of cumin · How to stop throwing away food you paid for