Writing by Peter Hilton

Domestic inventory management

optimising supermarket home delivery 2025-11-18 #product

  1. Narrative ←
  2. Details
  3. Tooling
  4. Minimum viable solution

Back in 2020, I started playing an inventory management game at home. I signed up for a supermarket home delivery service, to avoid the supermarket during lockdown. This introduced an interesting complication.

Home inventory

I wanted to order every week, to have fresh fruit and vegetables, but the minimum order value meant ordering more food than I needed. I would have to order additional non-perishable goods that I would eventually use.

The obvious solution involves topping up orders with Champagne, to reach the minimum order value, but I didn’t want to make a habit of that. Meanwhile, some orders cost well over the minimum, such as when I needed more dishwasher tablets, or other infrequent purchases.

Spend control

To avoid ‘having’ to order bubbly every other week, I started spreading out infrequent purchases, especially expensive ones. That way I could avoid over-spending by ‘topping up’ orders to the minimum value, and stocking up on some products in advance.

Home inventory in June 2020

This resulted in an inventory of over 100 stock items, and tracking each item’s product name and inventory (quantity). Most food items appear in the storeroom photo (above), excluding fridge and freezer contents.

Storeroom location

Before placing each order, I’d check for out-of-stock products. Going through the list of products I ordered required a consistent location for each one, so I had to shelve stock consistently. I recorded each stock item’s shelf location, using spreadsheet-style column-row references:

Spreadsheet-style shelf locations, such as ‘shelf B2’

These locations remained stable, except for occasional relocations to accommodate maximum inventory changes.

Price optimisation

Supermarket sales promotions offer discounts to browse, for the week containing the delivery date. By stocking up on discounted goods, to reach the minimum order value, I could reduce costs enough to more than cover the delivery subscription fee. This made the game even more satisfying, but caused a new problem:

Spaghetti overstock – 12 packs of spaghetti and spaghettini

After a series of BOGOF (buy one, get one free) offers, I had ordered lots of spaghetti and spaghettini (blue/yellow packets in the centre of the photo, above).

Overstock

Spaghetti lasts a long time, but not necessarily forever. I discovered several products that we use more slowly than I had realised, and that I had overachieved during discount-driven stocking-up.

Flour tortillas last about six months, and we use about one pack per month, so whatever the discount, I shouldn’t have inventory of more than six packs. Based on usage and shelf life, I estimated the maximum inventory I could safely stock for each product, to avoid overstocking.

I occasionally had to adjust the maximum stock. To make it easier for slow-moving products, I added the product’s shelf life – the number of months from delivery until its best before date.

Last discount

Sometimes, nothing on my list had a discount to stock up with, so I might have had to stock up to the maximum inventory without using a discount. This would remove the option to use a future discount for that product.

I started tracking which products never have a discount, by noting the last discount year. Then I could see which products probably won’t have a discount next week.

Inventory management

Unsurprisingly, I couldn’t do this domestic inventory management in my head, and the supermarket web site didn’t help with my home inventory. I needed another software tool, which leads to the next part of the game.

📌 As of November 2025, Peter Hilton is available for a new senior product management role (Europe remote, or Rotterdam), and speaking engagements.

Share on BlueskyShare on LinkedIn