When Three Freezers Make a Liar Out of You
The Location field in this template lists six options: Cupboard, Fridge, Freezer, Midroom Freezer, Flat Freezer, Flat Fridge. Six. That's not overkill — that's the honest architecture of a household with a chest freezer in the utility room, an upright in the garage, and a fridge in the flat downstairs. Anyone running a kitchen at that scale already knows the problem: you buy Quorn mince because you couldn't remember whether you had any, and then you find two packs in the Midroom Freezer behind the vacuum bags. The inventory breakdown isn't a willpower failure. It's a retrieval problem.
Most pantry tracking systems collapse because they assume a single contiguous storage space. This template doesn't. Each item record carries its own location flag, which means filtering to "Flat Freezer" gives you an accurate manifest of exactly what's down there before you make the trip.
The Mechanics of a Well-Built Record
The Use within days: field is calculated, not entered. It runs if(datediff(now(), exp.) <= 0, 'out of date', datediff(now(), exp.) + 1) — a live countdown against the Exp. date that flips to "out of date" the morning the item crosses its expiry. Sort any view by this field and your most time-critical items surface immediately. A bag of Quorn mince with four days left and a pack of Fish with twelve is not the same risk profile, and that difference shows without any manual flagging.
Stock quantity paired with Units — pack, kg, or portion — handles the unit ambiguity that plagues manual lists. Half a kg of pasta is not the same as half a pack, and the distinction matters when you're checking against a recipe. The Quantity for shopping integer field captures not just that you need something, but how many units to buy. Toggle Need shopping and set the quantity before you leave, and the list is already built.
The Trolley boolean is the operational field. It's the working flag, separate from Need shopping, that marks items actually in the active shopping run. You can prepare the need-shopping list days in advance and then flip items into Trolley status when you're physically in the shop. That two-stage flow prevents the list from getting stale between planning and execution.
Finding a Meal in the Wreckage
The "What can I cook?" section is unusual. It's not a meal planner — it's a cross-reference audit. Up to three recipe slots (1st, 2nd, 3rd) each carry a recipe name, a YES/NO radio for whether you can cook it right now, a date field for when you last cooked it, and a rich-text Ingredients field listing what the recipe needs.
Standing in the kitchen at 5:30 PM on a Thursday, with a Flat Freezer you haven't checked in two weeks and three people asking what's for dinner — the pattern is: open the inventory, filter to what's actually in stock, cross-check against the Ingredients list for the three recipes you've pre-loaded. Set Cooking: YES on the one where all ingredients are present. That's the decision made.
The last-cooked date stops rotation failures. If you always default to the same two meals because you know they work, the dates will show it.