Tutorials

AI Inventory Management: Never Run Out of Stock (or Overstock) Again

What a stockout really costs, how to rebuild a reorder point that survives a quarter, and the one thing about your sales history that quietly ruins every forecast.

Marcus Johnson · Operations LeadJanuary 14, 202610 min read

AI Inventory Management: Never Run Out of Stock (or Overstock) Again

One SKU. Eleven days out of stock. It sells 60 units a month at $48, and after a landed cost of $27.84 it earns $20.16 a unit. Eleven days is about 22 units, so the obvious number is $443 of gross profit gone.

The obvious number is roughly 60% of the real one. That is the trouble with stockouts: the part visible in your sales report is the cheapest part.

Price a stockout properly, once

Keep the same SKU and add the two costs that never appear in a sales report.

The traffic you paid for anyway. If that product page is the landing page for a campaign spending $8 a day, eleven days is $88 spent delivering people to a sold-out page. Nothing about the campaign knows the product is gone.

The customers who found the substitute. Of 22 buyers turned away, assume 5 buy the equivalent product elsewhere and stay there. If each of those 5 would have bought twice more from you over a year, that is 10 orders at $20.16, or $202.

Total: $443 plus $88 plus $202, so $733 from one eleven-day gap on one mid-sized SKU. Multiply by how many times that happened last year. Six such gaps across a catalog is about $4,400 spent avoiding a purchase order.

That number is what justifies spending an afternoon on reorder points.

Rebuild your reorder points from demand and lead time

A reorder point answers one question: at what stock level must I order so I do not hit zero before the shipment lands.

The structure is always the same. Average daily demand times lead time in days, plus safety stock.

Worked. The SKU above sells 60 units a month, so 2 a day. The supplier's lead time averages 21 days. Cycle stock is 2 times 21, which is 42 units. That covers the average case exactly, which means it is wrong about half the time.

Safety stock covers the other half. In plain words it is how far above average demand you want to be protected, expressed as a multiple of how much your demand actually varies across the length of the lead time.

Say daily demand has a standard deviation of 0.9 units. Over 21 days that variation compounds as the square root of the number of days, so the spread across a full lead time is 0.9 times the square root of 21, about 4.1 units. For a 95% service level you multiply by 1.65, giving about 7 units of safety stock. Your reorder point is 49.

Push the service level to 99% and the multiplier becomes 2.33, so safety stock goes to about 10 units and the reorder point to 52. Three extra units to move from failing one cycle in twenty to failing one in a hundred. When demand is steady, a high service level is cheap.

Why a reorder point set once is wrong within a quarter. Both inputs move. If that SKU grows from 2 units a day to 3, cycle stock should be 63, not 42. Your reorder point of 49 now fires when you have about 16 days of cover left against a 21-day lead time, so you run out five days before the shipment arrives, every single cycle, while the number on screen still looks correct. A reorder point is a calculation, not a setting. Recompute it quarterly at minimum, and immediately after any change of supplier or season.

Chase lead time variability, not average lead time

Merchants negotiate lead time down. Fewer negotiate it steady, and steady is worth more.

Take a supplier averaging 21 days but ranging from 14 to 35. A range that wide implies a standard deviation of roughly 5 days. That variability has to be covered by stock, and it enters the safety stock calculation multiplied by your daily demand, which is why it hurts.

Run both sources for the SKU above. Demand variability across the lead time contributes about 17 to the total variance. Lead time variability contributes daily demand squared, which is 4, times lead time variance, which is about 27, so 110. Lead time is producing roughly six times as much uncertainty as demand is.

Combine them and safety stock is about 19 units rather than the 7 you would have computed from demand alone. The reorder point is 61, not 49.

Now change exactly one thing. The supplier does not get faster, they get consistent: still 21 days on average, but landing between 18 and 24. Standard deviation drops to about 1.5 days, the lead time term collapses, and safety stock falls to about 8 units.

Eleven units of permanent working capital freed on one SKU, with no change to the average lead time at all. Across 300 SKUs that is the difference between a warehouse and a cash flow problem. Next time you talk to a supplier, ask for a delivery window you can rely on before you ask for a shorter one.

Find the overstock before your accountant does

The other failure is quieter, and it is why the first one keeps happening: capital sitting in the wrong SKUs is capital you do not have for the right ones.

Three measures find it.

  • Weeks of cover. On-hand units divided by average weekly demand. Sort the catalog by it, descending. The top of that list is your problem regardless of what those units cost.
  • Sell-through by cohort of receipt. Group units by the month they arrived and track what percentage has sold at 30, 60 and 90 days. A SKU running 40% sell-through at 90 days across its last three receipts is not going to surprise you on the fourth.
  • Aged inventory. Units held more than 180 days, valued at cost. Look at this number before you place any new order, not after.

