When your best seller keeps selling out: the reorder point on one SKU
If one product carries most of your revenue and it keeps hitting sold out, the problem is rarely demand, it is the reorder window closing while you were busy. Restoc is a reorder alert app for Shopify stores, built to work out that SKU's reorder point from your own sales, your supplier's lead time and a safety stock cushion, then tell you the day it is crossed.
One SKU, most of the revenue, and nobody watching it
One product carries the week. It might be one of fifty SKUs or one of two thousand. It is the line that pays the rent, and the line customers email about when the page says sold out.
The job in front of you is narrow. You do not need a full ERP. You need to know when to reorder that one product, early enough that the supplier can still get it here.
A normal week goes like this. You open the Shopify admin. You read the stock figure for that SKU. You do a rough sum in your head and decide it can wait. Sometimes the spreadsheet gets updated, sometimes it does not. Then a launch, a repeat wholesale order or one good creator post takes three weeks of cover out in four days. The page is sold out before anything is on order.
Running out of that line is not a tidy inventory problem. It is orders you cannot fill on the product that was actually working. A sold out page also teaches returning customers to check back less often. We treat that as a real cost, without pretending to put a figure on your store.
This page is about the arithmetic behind that one SKU: where its reorder point comes from, how a safety stock cushion changes it, how it moves, and what its row on the dashboard tells you. The wider playbook for keeping best sellers in stock, including supplier habits and catalogue-wide hygiene, sits on a separate page, How to stop running out of your best sellers.
Why the fast mover is the one that catches you out
A slow SKU forgives a late order. Sixty units of something that sells one a week gives you a year to notice. The hero SKU is the opposite: high velocity against a lead time you do not control.
Work it with round numbers. The SKU sells twelve units a day. The supplier needs twenty one days from purchase order to pallet. Lead time demand is twelve times twenty one, so 252 units. The day stock drops under 252, you are already late. What you order now lands after the page has gone to zero. Meanwhile the stock column says 260, which reads like plenty.
That is also the case for a cushion. Averages assume the line sells evenly, and a hero SKU rarely does. It sells in bursts. A store-wide safety stock percentage sits on top of lead time demand, so a burst eats the cushion instead of your cover. Twenty percent on the sum above puts the threshold near 302 rather than 252, and 260 units now reads as what it is: late.
That threshold is the reorder point. On a hero SKU it is the only number worth watching, and it moves when velocity moves. The same product at nineteen a day in November needs 399 units of lead time demand, not 252, before any cushion. Nobody does that sum by hand twice a week. That is why the figure in the admin keeps looking fine right up to the point it is not.
Restoc keeps that one calculation in one place. The formula is a tested function with three merchant inputs: the lead time for the SKU, the sales velocity window you trust, 7, 14 or 30 days, and a store-wide safety stock percentage. Current stock and sales history come from your store. The install is built to read that sales history alongside your catalogue, then keep inventory levels and new orders current through Shopify webhooks and a scheduled sync job. So the reorder point is worked out again as store data arrives, rather than sitting as a low stock figure you typed in once and forgot.
How Restoc watches the SKU you cannot run out of
- Connect the store once
Install through Shopify's OAuth flow. The install is built to read your catalogue and your store's sales history, then keep inventory levels and new orders current through Shopify webhooks plus a scheduled sync job, so you are not exporting anything. It is a web app: no mobile app, no browser extension.
- Set lead times by supplier, not SKU by SKU
Each SKU carries the vendor from its Shopify product, filled in on the scheduled sync. The vendor lead times screen lists every distinct supplier in your catalogue, so you enter one lead time per supplier and it covers every SKU that has no lead time of its own. The hero SKU can still carry its own number where that supplier is faster or slower than the rest.
- Choose the velocity window and the safety stock
Pick a store-wide sales velocity window of 7, 14 or 30 days, and a store-wide safety stock percentage that sits on top of lead time demand. The reorder point is calculated from those inputs and your own sales history, not from a flat low stock figure. On Pro you can override the velocity window per SKU.
- Read the hero SKU's row on the dashboard
The dashboard shows current stock, days of inventory remaining, safety stock in units and reorder status for every active SKU, with its supplier beside it. For the one product you care about, that row is the whole answer: how much is left, how long it lasts at the current rate, how much of that is cushion, and whether it already sits under its reorder point.
- Get the alert at the crossing, not at zero
When a SKU crosses its reorder point, Restoc fires an alert by email, and by Slack webhook on Growth and above. Delivery runs through an idempotent background job, so one crossing produces one alert per channel.
- Place the order from the weekly report
Once a week the reorder report lists every SKU below its reorder point with its supplier, its safety stock in units and a suggested order quantity, viewable in the app and exportable as CSV. That is the document to work from when you sit down to raise purchase orders.
The numbers Restoc keeps on your hero SKU
| Number | What it answers | Where it comes from |
|---|---|---|
| Current stock | How many units are on hand | Shopify inventory levels, through webhooks and the scheduled sync job |
| Sales per day | How fast the line is actually moving | Your store's sales history, read from Shopify and kept current by webhooks and the sync job |
| Days of inventory remaining | How long that stock lasts at the recent sales rate | Your sales history across the 7, 14 or 30 day window you choose |
| Safety stock, in units | How much of the threshold is cushion for a burst | Your store-wide safety stock percentage applied to lead time demand |
| Supplier | Who you raise the purchase order with | The vendor on the SKU's Shopify product, filled in on the scheduled sync |
| Reorder status | Whether this SKU sits above or below its reorder point | The reorder point calculated from lead time, sales velocity and safety stock |
| Suggested order quantity | Roughly how much to put on the purchase order | The weekly reorder report, in app or as a CSV export |
What changes when one SKU carries the revenue
The watching stops being a memory task
Stock levels and sales arrive from your store through Shopify webhooks and a scheduled sync job, and the reorder point is worked out against them. You are not relying on remembering to open the admin on a Tuesday to read one number.
Velocity from your own sales, not a guess
The reorder point is calculated from your store's sales history over the window you pick. Restoc is built to read that history from Shopify rather than ask you to type a threshold.
A cushion for a line that sells in bursts
A store-wide safety stock percentage is added on top of lead time demand, so the threshold is not set by an average the hero SKU never actually follows. The units it adds are shown on the dashboard, in the weekly report and in the CSV, so you can see what the cushion is costing you in stock.
Supplier lead times in one pass
Lead time can be set once per supplier on the vendor lead times screen, which covers every SKU that has no lead time of its own. One supplier is three days and another is twelve weeks, and you are not typing that into hundreds of rows.
An alert that fires on the crossing
The alert goes out when the SKU crosses its reorder point, by email, or into a Slack channel on Growth and above, so the warning lands where you and your team already are.
One alert per crossing
Delivery runs through an idempotent background job. A job that runs again does not resend yesterday's warning: one crossing, one alert per channel.
The second and third best sellers too
Current stock, days of inventory remaining, safety stock and reorder status are shown per active SKU, so the rest of the catalogue is covered while you are watching the hero.
A reorder document, not a research project
The weekly report lists what is below its reorder point with a suggested quantity and the supplier to order it from, and exports to CSV so you can send it or paste it into whatever your supplier uses.
The limits worth knowing before you decide
We would rather you knew the edges now than found them after installing.
- The safety stock percentage is one store-wide number. There is no per-SKU safety stock figure today.
- Suppliers come from the vendor field on your Shopify products, so the vendor lead times screen is only as tidy as that field is.
- Every plan covers one location. If you hold the hero SKU across several warehouses, this is not the tool for that yet.
- The velocity window is 7, 14 or 30 days. There is no longer seasonal window.
- Restoc calculates reorder points and alerts on them. It does not forecast demand, write purchase orders or send them to suppliers.
- It is a web app. There is no mobile app and no browser extension.
- Sign-in is email and password. There is no single sign-on and no two-factor authentication today.
- Slack alerts start on Growth. Starter is email only, sent through Amazon SES to your account email until you change it in alert settings.
The app and its Postgres database run on Amazon Web Services. SKU caps are enforced when your store syncs, so pick the tier that covers your catalogue rather than the one you hope to grow into. Full plan detail sits on the pricing page, the trial mechanics on the 60-day free trial page, and what Restoc reads from your store, where it is kept and how to delete it on the security page. If your catalogue runs past a thousand lines, the page on stores with 1,000 to 2,000 SKUs covers how alerts behave at that size.
Plans
Starter, $29 a month
Up to 200 tracked SKUs, one location. Reorder point per SKU from your sales velocity and lead time, a store-wide velocity window of 7, 14 or 30 days, email alerts at the crossing, the weekly reorder report with suggested quantities and CSV export, and the days of inventory dashboard. $290 a year if you pay yearly, ten months' price for twelve.
Growth, $59 a month
Up to 1,000 tracked SKUs, five times Starter's capacity, enforced at sync time. Adds Slack alerts through an incoming webhook alongside email. $590 a year if you pay yearly.
Pro, $99 a month
Up to 2,000 tracked SKUs, everything in Growth, plus custom reorder rules: a per-SKU sales velocity window override for the lines that move differently from the rest of the catalogue. $990 a year if you pay yearly.
Questions
How early will I know my best seller is running low?
The alert fires when the SKU crosses its reorder point, and that point is calculated from the lead time you enter, your recent sales velocity and your store-wide safety stock percentage. Set the lead time to match what your supplier actually needs, and the crossing lands while there is still time to raise the order rather than after the page has gone to zero.
Where do the numbers on that SKU come from?
From your own store. The install is built to read your catalogue and your store's sales history through Shopify, then keep inventory levels and new orders current through webhooks and a scheduled sync job. Sales per day, days of inventory remaining, safety stock units and the reorder point are all worked out from that data over the velocity window you choose.
Does it add safety stock on top of the lead time sum?
Yes. You set one safety stock percentage for the store, and it is added on top of lead time demand inside the reorder point calculation, which is a tested function. The units that percentage adds are shown on the dashboard, in the weekly reorder report and in the CSV export, so the cushion is visible rather than buried in a threshold.
Can I set lead times by supplier instead of SKU by SKU?
Yes. Each SKU carries the vendor from its Shopify product, filled in on the scheduled sync, and the vendor lead times screen lists every distinct supplier in your catalogue. Enter one lead time per supplier and it covers any SKU without a lead time of its own, and a SKU can still carry its own number where it differs.
What happens when sales on that SKU jump during a launch?
The reorder point is worked out from the sales velocity window you choose, 7, 14 or 30 days, so a shorter window reacts faster to a spike and a longer one smooths it out. The window is store wide, and on Pro you can override it per SKU for a line that behaves differently from the rest of the catalogue.
Does it tell me how much to order, or only when?
Both, at different moments. The alert tells you a SKU has crossed its reorder point. The weekly reorder report lists every SKU below its reorder point with its supplier, its safety stock in units and a suggested order quantity, viewable in the app and exportable as CSV for your purchase orders.
Where do the alerts arrive?
By email on every plan, sent through Amazon SES to your account email address until you change it in alert settings. On Growth and above you can also send alerts to a Slack channel through an incoming webhook you configure. Delivery runs through an idempotent background job, so one crossing produces one alert per channel.
Can I install it today?
No. Restoc is on a waitlist while it is being built, so there is nothing to connect yet. Join the list and we will email you when install opens, with the 60-day free trial running from the day you connect your store.