Weekly wholesale demand forecast for 500 store-product pairs (flagged for review)

Case study on a public dataset from Iowa, United States · Updated

We forecast weekly bottles sold for each of 497 store-product pairs 8 weeks ahead from a public dataset. In testing on past data, the selected method (the AI forecasting model) was off by 64.6% of actual volume on average, 25% less error than repeating last week. The result was flagged for review, and we explain why.

The request

"Forecast weekly bottle sales for each of our top 500 store-and-product combinations for the next 8 weeks so we can set orders and allocate stock to stores."

The request, written the way a business owner would ask it.

The forecast

We expect about 377,021 bottles sold over the next 8 weeks across all 497 series, about 47,128 per week on average.

Line chart of weekly bottles sold: the actual history, the forecast for the next 8 weeks with its 80% range.
The forecast for the next 8 weeks, with the range it expects 8 times out of 10.
Small line charts of the largest series in the data with their forecasts and 80% ranges.
The largest series, each with its own forecast.

How accurate was it?

We hid the most recent stretch of history, forecast it using only what came before, and compared with what really happened. We did that 3 times, each time 8 weeks ahead, for every method below. The typical error is the share of actual volume the forecast missed by, added up across all 497 store-product pairs.

The selected method, an AI forecasting model that was not trained on this data, was off by 64.6% on average, against 86.5% for simply repeating last week.

Typical error in testing, lower is better
MethodKindTypical errorActual inside 80% range
AI forecasting model SelectedAI64.6%84%
Exponential smoothingClassic73.7%83%
Croston methodClassic77.9%n/a
Theta methodClassic76.4%81%
Repeat the last valueSimple rule86.5%95%
Repeat last seasonSimple rule86.5%95%
Line chart comparing past forecasts with actual bottles sold over 3 test runs of 8 weeks each, made using only the data available at the time.
Back-testing: 3 times we hid the next 8 weeks, forecast them, and compared with what happened.
Bar chart of the typical error of each forecasting method in testing. The selected method had 64.6% error; repeating last week had 86.5%.
Typical error of each method in testing, as a share of actual volume. Lower is better.

Why this result was flagged for review

We flag a result for review instead of sending it when the data or the accuracy suggests a person should look first. With a customer, this is where we would ask questions.

  • 137 rows have a negative value (for example returns or refunds). They were netted against the other rows in the same period.
  • Skipped 3 series with no recent data: 010752 / SVEDKA 80PRF, 2633 / MONTEZUMA GOLD, 4312 / CROWN ROYAL.
  • 167 weeks with no rows were filled by interpolation, because bottles sold is otherwise never close to zero (more likely missing data than a closed business). If you were closed on those weeks, tell us and we will treat them as zero.
  • 6 weeks had a negative total after returns; set to zero.
  • Less than two full seasonal cycles of history (31 weeks); seasonal patterns may be missed.
  • The level of the data changed recently (010127 / FIREBALL CINNAMON WHISKEY: dropped to near zero after 2026-08-16; 010206 / FIREBALL CINNAMON WHISKEY: recent level is 0.5x the level before 2026-08-16; 010221 / FIREBALL CINNAMON WHISKEY: recent level is 0.5x the level before 2026-08-16; and 49 more series). Older history may be less relevant.
  • The history is short, so the forecast was tested on less past data than we would like. Treat the accuracy figures as rough.

Technical details

Data
Iowa Liquor Sales (Iowa Data Hub, Dept. of Revenue, Alcohol Operations Bureau). 497 store-product pairs, weekly, from 2026-01-04 to 2026-09-27.
How we prepared the data
Uses the 2026 year-to-date file (about 400 MB zip, January to September 2026) instead of all years. The engine keeps the 500 store-and-product pairs with the most bottles sold, as the customer asked. With under a year of weekly history there is no yearly seasonality to learn, so the seasonal period is 1 (seasonal naive = last week).
Testing
3 rolling tests, each 8 weeks ahead. Selection metric: WAPE (weighted absolute percentage error, the "typical error" above). Also reported: MASE 0.80 for the selected method.
Methods
Chronos-2 (AI foundation model), Exponential smoothing (ETS), Croston (intermittent demand), Theta, Naive (last value), Seasonal naive.
Reproduce
The case folder, spec and outputs are in the 4castPlannr repository under cases/iowa-liquor-sales/.

Data source and license

Iowa Liquor Sales, 2026. Iowa Department of Revenue, Alcohol Operations Bureau, via Iowa Data Hub (data.iowa.gov). Licensed CC BY 4.0. Modified (aggregated) by SolveAhead.

License: CC BY 4.0. Source: original data. The forecasts and charts on this page are derived from that data and carry the same attribution.

Have a decision like this?

This case is an example of inventory reorder for wholesale distributors. Send us your own export and question, and we will run the same tests on your data.

Related case studies

  • Fresh food reorder plan

    Public fresh-retail data: 7-day demand forecasts for the 100 busiest store-product pairs and a reorder plan in whole cases, replayed on the following week.

    China · 13% error · 13% better than repeating last season

  • Online store revenue

    A public UK online retailer's order lines turned into a 30-day daily revenue forecast for the Christmas peak, checked against what actually happened.

    United Kingdom · 31.4% error · 20% better than repeating last season