Demand forecast (seasonal)
How much will we sell in the coming weeks, so we order the right stock?
Demand forecast: a seasonal model of weekly sales by category, with an 80% range, that tells you how much stock to order for the coming weeks and the December peak.
The answer
What the forecast is worth, and the weeks ahead
Over the last 52 weeks, held out from the fit, ordering to the forecast instead of last year's amounts would have left €95,600 less stock over and missed €27,900 less in sales, with enough stock in at least 47 of the 52 weeks either way.
Coffee, next 13 weeks
51,289 units
Forecast for 28 Sep 2026 to 27 Dec 2026: €672,500 of sales at €13.11 a unit on average.
Busiest week ahead
5,688 units
The week of 14 Dec 2026, with an 80% range of 5,112 to 6,198 units.
Stock to order, 90% service
56,303 units
5,014 units above the forecast: the buffer that left enough stock in at least 47 of the last 52 weeks, at each week's distance ahead.
The last 52 weeks by category, held out from the fit
| Category | Error, forecast | Error, last year's | Left over, forecast | Left over, last year's | Missed, forecast | Missed, last year's |
|---|---|---|---|---|---|---|
| Coffee | 7.7% | 13.4% | €144,600 | €158,100 | €24,900 | €43,800 |
| Brewing | 6.0% | 10.0% | €79,700 | €119,500 | €6,600 | €3,000 |
| Espresso | 9.3% | 18.2% | €108,100 | €145,700 | €5,800 | €9,900 |
| Tea | 6.7% | 7.6% | €40,800 | €39,900 | €3,700 | €10,300 |
| Cups and care | 6.9% | 18.2% | €45,600 | €51,200 | €3,300 | €5,200 |
| The shop | €418,800 | €514,400 | €44,300 | €72,200 |
Run it
Change the category, the weeks ahead and the service level
How far ahead you plan and order. The test forecasts each held-out week this far ahead.
The share of weeks with enough stock. More service holds more buffer stock.
Coffee: units sold a week, October 2023 to December 2026
The same data as a table
| Week starting | Sold | Forecast | 80% range | Stock to order | Same week last year |
|---|---|---|---|---|---|
| 2 Oct 2023 | 2,286 | ||||
| 9 Oct 2023 | 2,336 | ||||
| 16 Oct 2023 | 2,397 | ||||
| 23 Oct 2023 | 2,274 | ||||
| 30 Oct 2023 | 2,188 | ||||
| 6 Nov 2023 | 2,521 | ||||
| 13 Nov 2023 | 2,422 | ||||
| 20 Nov 2023 | 2,814 | ||||
| 27 Nov 2023 | 3,063 | ||||
| 4 Dec 2023 | 3,424 | ||||
| 11 Dec 2023 | 3,436 | ||||
| 18 Dec 2023 | 3,484 | ||||
| 25 Dec 2023 | 1,763 | ||||
| 1 Jan 2024 | 1,974 | ||||
| 8 Jan 2024 | 2,740 | ||||
| 15 Jan 2024 | 2,556 | ||||
| 22 Jan 2024 | 2,526 | ||||
| 29 Jan 2024 | 2,568 | ||||
| 5 Feb 2024 | 2,529 | ||||
| 12 Feb 2024 | 2,540 | ||||
| 19 Feb 2024 | 2,356 | ||||
| 26 Feb 2024 | 2,486 | ||||
| 4 Mar 2024 | 2,437 | ||||
| 11 Mar 2024 | 2,501 | ||||
| 18 Mar 2024 | 2,608 | ||||
| 25 Mar 2024 | 2,424 | ||||
| 1 Apr 2024 | 2,489 | ||||
| 8 Apr 2024 | 1,604 | ||||
| 15 Apr 2024 | 2,465 | ||||
| 22 Apr 2024 | 2,324 | ||||
| 29 Apr 2024 | 2,379 | ||||
| 6 May 2024 | 2,307 | ||||
| 13 May 2024 | 2,371 | ||||
| 20 May 2024 | 2,400 | ||||
| 27 May 2024 | 2,226 | ||||
| 3 Jun 2024 | 2,318 | ||||
| 10 Jun 2024 | 2,413 | ||||
| 17 Jun 2024 | 2,324 | ||||
| 24 Jun 2024 | 2,335 | ||||
| 1 Jul 2024 | 2,279 | ||||
| 8 Jul 2024 | 2,131 | ||||
| 15 Jul 2024 | 2,226 | ||||
| 22 Jul 2024 | 2,278 | ||||
| 29 Jul 2024 | 2,235 | ||||
| 5 Aug 2024 | 2,323 | ||||
| 12 Aug 2024 | 2,362 | ||||
| 19 Aug 2024 | 2,248 | ||||
| 26 Aug 2024 | 2,220 | ||||
| 2 Sep 2024 | 2,254 | ||||
| 9 Sep 2024 | 2,410 | ||||
| 16 Sep 2024 | 2,483 | ||||
| 23 Sep 2024 | 2,475 | ||||
| 30 Sep 2024 | 2,507 | ||||
| 7 Oct 2024 | 2,709 | ||||
| 14 Oct 2024 | 2,108 | ||||
| 21 Oct 2024 | 2,721 | ||||
| 28 Oct 2024 | 2,957 | ||||
| 4 Nov 2024 | 2,851 | ||||
| 11 Nov 2024 | 3,002 | ||||
| 18 Nov 2024 | 3,091 | ||||
| 25 Nov 2024 | 3,637 | ||||
| 2 Dec 2024 | 3,817 | ||||
| 9 Dec 2024 | 3,853 | ||||
| 16 Dec 2024 | 4,877 | ||||
| 23 Dec 2024 | 2,050 | ||||
| 30 Dec 2024 | 2,276 | ||||
| 6 Jan 2025 | 3,154 | ||||
| 13 Jan 2025 | 2,914 | ||||
| 20 Jan 2025 | 2,845 | ||||
| 27 Jan 2025 | 3,117 | ||||
| 3 Feb 2025 | 2,177 | ||||
| 10 Feb 2025 | 2,932 | ||||
| 17 Feb 2025 | 2,963 | ||||
| 24 Feb 2025 | 2,951 | ||||
| 3 Mar 2025 | 2,792 | ||||
| 10 Mar 2025 | 2,790 | ||||
| 17 Mar 2025 | 1,510 | ||||
| 24 Mar 2025 | 3,181 | ||||
| 31 Mar 2025 | 2,765 | ||||
| 7 Apr 2025 | 2,779 | ||||
| 14 Apr 2025 | 2,824 | ||||
| 21 Apr 2025 | 2,792 | ||||
| 28 Apr 2025 | 2,683 | ||||
| 5 May 2025 | 2,675 | ||||
| 12 May 2025 | 2,561 | ||||
| 19 May 2025 | 2,696 | ||||
| 26 May 2025 | 2,674 | ||||
| 2 Jun 2025 | 2,603 | ||||
| 9 Jun 2025 | 2,519 | ||||
| 16 Jun 2025 | 2,595 | ||||
| 23 Jun 2025 | 2,541 | ||||
| 30 Jun 2025 | 2,726 | ||||
| 7 Jul 2025 | 2,733 | ||||
| 14 Jul 2025 | 2,676 | ||||
| 21 Jul 2025 | 2,600 | ||||
| 28 Jul 2025 | 2,563 | ||||
| 4 Aug 2025 | 2,655 | ||||
| 11 Aug 2025 | 2,834 | ||||
| 18 Aug 2025 | 2,750 | ||||
| 25 Aug 2025 | 2,741 | ||||
| 1 Sep 2025 | 2,714 | ||||
| 8 Sep 2025 | 2,997 | ||||
| 15 Sep 2025 | 2,965 | ||||
| 22 Sep 2025 | 3,094 | ||||
| 29 Sep 2025 | 3,036 | ||||
| 6 Oct 2025 | 2,981 | ||||
| 13 Oct 2025 | 2,885 | ||||
| 20 Oct 2025 | 2,985 | ||||
| 27 Oct 2025 | 3,103 | ||||
| 3 Nov 2025 | 3,026 | ||||
| 10 Nov 2025 | 3,374 | ||||
| 17 Nov 2025 | 3,374 | ||||
| 24 Nov 2025 | 3,710 | ||||
| 1 Dec 2025 | 5,852 | ||||
| 8 Dec 2025 | 4,401 | ||||
| 15 Dec 2025 | 4,029 | ||||
| 22 Dec 2025 | 2,373 | ||||
| 29 Dec 2025 | 2,641 | ||||
| 5 Jan 2026 | 3,262 | ||||
| 12 Jan 2026 | 3,247 | ||||
| 19 Jan 2026 | 3,611 | ||||
| 26 Jan 2026 | 3,216 | ||||
| 2 Feb 2026 | 3,277 | ||||
| 9 Feb 2026 | 2,194 | ||||
| 16 Feb 2026 | 3,060 | ||||
| 23 Feb 2026 | 3,174 | ||||
| 2 Mar 2026 | 3,361 | ||||
| 9 Mar 2026 | 3,250 | ||||
| 16 Mar 2026 | 3,083 | ||||
| 23 Mar 2026 | 3,198 | ||||
| 30 Mar 2026 | 3,259 | ||||
| 6 Apr 2026 | 3,314 | ||||
| 13 Apr 2026 | 3,149 | ||||
| 20 Apr 2026 | 3,288 | ||||
| 27 Apr 2026 | 3,109 | ||||
| 4 May 2026 | 3,079 | ||||
| 11 May 2026 | 3,159 | ||||
| 18 May 2026 | 2,426 | ||||
| 25 May 2026 | 2,971 | ||||
| 1 Jun 2026 | 2,835 | ||||
| 8 Jun 2026 | 1,949 | ||||
| 15 Jun 2026 | 2,848 | ||||
| 22 Jun 2026 | 2,998 | ||||
| 29 Jun 2026 | 3,044 | ||||
| 6 Jul 2026 | 2,792 | ||||
| 13 Jul 2026 | 2,922 | ||||
| 20 Jul 2026 | 3,180 | ||||
| 27 Jul 2026 | 3,004 | ||||
| 3 Aug 2026 | 2,997 | ||||
| 10 Aug 2026 | 3,024 | ||||
| 17 Aug 2026 | 2,937 | ||||
| 24 Aug 2026 | 3,241 | ||||
| 31 Aug 2026 | 3,022 | ||||
| 7 Sep 2026 | 3,205 | ||||
| 14 Sep 2026 | 3,356 | ||||
| 21 Sep 2026 | 3,213 | ||||
| 28 Sep 2026 | 3,322 | 3,007 to 3,657 | 3,657 | 3,036 | |
| 5 Oct 2026 | 3,486 | 3,158 to 3,836 | 3,836 | 2,981 | |
| 12 Oct 2026 | 3,144 | 2,851 to 3,455 | 3,455 | 2,885 | |
| 19 Oct 2026 | 3,441 | 3,090 to 3,786 | 3,786 | 2,985 | |
| 26 Oct 2026 | 3,525 | 3,162 to 3,885 | 3,885 | 3,103 | |
| 2 Nov 2026 | 3,703 | 3,357 to 4,076 | 4,076 | 3,026 | |
| 9 Nov 2026 | 3,722 | 3,373 to 4,053 | 4,053 | 3,374 | |
| 16 Nov 2026 | 4,068 | 3,673 to 4,500 | 4,500 | 3,374 | |
| 23 Nov 2026 | 4,598 | 4,154 to 5,062 | 5,063 | 3,710 | |
| 30 Nov 2026 | 4,977 | 4,477 to 5,460 | 5,461 | 5,852 | |
| 7 Dec 2026 | 5,005 | 4,497 to 5,494 | 5,495 | 4,401 | |
| 14 Dec 2026 | 5,688 | 5,112 to 6,198 | 6,198 | 4,029 | |
| 21 Dec 2026 | 2,610 | 2,348 to 2,837 | 2,838 | 2,373 | |
| 28 Dec 2026 | 2,908 | 2,621 to 3,161 | 3,162 | 2,641 | |
| 4 Jan 2027 | 4,030 | 3,638 to 4,333 | 4,333 | 3,262 | |
| 11 Jan 2027 | 3,738 | 3,379 to 4,057 | 4,058 | 3,247 | |
| 18 Jan 2027 | 3,669 | 3,317 to 3,987 | 3,987 | 3,611 | |
| 25 Jan 2027 | 3,870 | 3,499 to 4,194 | 4,194 | 3,216 | |
| 1 Feb 2027 | 3,242 | 2,932 to 3,541 | 3,541 | 3,277 | |
| 8 Feb 2027 | 3,726 | 3,374 to 4,076 | 4,077 | 2,194 | |
| 15 Feb 2027 | 3,608 | 3,276 to 3,951 | 3,951 | 3,060 | |
| 22 Feb 2027 | 3,693 | 3,358 to 4,051 | 4,052 | 3,174 | |
| 1 Mar 2027 | 3,553 | 3,228 to 3,897 | 3,898 | 3,361 | |
| 8 Mar 2027 | 3,596 | 3,266 to 3,957 | 3,957 | 3,250 | |
| 15 Mar 2027 | 2,863 | 2,595 to 3,150 | 3,151 | 3,083 | |
| 22 Mar 2027 | 3,781 | 3,429 to 4,161 | 4,162 | 3,198 |
How it works
The shop. An online coffee shop that sold €6.0 million in the last 52 weeks, about €501,000 a month, up 12.8% on the 52 weeks before. It is the same shop as the market basket demo, with its five categories and their prices. Its weekly sales run for three years, from 2 October 2023 to 27 September 2026.
The demand. Each category grows by a share a year and has a season: a gift peak in mid-December, a drop in the last week of December when parcels stop, more sales in the cold months, most of all for tea and coffee, and a quiet January for the gear. On top sit a slow wander in the level (marketing, competitors, the weather), one-off weeks such as a newsletter that took off or a week out of stock, and ordinary weekly noise.
The forecast. Holt-Winters exponential smoothing: a level, a trend and an index for each of the 52 weeks of the year, multiplied together. Each week, the level moves toward the week’s sales by a weight, and the trend and the indices can move by weights of their own. The weights are picked from a grid of 550 on the first two years, by how well each set forecasts one week ahead. In every category of this shop, the level moves 5% of the way each week, and the trend and the season hold as the first two years set them.
The test. The last 52 weeks are held out: the weights never see them. Each held-out week is forecast as many weeks before it as you set, and set against last year’s amounts, the units sold in the same week a year earlier. At 13 weeks ahead, the forecast’s weekly error runs from 6.0% to 9.3% across the categories, and last year’s amounts’ from 7.6% to 18.2%. The forecast’s is lower in every category, however many weeks ahead. Last year’s amounts carry last year’s level and its one-off weeks into this year; the forecast averages two years of season and follows the level.
The money. Both ways of ordering are held to the same service level: each gets the smallest buffer on top of its numbers that left enough stock in the share of the 52 weeks you set. Then each week’s stock left over is counted at cost, 60% of the price, and each week’s sales missed at the price, added up over the 52 weeks. A higher service level leaves more stock over and misses less. Across the shop, at every setting the controls reach, ordering to the forecast leaves less stock over and never misses more in sales, because it misses by less.
The range and the stock to order. The 80% range around each week ahead comes from the same 52 weeks: how far the forecasts made that many weeks ahead missed, from the 6th to the 47th of the 52 misses, so 8 weeks in 10 sat inside it. The stock to order is the forecast times the buffer for your service level at that distance ahead; at 90% it is the top of the range.
What this shows, and what it does not
What it does not. No dated events: Black Friday, a promotion or a price change moves sales on a date that a 52-week season does not hold, so a forecast on your data takes them as inputs. Each week’s stock is counted on its own: what is left at the end of a week counts as left over, not as sold the week after, so for stock that keeps, the left-over figure is cash tied up, not a loss. No supplier lead times, minimum orders or pack sizes, and categories rather than products.
On your own data. The model is fitted to your order history, product by product, with your promotions calendar. Each week the forecast is set against what sold, and the misses size the next buffer. Anything you act on, such as the peak-season buy, carries the analytics director’s sign-off.
Start here
Want a forecast of your own sales?
Up to thirty minutes on your order history, then a fixed proposal.