Deconstructed inventory management
the basis for a home information management project 2025-11-25 #product
- Narrative
- Details ←
- Tooling
- Minimum viable solution
Since 2020, I’ve played home inventory management, which makes online orders for supermarket deliveries more satisfying. It also keeps the storeroom, fridge and freezer well-stocked, while minimising cost and waste. This article deconstructs the narrative, to make it look more like a software problem.

Photo: twelve of the storeroom shelves in 2024 – some of the unrefrigerated food inventory
Context
- Weekly orders include fresh goods, such as fruit and vegetables.
- Orders have a minimum order value.
- Weekly supplies reach 50–80% of the minimum order value.
- Available storeroom space easily accommodates each item’s maximum inventory.
Optimisation goals & constraints
- Use all inventory before its best before date.
- Store each product in a consistent location in the storeroom.
- Keep the storeroom tidy, without spreading a stock item across more than one shelf.
- Use discounts to minimise each stock item’s moving average price.
Inventory data model
| Attribute name | Example value | Description |
|---|---|---|
| product name | De Cecco Spaghetti Nr. 12 | The name on the supermarket web site |
| inventory | 4 | The actual quantity currently in the storeroom |
| expected inventory | 5 | Actual inventory plus ordered undelivered stock |
| shelf | C3 | Storeroom shelf column and row, fridge, or freezer |
| maximum inventory | 6 | The highest quantity to stock for this product |
| shelf life | 12 | Months from delivery date to ‘best before’ date |
| last discount | 2025 | The year of this product’s last discount |
I would absolutely use the supermarket’s unique product SKU codes, but they don’t expose them in the customer-facing interface.
I occasionally append the product weight/volume/quantity to the product name, to choose among alternatives, but not often enough to want a separate attribute.
Example data
| Shelf | Product name | Inventory | Maximum | Shelf life | Last discount |
|---|---|---|---|---|---|
| B3 | Tortilla wraps | 3 | 6 | 6 months | |
| C1 | Marmite yeast extract | 3 | 4 | 13 months | 2025 |
| C2 | De Cecco Spaghetti no. 12 | 1 | 6 | 2025 | |
| D2 | Mutti Polpa | 5 | 36 | 2024 | |
| fridge | Mozzarella | 0 | 1 |
Ordering process
- Update inventory levels, by inspecting the storeroom and kitchen.
- Start an order on the supermarket web site, using a desktop computer.
- Add all items from the weekly predefined shopping list.
- Add one of any out-of-stock items.
- Browse discounted items in the storeroom shopping list, and in the list of the week’s discounts.
- Add discounted items up to their maximum inventory, prioritising bigger discounts.
- If necessary, to reach the minimum order value, add never-discounted items.
- Place the order (with bonus points for an order value within €1 of the minimum).
- For each order line, update expected inventory to actual inventory + order quantity.
- After delivery, update actual inventory levels, and clear expected inventory.
Process variation
Step 1 doesn’t happen during travel, in which case step 2 uses a laptop or phone, and steps 4–7 rely on already-accurate inventory levels.
Step 6: a large discount (up to 50%) may justify exceeding the minimum order value, to bet against a large discount returning before using up that stock.
Step 6: a small discount (e.g. 10%) may justify only partially restocking a previously-discounted product, to bet on a larger discount later.
The question
Given this summary of my domestic inventory management, how would you manage the inventory levels? Which kind of software tool do you think I use?