The cheapest markdown is the earliest one. Take 200 units of a seasonal SKU at $48 with a $27.84 landed cost. Mark it down 15% in week 4 and it moves at $40.80, earning $12.96 a unit, so $2,592 on the batch. Wait until week 16 and it takes 40% off to move, which is $28.80 and $0.96 a unit, so $192 on the batch, plus twelve more weeks of storage and twelve weeks of capital you could not deploy. The discount you were avoiding cost you $2,400.

Nobody discounts early, because it feels like giving up. Price the alternative and it stops feeling that way.

Understand what a forecast cannot do

Read this section twice, because forecasting is sold as though it has no failure modes.

Forecasting is genuinely good at two things: seasonality and trend, on SKUs with real history. If a product has sold for eighteen months, a model will read its annual shape and its growth rate better than you will, and it will do it for 800 SKUs at once without getting bored.

It is bad at three things, and no amount of model quality fixes them.

New SKUs. There is no history to read. A forecast on a product with three weeks of sales is an extrapolation of three weeks of sales. Honest tools say so out loud: Synton renders a dash rather than a number when a product lacks enough history, and that is deliberate rather than a loading state.

Viral spikes. A model trained on your data cannot know about the video posted yesterday. It will treat the spike as noise, and then, worse, treat it as the new baseline once it is in the history.

One-off promotions. Last April's 30% off weekend sits in your sales data as demand. Unless the promotion calendar is fed in alongside, next April's forecast will quietly expect it to happen again.

Then there is the one that actually costs money.

Your sales history contains stockouts, so it records what you sold, not what you could have sold. Every day a SKU sat at zero is recorded as a day of zero demand. The forecast reads that as weak demand, lowers the projection, which lowers the reorder point, which makes the next stockout more likely and longer, which puts more zeros in the history. The loop tightens on itself, and it always tightens hardest on your best sellers, because those are the ones that run out.

The fix is not a better model. It is marking out-of-stock days as unavailable rather than as zero demand, so they are excluded from the average instead of dragging it down. Before you trust any demand number for a SKU, ask what it did with the days that SKU was unavailable. If nobody can answer, treat the forecast as a floor and not as an estimate.

Where Synton fits

Synton's Inventory app opens on Reorder, because approving a reorder before a product goes out of stock is the job that cannot wait.

That surface lists the products at or below their reorder point and how far below each has fallen, along with the suggested spend for the batch. Auto-create POs turns the suggestions you selected into draft purchase orders. Draft is the operative word. Synton does not email a purchase order to your supplier on its own, and you should not believe any tool that says it does without showing you where the approval happens. You work the order through Purchase Orders, updating status as it progresses and receiving the shipment against it when it lands, with approval queues and three-way matching reached from the same header. An approved purchase order commits real spend with a supplier, so it is treated as a real order rather than a draft.

The header of Reorder also opens a simulator for testing different order sizes before committing. That is the right place to try the lead time argument above against your own numbers.

Forecast and Demand generates per-product forecasts, reports projected units, and, more usefully, reports the accuracy of its past predictions so you can decide whether to believe it on a given SKU. The same surface carries a dead-stock list. Suppliers carries scorecards, recent price changes, and margin impact, which is where a supplier's reliability becomes visible rather than anecdotal.

Inventory Intelligence is one of Synton's 18 autonomous agents. It predicts stockouts and optimizes inventory levels, and it behaves the way every agent does: the first time you enable it, it is in suggest mode, drafting and waiting for you. Enabling it does not give it a clock, so if you want it looking at your stock every night you also have to give it a schedule. Anything it is not confident enough about is recorded and routed to Approvals rather than acted on.

Stock Levels, Locations, Flow, Transfers, Receiving and Cycle Counts cover the physical side: what you hold, where it is, what is moving between locations, and how to correct a count that is wrong.

What to do on Monday morning

  1. Price one stockout from last quarter properly. Lost gross profit, plus the ad spend that ran while the page was dead, plus the repeat orders you did not get. Put that number in front of whoever approves purchase orders.
  2. Recompute reorder points for your top 20 SKUs by revenue. Average daily demand times lead time, plus safety stock. If the number you have been using is more than a quarter old, expect it to be wrong.
  3. Pull the last ten deliveries from each of your three biggest suppliers and write down the spread, not the average. The supplier with the widest range is where your safety stock is going.
  4. Sort the catalog by weeks of cover and read the top 20 rows. Decide a markdown date for each one today rather than in eight weeks.
  5. Check how your demand history treats out-of-stock days. If they count as zero demand, every forecast you own is biased low on exactly your best products.
  6. Then enable one inventory agent and read one full run before you let it near a schedule.

Creating an account is free, takes an email and a password, and needs no card. You can connect your store and open Inventory to see your own reorder list and stock positions before deciding anything. Agent runs and other AI work need a paid plan.

Share:

Related Topics

AI inventory managementShopify inventorydemand forecastingprevent stockouts

Ready to Automate Your Shopify Store?

19 operations keep running between your decisions, so less waits on you.

Start for Free