Forecast Accuracy compares what was forecast against what actually happened. It answers a question you cannot get from the forecast itself: should you trust it?
Where to find it: Forecast Accuracy in the Demand Planning section of the main menu.
The screen
Four summary figures, an Accuracy Chart, and a Forecast vs Actual table of the individual weeks behind them. The line under the title says what is being measured: “Forecast against what was actually sold, for the weeks of a run that have closed”.
Above the figures sits a note headed “Two measures, two questions.” Read it before you read the numbers — see Two different accuracy figures.
Choosing a run
A Forecast run picker sits in the header. It lists the site’s completed runs, newest first, each labelled with its run date and how much of it can be scored — for example “14 Sep 2026 · 2 weeks closed”. Pick one and the whole screen reloads on it.
- A run does not have to be finished to be scored. Only the weeks of it that have closed are, and a week closes on Sunday. A run started this month with two weeks behind it is scored on those two weeks.
- The screen opens on the newest completed run that has at least one closed week, so it lands on something worth reading rather than on a run that is all still ahead. If no run has a closed week yet, it opens on the newest completed run.
- Only completed runs are offered, and only the ten most recent. A running or failed run has nothing to score.
- A week whose actual has not been worked out yet is not in the table at all, so the row count is “weeks that can be compared” rather than “weeks in the run”.
An empty screen is normal in your first week. Until a week of a completed run has closed there is nothing to compare, the figures read 0 and N/A, and both the chart and the table say “No week of this run has closed yet. Weeks close on Sunday; pick an earlier run to see its accuracy.” That is also the message to act on later: if the newest run is all still ahead, pick an earlier one from the list. The Forecast accuracy card at the top of this screen is a different measure and will usually show a number sooner — see Two different accuracy figures.
Two different accuracy figures, and which is which
Two things on this screen are called accuracy, and they answer different questions. The screen used to print one of them under the other’s name, which is how the same data could read 100% in one place and 25.2% in another. Both are now on the page, each labelled, under a note that says so in the app’s own words:
Two measures, two questions.
Forecast accuracy is the site’s figure, the one on the Planning Cycle. It weighs every product’s error against how much that product actually sold, over the last twelve weeks of every run, so one big product that missed badly pulls it down on its own.
The run figures below score a single run, one week at a time. Every closed week counts once whatever its size, and counts as a hit when it landed within 10%. A run can hit every week it forecast and still sit well below the site’s forecast accuracy — they are not answering the same question.
The difference in one line: the headline is all products over the last twelve weeks; the per-run figures are one run, week by week. A large product missing badly drags the headline down and barely touches the run figures, because a run figure counts a week of a tiny product exactly as heavily as a week of your biggest. Neither is wrong. They will not match, and they are not meant to.
The summary figures
Four cards. The first is the site figure; the other three are the chosen run. Each says underneath which it is, so the label is never ambiguous:
| Figure | Caption underneath | Meaning |
|---|---|---|
| Forecast accuracy | All products, last 12 weeks | The site figure, the same number the Planning Cycle shows under Site health — fetched from there rather than worked out again, so the two can never disagree. Every product’s error weighed against how much it actually sold. Green from 80%, amber from 60%, red below, exactly as on the Planning Cycle. It does not change when you pick a different run. |
| Weeks scored | This run, closed weeks with an actual | How many weeks of the chosen run have closed and been scored. A small number here means the two figures beside it are not yet worth much. |
| Avg variance | This run, absolute mean | The average gap between forecast and actual across those weeks, as an absolute mean — overs and unders do not cancel out. Weeks that sold nothing carry no percentage and are left out of it. Shows N/A when nothing has a variance at all, rather than a flattering 0%. |
| Weeks within 10% | “N% of the closed weeks measured” | Reads “9 of 14”: how many closed weeks landed within 10% of the forecast, either way, out of how many were scored. The caption gives the same thing as a share. With nothing scored it reads N/A over This run, closed weeks. |
The product filter narrows the run figures too, and they say so. Pick a product and the three run captions change from This run to This run, one product. A card reading “This run” while showing one product’s six weeks would be the same kind of half-truth this screen exists to avoid. The site figure is unaffected: it is always all products.
The detail table
One row per product per closed week. Every heading is a button and re-sorts the table, with an arrow showing which column and which way. It opens worst first — this screen exists to show what the forecast got wrong, and making you page through alphabetical rows to find it would be asking you to do the screen’s job.
| Column | Meaning |
|---|---|
| Product | Which product the row is for. A run covers every forecastable product, so without this column the rows of several products sat interleaved with nothing to tell them apart. |
| Period Start / Period End | The week being scored. |
| Forecast Qty | What was projected at the time, in the product’s stock unit. |
| Actual Qty | What actually happened, in the same unit. See What an "actual" is. |
| Variance % | The gap between the two, as a share of what actually happened: (actual − forecast) ÷ actual. A positive figure means more sold than expected. The badge is green within ±10%, amber out to ±25%, red beyond. Where nothing sold there is no percentage to show, and the cell says which of the two cases it is — see below. |
| Method Used | Which forecasting method produced the number, so a method that suits a product poorly can be spotted. |
“None forecast, none sold” and “Forecast, none sold” are different outcomes
A week that sold nothing has no percentage error at all — the variance is a share of what actually sold, and there is nothing to take a share of. But the weeks that produces are opposites, and the cell now says which one you are looking at:
| The cell reads | What happened, and how it is counted |
|---|---|
| None forecast, none sold green badge | Nothing was expected and nothing happened. A hit. It counts towards Weeks within 10%, and it is left out of Avg variance rather than counted as a perfect 0%. |
| Forecast, none sold red badge | A quantity was forecast and none of it sold. A miss — the worst kind, and one with no percentage to size it. It does not count towards Weeks within 10%, and sorting by Variance % puts it above every measurable miss rather than letting it drop to the bottom as though it were a zero. |
Both used to read “No demand”, which described the two equally well and left the badge colour as the only thing telling a perfect week from a total miss. Colour is never the only carrier of meaning here, so each outcome says what it is.
Filtering and paging
- Filter by product narrows the table — and the chart, and the three run figures, which change their captions to This run, one product. Clearing it restores the whole run without another round trip.
- A pager sits under the table, reading “Showing 1–50 of 214” with Previous, Page 1 of 5 and Next, and a choice of 25, 50 or 100 rows a page. A run over several products produces far more rows than one screen holds.
- Sorting and paging happen on the rows already loaded, so they are instant and the whole run stays available behind the filter.
- Where the filter empties the table it says why: “No closed week of this run has an actual for that product. Clear the product filter to see the rest of the run.” — which is a different message from the run having no closed week at all.
The chart draws one line per product on the measured run, keyed by the legend beneath it, with an Actual line for every product rather than only for a run covering one. The confidence band is deliberately left off: this screen compares forecast against actual, and the band clutters that comparison.
What an "actual" is
An actual is built exactly the way the forecast it is marked against was built, so the score measures the forecast's error rather than the difference between two ways of counting:
- In the product's stock unit. Dispatch lines are entered in whatever unit each was sold in, and the forecast is in the stock unit, so 10 cartons of 12 kg count as 120 kg and not as 10. A unit with no conversion to the stock unit is left out and logged, never counted as though it were the stock unit.
- From the same signal as the forecast. Dispatch is the primary signal. A week with no dispatches is scored against that week's confirmed sales orders instead — which is what the forecast trained on for that week. Scoring such a week as zero used to make every order-driven forecast read −100%.
- From this site only. Stock sent out from another site does not count towards this site's accuracy, even for the same product.
"Confirmed" orders means orders somebody has committed to, at any stage of being filled: confirmed, partly fulfilled, fulfilled and closed. A quotation or a draft order is not demand yet.
Acting on it
- Consistently under-forecasting a product means safety stock is doing work it was not sized for. Raise the buffer on its stock policy, or change its forecast method. Forecast Method, Seasonality Period, Forecast Horizon (weeks) and History Used (weeks) are all on the policy form, per product.
- Consistently over-forecasting shows up as excess stock and, for short-life products, as waste. Both raise stock alerts of their own.
- A wide variance on one product only usually points at that product rather than the method — a promotion, a one-off order, or a seasonal pattern the history does not yet cover.
- A method that keeps losing to another in the Method Used column is worth switching. Seasonal Decomposition earns its keep on products with a real annual or quarterly shape; a Moving Average is better on steady ones. Give Seasonal Decomposition a fresh look after this release: the two faults described under Things to know made it worse than it should have been on exactly the trending products it is for.
Then run a new forecast, from Forecasts or from step 1 of the Planning Cycle. A policy change does not alter a forecast that has already finished.
Availability and permissions
This screen needs the Demand Planning module, which itself needs Manufacturing and Orders — see Getting started with Demand Planning. Viewing is open to any user with a role; there is nothing here to change, so no further permission applies.
A site is not a security boundary. The site selector decides which site’s runs and figures you are looking at, and it keeps another site’s out of your way. It is a working scope, not a wall: a user who can open this screen and change site can read that site’s accuracy. The real boundary is the account — nothing belonging to another account is reachable at all. Do not use sites to keep figures from a colleague; use roles.
Things to know
- Only weeks with actuals are scored. A forecast for a week that has not happened yet cannot be graded, so the sample shrinks the further ahead you look. A week that closed and sold nothing is still scored, though: it is left out of the average rather than counted as a perfect 0%, and it counts as a hit only if nothing was forecast for it. Which of those two it is, the row says — see “None forecast, none sold” and “Forecast, none sold”.
- Accuracy is measured against a threshold, not perfection. A forecast inside 10% counts as accurate.
- Scoring happens every night, not only when a forecast runs. Any period that has closed is scored as part of the nightly 2am sweep in your account's time zone, whether or not a forecast is due that day and whether or not Scheduled forecast runs is switched on in Forecast Settings. Running a forecast yourself scores the closed periods too, before it forecasts.
- Two figures are called accuracy, and both are now on this screen. Forecast accuracy is every product weighed by what it sold over the last twelve weeks — the same number the Planning Cycle shows under Site health, fetched from there rather than worked out again. Weeks within 10% is the share of one run's closed weeks that landed close enough. Both are honest; they answer different questions and they will not match. See Two different accuracy figures.
- An empty screen is normal early on — it needs one completed forecast with a week that has since closed. On a site set up this week there is nothing to score, and the screen says “No week of this run has closed yet. Weeks close on Sunday; pick an earlier run to see its accuracy.” rather than showing a misleading 0%.
- The picker offers the site's ten most recent completed runs. A site that forecasts daily is therefore scored on a recent run, not one from months ago.
- Accuracy takes a step at this release, and the forecast is the reason. Two faults in Seasonal Decomposition were fixed: its trend was measured over one stretch of history and read off at a different point, which over-forecast every product with a rising or falling trend by half a season; and its confidence range was computed as a ratio and shown as a quantity. Separately, every product’s history is now held to a band drawn around its typical week before it is projected from, so a one-off order no longer sets the trend — and a product that sells in fewer weeks than it does not is left alone entirely, so its forecast rises. See How one unusual week is handled for which products move and in which direction. Any product touched by either change projects different numbers, so runs from before the release and runs from after it are not comparable. Judge a method by runs made after the release.
- This screen reports; it does not change anything. Adjusting a forecast means changing the product's stock policy and running a new forecast.