Your sales
Lead time is the days between placing an order and having stock to sell, plus the days until your next order opportunity. Service level is the chance of not running out before the next delivery. Units should be consistent (each, not cases, for one SKU).
Upload or paste your sales, then click Back-test.
Result
What to order now
| SKU | On hand | On order | Days of cover | Reorder point | Order | Notes |
|---|
Stock plan by SKU
| SKU | Class | Method that won | Lead-time demand | Safety stock | Reorder point | Error on unseen | Repeat-last error |
|---|
Which methods won
| Method | SKUs |
|---|
Warnings by SKU
How it is calculated
Periods: sales are summed into weeks (Monday start) or months. A part-filled first or last period is dropped when your rows are daily, so a half-empty week is not read as a slump. Each SKU's history starts at its first sale, so a new product is not forecast from months before it existed. Methods: repeat last period; moving average (8 weeks or 3 months); exponential smoothing; Croston with the Syntetos-Boylan correction for intermittent demand; damped-trend smoothing (Gardner and McKenzie); and, once a SKU has two full years plus a few back-test points, same-period-last-year and additive seasonal smoothing (Holt-Winters without trend). Smoothing constants are fitted by a coarse grid on past one-step errors. Back-test: from up to 30 past forecast origins each method sees only earlier history and forecasts the whole lead time; the error in total lead-time demand is recorded. With nine or more origins the winner is picked on the older two thirds (preferring the simpler method unless another is 3% better) and scored on the newest third. Stock: safety stock is the normal quantile for your service level times the winner's root-mean-square lead-time error over all origins; reorder point is forecast lead-time demand plus safety stock; the interval is forecast ± 1.96 times that error. Classes: ABC by cumulative share of units (80/15/5); XYZ by coefficient of variation of period sales (up to 0.5, up to 1, above).
Order list: with a stock file, inventory position is on hand plus on order; at or below the reorder point the order brings it up to the reorder point plus the cover days of forecast demand, is raised to your minimum order quantity and rounded up to whole packs. Not modelled: stock-outs (sales are not demand), promotions, price changes, holidays that move, supplier lead-time variability, shelf life, budget limits, substitution between SKUs and the cost of holding stock. Unverified: checked against closed-form results on constructed series and against invented data in unit tests, not against a published retail dataset or a commercial planning tool.
Common questions
How do I forecast demand for each product from a sales export?
Upload a CSV with a date, a SKU and units sold. For every SKU the tool tries seven standard methods, from repeating last period to seasonal smoothing, replays each one from many points in your own past, and keeps the one that would have predicted best. It then forecasts demand over your supplier lead time and turns the forecast error into safety stock and a reorder point.
What data do I need?
One row per sale, per day or per period with a date, a SKU or product name and the units sold. Shopify, WooCommerce, Amazon and spreadsheet exports work if they have those columns; the tool finds them by header name. Returns (negative units) net against sales. A year is the practical minimum; two full years allow seasonal methods to be tested.
What does the back-test actually do?
It pretends it is standing at an earlier date, hides everything after it, forecasts the next lead-time window, and compares with what really sold. It does this from up to 30 earlier dates for every method. The method is chosen on the older dates and its accuracy is reported on the newest third, which it was not chosen on, so a lucky pick shows up as a loss against simply repeating last period.
How is safety stock calculated?
Safety stock is the service-level z-score times the typical size of the chosen method's miss on lead-time demand, measured in the back-test, not an assumed formula. The reorder point is the forecast lead-time demand plus that safety stock. A 95% service level uses z of 1.645; 99% uses 2.33.
Why does the tool sometimes say my forecast is no better than repeating last month?
Because for noisy or short series that is true, and most forecasting software will not tell you. When no method beats the simplest one on unseen points, the useful levers are shorter and more reliable lead times and a sensible buffer, not a better model.
What are ABC and XYZ classes?
ABC ranks SKUs by units sold: A is the top 80% of volume, B the next 15%, C the last 5%. XYZ measures how steady demand is: X is a coefficient of variation up to 0.5, Y up to 1.0 and Z above that. A-X items are worth managing tightly; C-Z items are usually worth a simple min/max rule.
Are zero-sales weeks really zero demand?
Not if the item was out of stock. Sales are not demand, and a stock-out teaches every method to forecast too low. The tool flags SKUs with many empty periods so you can check them against your stock history before you order.
How do I get an order list, not just reorder points?
Add a stock file with one row per SKU: units on hand, and optionally units already on order, the supplier's minimum order quantity and pack size. The tool compares each SKU's inventory position with its reorder point and lists what to order now, rounded up to your packs, plus what will run out before an order can arrive and what is overstocked. Download the CSV for your purchase order.
Is my sales data uploaded anywhere?
No. The file is read and analysed in this browser tab. Nothing is sent to a server, there are no accounts or cookies, and your sales are never stored.