Products: one row per thing you sell
Create a database called Products & Inventory and rename Name to Product. Add:
- SKU: an ID property. Notion numbers each new product for you.
- Price and Cost: Numbers, formatted as your currency.
- Category: a Select for your product types.
- Status: a Select: Active, Draft, Out of Stock, Retired.
- Stock In: Number. Everything you have ever made or bought of this product.
- Reorder Level: Number. When stock falls to this, it is time to restock.
Stock In is a running total. When a new batch of 20 arrives, add 20 to it. You never type in how many are left.
Orders take stock away
Create an Orders database with an Order Date, a Quantity number and a Products relation pointing at Products & Inventory. One product per order row: if a customer buys two different things, make two rows, otherwise the quantity is counted against both products.
Stock that counts itself down
Back in Products & Inventory, add a rollup called Units Sold: Relation set to Orders, Property set to Quantity, Calculate set to Sum. Then add a formula called Stock Left:
prop("Stock In") - prop("Units Sold")What it does: everything that came in, minus everything that was sold.
Every new order lowers Stock Left the moment you link it to the product. Nobody has to update the stock count.
A reorder alert
Add a formula called Stock Alert:
if(prop("Stock In") - prop("Units Sold") <= prop("Reorder Level"), "Restock", "In stock")What it does: says Restock once what is left reaches the reorder level, and In stock otherwise.
How to choose the reorder level
The reorder level should cover the days it takes for new stock to arrive, plus a little extra. Add a Suppliers database with a Lead Time (days) number and a Products relation, then work it out per product:
- Look at how many you sell on an average day. Two candles a day is a common small-shop number.
- Multiply by the supplier's lead time. With a 7-day lead time, that is 14 candles sold while you wait.
- Add a buffer for a busy week, for example 4. The reorder level is 18.
Revisit the number every season. A product that sells twice as fast in December needs a higher reorder level before December, not during it.
The Low Stock view
In Products & Inventory, add a table view called Low Stock with a filter: Stock Alert is Restock. Show Product, Stock Left, Reorder Level and the supplier. This is your shopping list, and it updates every time you sell something.
Optional: what your stock is worth
If you want to know how much money is sitting on the shelf, add one more formula called Stock value:
(prop("Stock In") - prop("Units Sold")) * prop("Cost")What it does: units left multiplied by what each one cost you. Add a calculation at the bottom of the column to see the total.
What this does not do
Notion does not connect to your marketplace or point-of-sale system, so each order is entered by hand or pasted in. At a few dozen orders a week that takes minutes. Once you have several warehouses, variants with their own stock or hundreds of orders a day, a dedicated inventory system will save you time.
