A two-tab spreadsheet that flags which SKUs need reordering and tracks what you ordered against what actually arrived. Download it, or run the same formulas below.
What's in the file: Tab 1, reorder points per SKU with an Order now / Getting close / Fine status. Tab 2, a purchase order with ordered-vs-received tracking and a destination-location column. Formulas are visible and unlocked; change anything.
No form, no login — just the file. It opens in Excel, Google Sheets, Numbers or LibreOffice.
The first row is the spreadsheet's example, an invented product. Overwrite it or remove it.
A convention chosen for this template so the status has a middle step, not a benchmark. Set it to whatever gives you enough warning for your lead times. The spreadsheet uses 20% too, in the Status formula.
| SKU / product | Units sold, last 30 days | Avg daily sales | Supplier lead time (days) | Longest lead time seen (days) | Peak daily sales | Safety stock | Reorder point | On hand | Status | Remove |
|---|
Plain cells are inputs; shaded cells calculate themselves, like the spreadsheet. Scroll sideways on a small screen.
Everything on this page runs in your browser. Your sales and stock numbers are never uploaded — inputs save to your own device only.
One person, one location, one lead time per SKU, on-hand counts typed in when someone remembers. OmniOrders keeps stock counts in sync across your channels and works out reorder points from supplier lead time, safety stock and sales history, with low-stock warnings colour-coded in the inventory list.
Start Free Trialaverage daily sales = units sold in the last 30 days ÷ 30 reorder point = (average daily sales × supplier lead time) + safety stock
The first half is what you expect to sell while you wait for the supplier. If you sell 30 a day and the supplier takes 14 days from order to delivery, you will sell about 420 units between placing the order and receiving it. Order when you have 420 left and, on a normal cycle, the new stock lands as the last unit sells.
Nobody gets a normal cycle every time. The supplier runs late, or a good week eats the stock faster than the average says. Safety stock is the extra you hold for exactly those cycles, so the reorder point is the normal-cycle demand plus that margin. When on hand reaches it, order; the "Getting close" band gives you warning before it does.
safety stock = (peak daily sales × longest lead time seen) − (average daily sales × supplier lead time)
never below zero The first term is the worst cycle you have actually lived through: your best sales day, sustained across the longest wait the supplier has ever made you sit through. The second term is a normal cycle. The difference between them is the stock that would have saved you on the bad cycle, and that is the safety stock.
The spreadsheet's example row (Blue Cotton Tee M, an invented product): 900 units sold in 30 days, so 30 a day on average. Supplier lead time 14 days, longest seen 25 days, peak day 52 units. Worst cycle: 52 × 25 = 1,300. Normal cycle: 30 × 14 = 420. Safety stock = 1,300 − 420 = 880. Reorder point = 420 + 880 = 1,300. With 300 on hand, the status is Order now.
Why this method: it sizes the buffer to the gap between a bad cycle and a normal one, which is the case that causes stockouts, and it needs no statistics background, unlike a service-level or Z-score approach. If the number looks large, that is a fact about how much your supplier's lead time and your sales swing, not a mistake in the formula. The levers are a more predictable lead time or a shorter one.
The template and this calculator are deliberately simple so every number can be checked by hand. What they leave out:
The second tab is a PO you can send to a supplier: header (PO number, date, supplier and contact, ship-to, expected delivery, payment terms), line items with a destination location column so one PO can be split across warehouses, and receiving columns for quantity received, date received and variance. Tracking ordered against received is where a spreadsheet PO earns its place; most people raise the PO and never reconcile it.
If you want a PO PDF rather than the spreadsheet tab, use the free purchase order generator: paste your lines, get live totals, a PO check and a clean PDF.
The stock level at which you place a new order so the goods arrive before you run out. It is the stock you expect to sell during the supplier's lead time, plus safety stock for the cycles when sales or the lead time run above normal. When on-hand stock reaches the reorder point, order.
With the max-minus-average method: safety stock = (peak daily sales × longest lead time seen) − (average daily sales × supplier lead time), never below zero. The first term is the worst cycle you have actually experienced; the second is a normal one. The difference is the stock that covers the gap between a bad cycle and a normal one, which is when stockouts happen. It needs no statistics: no service levels, no Z-scores, just numbers you already have.
Because stockouts are caused by the worst cases, not the average ones. A supplier that usually takes 14 days but once took 25 will do it again; a product that sells 30 a day but did 52 on its best day will spike again. Sizing safety stock to the gap between those figures and the normal ones covers the case that actually bites. Use your own history: the calculator has no built-in numbers.
"Order now": on hand is at or below the reorder point, so place the order. "Getting close": on hand is above the reorder point but within a band above it (20% by default), so it will cross soon. "Fine": comfortably above. The 20% band is a convention chosen for this template, not a benchmark; change it in the field above the table, or in the Status formula in the spreadsheet.
Yes. Nothing is locked or hidden. Every calculated cell shows its formula in the formula bar, and the note under the Reorder points table explains the status thresholds. Adapt the 30-day window, the status band or the safety stock method to suit your business; it is your file.
No. The download is a plain file from this site, and the calculator runs entirely in your browser. Inputs save to your own device (localStorage) so they are there when you come back, and clearing your browser storage removes them. Nothing you type is uploaded.
When the assumptions behind it stop being true: one person updating it, one location, one supplier lead time per SKU, counts typed in by hand. Once stock sits in more than one place or sells on more than one channel, the sheet is out of date between updates and the reorder decision drifts with it. That is the point where an inventory platform earns its keep. OmniOrders keeps stock counts in sync across channels and works out reorder points from supplier lead time, safety stock and sales history, with low-stock warnings colour-coded in the inventory list.