The number nobody checks
For a long time I treated the forecast as a figure that simply showed up. The system said 140 units a month, I ordered against 140 units a month, and if we ran short I blamed the supplier or the season. It never occurred to me that the 140 could be graded like anything else in the business.
We grade freight against the quote and labor hours against the roster. The forecast drives more purchasing dollars than either and gets checked less.
The method is short. Pull the last three months of forecast for a SKU. Pull what actually sold. For each month, take the gap between the two, ignore whether it was over or under, and divide by what actually sold. Average the three. That is the mean absolute percentage error, MAPE if you want the acronym, and it is the single most useful number you are probably not looking at.
Error for a month = |forecast - actual| / actual. Average the months. That is your MAPE.
A worked example
Say a candle SKU was forecast at 120 units a month for three months.
Month one it sold 100. Gap of 20, divided by 100, is 20 percent.
Month two it sold 150. Gap of 30, divided by 150, is 20 percent.
Month three it sold 90. Gap of 30, divided by 90, is 33 percent.
Average those and the forecast was off by about 24 percent. Not terrible, not good. What matters is what you do next. If lead time is five weeks and you are wrong by a quarter in either direction, then over one lead time you can be short by roughly a week and a half of stock without anything unusual happening. That is what your safety stock is for, and most people set it by feel.
Where the average lies
MAPE breaks on small numbers, and most catalogs are mostly small numbers.
Take a slow SKU forecast at 3 units a month that sold 1, 6 and 2. The errors are 200 percent, 50 percent and 50 percent. Average error: 100 percent. It looks like a disaster. Add up the units, though, and the forecast said 9 and you sold 9. Over the quarter it was exactly right.
Two fixes. First, for slow SKUs, score the quarter as a lump instead of month by month. Second, weight the whole exercise by dollars. A 40 percent miss on a SKU that moves $200 a month is a shrug. A 15 percent miss on the SKU that moves $9,000 is a purchase order you got wrong.
So sort by revenue and start at the top. Twenty SKUs will usually cover most of what matters. Do not score the long tail at all until the top is clean.
Score demand, not sales
This is the trap that took me longest to see. If a SKU was out of stock for nine days in March, March sales are not March demand. They are March demand minus the customers who left. Score your forecast against that number and a good forecast looks like it overshot, so you trim it, order less, and run out again.
Before you grade anything, mark the months with stockout days and either leave them out or correct for them. Stocura does the correction inside the reorder math: it takes out-of-stock days off the divisor when it works out daily demand, and it does the same for the monthly history the forecast is built from. If you are doing this in a spreadsheet, at least flag those months.
The same goes for promotions you knew about. A forecast that did not know about the sale should not be marked down for missing it. If you can, mark those months too.
Score the forecast against demand, not against sales. Months with stockout days understate demand, so flag them before you grade anything.
What the score is for
A grade you do nothing with is a report card in a drawer. Here is what to do with it.
Set safety stock by error. A SKU whose forecast lands within 10 percent can run lean. One that misses by 35 percent needs more cushion or a shorter reorder cycle, whatever the formula says.
Then find the SKUs you should not forecast at all. Some products are lumpy: one wholesale order a quarter, then nothing. No model rescues those. Hold a fixed minimum, reorder by hand and stop pretending.
Watch for drift. If a SKU's error has crept from 15 percent to 30 percent over two quarters, something changed. A new competitor, a listing that dropped in search, a supplier swap that altered what the product is. The score tells you to go and look.
What Stocura does with it
Stocura tracks forecast accuracy as MAPE and shows it on the dashboard. It scores forecasts forward, from the point they are made, which means a fresh account has little to look at for the first few months and the number gets more useful as history builds. It does not go back and replay old periods for you, so if you want a retrospective score today, the spreadsheet method above is still the way to get it.
Each reorder figure also carries a confidence tier, high, mid, low or insufficient data, and that tier feeds the safety stock multiplier. Low-confidence SKUs get more cushion automatically. When you set a demand boost for a known event, the app checks how the boost performed after it expires, so you find out whether your 1.5x was right or hopeful.
Forecasting is built from 24 months of demand history, with a three-month look ahead, refreshed daily from your Cin7 Core and Shopify data.
This week
Export twelve weeks of sales for your top 20 SKUs by revenue. Find the forecast you had at the time, even if it is a number in an old email. Score each one. Sort by error and read the top and bottom five.
The bottom five are the ones you can order from with your eyes shut. The top five are the ones costing you money, and you probably already knew which SKUs they were.
See how far off your forecast is, SKU by SKU.
Stocura tracks forecast accuracy against your Cin7 Core and Shopify data and shows it on the dashboard. Free during the beta, no billing.
Start free trial