AI stock forecasts usually go wrong because of the history they are fed, not the maths. The most common causes are sell-out days recorded as low demand, one-off orders left in the data, too little history to see a season, and forecasts that ignore supplier lead times. Fix the data and the ordering rules first, then judge the tool.
That order matters because every forecasting tool, from a spreadsheet function to Shopify's Sidekick to a dedicated inventory app, does the same basic thing: it looks for patterns in past sales and projects them forward. If the past sales are distorted, a cleverer tool just projects the distortion more confidently. Below are the eight mistakes I see most often, each with how it shows up in a real-looking small business, how to fix it, and how to check the fix worked.
1. Feeding the forecast what you sold, not what customers wanted
Your till records sales. It does not record the customer who walked in, saw an empty bucket and left. So every day you sold out, your history understates demand, and a forecast built on that history tells you to order roughly the same amount you ran out of last time.
Take an illustrative florist. Last Valentine's Day it sold 180 bunches of red roses and ran out at 2pm, four hours before closing. The forecasting tool sees 180, adds a little growth, and suggests 190 for this year. The florist sells out at 2.30pm instead of 2pm and loses the same afternoon trade again.
A rough estimate of the lost demand takes five minutes. In the four hours before selling out, the shop was selling about 25 bunches an hour at its peak. Assume the afternoon would have tailed off to around 15 an hour for the remaining four hours. That is roughly 60 lost bunches, so true demand was nearer 240 than 180.
- The fix: add a column to your sales history called
sold_out(yes/no) and, where you know it, the time you ran out. Before forecasting, replace sold-out days with an estimate of real demand, or at least exclude them so they do not drag the average down. - Where the data comes from: staff notes, a "we're out of" whiteboard photographed at closing, or your stock system's zero-stock dates if it records them.
- How to check: after the next peak, compare how many hours you were out of stock with last year. Fewer hours out, with no big pile of leftovers, means the adjustment worked.
This is the single most expensive mistake on the list, because it hides itself. The forecast looks accurate against your sales history precisely because the history was capped by your own stock.
2. Gaps, closed days and one-row-per-sale exports
Forecasting tools expect a tidy timeline: one figure per day or per week, with no gaps. Real exports rarely look like that. A shop closes on Sundays, shuts for a fortnight for a refit, or exports one row per transaction rather than one row per day. Each of these quietly changes the answer.
Excel's FORECAST.ETS function is a good illustration, because many owners and many AI assistants reach for it. According to Microsoft's documentation, it fills missing points with the average of the neighbouring points by default, or treats them as zeros if you set the data completion argument to 0. It also needs a constant step between dates, and when several rows share the same date it combines them using AVERAGE unless you choose another method such as SUM.
That last default catches people out. Picture an independent bookshop that exports every sale as its own row: 3 June has 41 rows, one for each book sold. Fed straight into FORECAST.ETS, the function averages those rows, so it forecasts something close to "one book per day" rather than 41. The chart looks plausible, the numbers are nonsense, and nobody notices until the reorder is tiny.
The refit is the opposite problem. If the two closed weeks go in as zeros, the forecast learns that early spring is a dead period and suggests ordering less next spring.
- The fix: summarise to one row per day or week with a SUM before forecasting. Mark days you were closed and leave them blank (so the tool fills them from neighbours) rather than typing zero.
- How to check: total the column you are forecasting from and compare it with your till's total for the same period. If they don't match to the unit, something was averaged, duplicated or dropped.
3. Expecting a seasonal pattern from one season of data
A forecast can only learn a yearly pattern if it has seen that pattern more than once. With 14 months of history, it has seen one December. It cannot tell whether December was a seasonal peak, the start of a growth trend, or a lucky month.
The same bookshop has 14 months of history: an average month of about 1,000 books, a December of 2,400, and a January of 700. Depending on the method, a tool might read the December jump as growth and forecast 1,300 books for February, or read the January dip as decline. Neither is right. February is probably a normal month.
A useful rule of thumb: for weekly patterns (busy Saturdays, quiet Mondays), a few months of daily data is enough. For yearly patterns (Christmas, Mother's Day, the wedding season, the winter tyre rush at a garage), you want at least two full years before you let a tool decide the size of the peak.
- The fix with less history: let the tool forecast the ordinary weeks, and plan the peaks by hand. Take last year's peak-month sales, adjust for any stockouts (mistake 1) and your general growth, and write that figure in.
- In Excel: FORECAST.ETS.SEASONALITY tells you what season length the function detected. If it reports a length that makes no sense for your business, such as 5 when you trade six days a week, don't trust the seasonal part of the forecast.
- How to check: ask the tool, or yourself, "what does this forecast assume December will be?" If the answer isn't close to last December adjusted for growth, find out why before ordering.
4. Treating a one-off spike as the new normal
Author events, school book orders, a corporate client's one-off bulk buy, a funeral that needed forty arrangements: these are real sales, but they are not repeatable demand. Leave them in and the forecast raises the baseline for weeks afterwards.
Say the bookshop hosted an author signing in October and sold 140 copies of one title in an evening, against a normal 3 a week. A simple weekly forecast for that title now expects 10 to 15 a week for the next couple of months, and the shop reorders 40 copies that sit on the shelf until spring.
A car repair garage has the same issue with parts. One fleet customer replaced tyres on eight vans in a single week, 32 tyres against a usual 6. If that week stays in the history unmarked, the next forecast of tyre demand is inflated by roughly a quarter for the following month, depending on the method.
- The fix: add an
eventcolumn and tag these rows (author event, school order, fleet job, wedding, funeral order). Forecast from the untagged rows, then add known events back in by hand when you know one is coming. - Keep the tagged rows: don't delete them. They tell you how big an event is when you plan the next one, which is useful in its own right.
- How to check: sort your history by the size of each week's sales. The top five weeks should all have an explanation, either a season or a tagged event. An unexplained spike is a question to answer before you forecast.
5. Forgetting the things you changed: promotions, prices and range
A forecast has no idea you ran a promotion, raised prices, moved a display or stopped stocking a competing product. It sees the effect and assumes it will continue.
An illustrative florist ran a "two bouquets for $30" offer across Mother's Day week last year and sold 310 bouquets against a usual 120 for that week. This year there is no offer, but the forecast, which has only seen the promoted week, suggests ordering for 330. If the offer drove even half of that uplift, the florist is left with a cold room full of stock that has three or four days of life in it.
The reverse happens with price rises. A garage that raised its labour rate in March may see fewer small jobs for a month or two, and a forecast will read that dip as a trend.
- The fix: keep a simple change log alongside your sales: date, what changed, which products. Two columns in the same spreadsheet are enough:
promo(yes/no) andnote. - When you forecast: either leave promoted weeks out, or tell the tool which weeks were promoted so it can treat them separately. If you are asking a chat assistant, include the change log in the prompt.
- How to check: compare the forecast for a week with no promotion against the same week last year. If the forecast is much higher and last year was promoted, you have found this mistake.
6. Forecasting slow sellers one item at a time
Most forecasting methods assume something sells most weeks. Many small-business lines don't. A spare part, a large-format art book, a specific urn in a funeral director's catalogue: these sell once every few weeks, in ones and twos. Forecasting each of them week by week produces answers that are technically correct and practically useless.
Here is an illustrative garage's monthly sales of brake pads for one less common model, over a year:
Jan 0 | Feb 0 | Mar 1 | Apr 0 | May 0 | Jun 2
Jul 0 | Aug 0 | Sep 0 | Oct 1 | Nov 0 | Dec 0
An average says 0.33 sets a month. A trend-based forecast might say 0.1 because the last two months were zero, or suggest a rising line because of June. None of these tells the garage what it actually needs to know: should it keep a set on the shelf at all?
That is a stocking decision, not a forecasting one, and it depends on how fast the supplier can deliver. If the motor factor delivers the same afternoon, keep none and order per job. If it takes three days and the customer's car is off the road meanwhile, keep one set.
- The fix: split your range. Forecast items that sell most weeks. For items that sell less often than once a month, use a simple minimum and maximum (keep 1, reorder when it goes, never hold more than 2) and review them twice a year. For planning spend, forecast the whole category (all brake pads) rather than each item.
- Finding them: sort items by the number of weeks with at least one sale. Anything selling in fewer than one week in four goes on the min/max list. Our tutorial on finding dead stock and slow movers with AI walks through that sort.
- How to check: count how many times in the next quarter a customer waited for a slow-moving part. If it's rare and you're holding less cash in stock, the split is working.
7. Getting the forecast right and the order wrong
A forecast tells you how much you will sell. It doesn't tell you when to order, how much to order, or how much buffer to hold. Those depend on lead time (how long the supplier takes to deliver), pack sizes, minimum order quantities and shelf life, and plenty of businesses get an accurate forecast and still run out.
Take an illustrative home-care provider that uses about 40 boxes of disposable gloves a week across its carers. Its forecast is spot on. But the supplier takes two weeks to deliver, and the office orders every Friday for "next week". With two weeks of lead time and only one week's order in the pipeline, stock falls short every time demand ticks up. For a care business, that is not an inconvenience; carers cannot go out without gloves.
The quick sum that fixes it is a reorder point:
Reorder point = (weekly use x lead time in weeks) + safety stock
= (40 x 2) + 20
= 100 boxes
Here the safety stock of 20 boxes is half a week's use, a sensible starting buffer for an essential item with a reliable supplier. When the count drops to 100 boxes, order. Our tutorial on using AI to set reorder points covers how to size safety stock properly for items that matter more or less.
Pack sizes and shelf life bite in other ways. A funeral director ordering urns from a supplier with a six-week lead time needs to order well ahead of use and can afford a small buffer because urns keep. A florist ordering from a wholesaler that sells stems in packs of 25 cannot buy the forecast's 238 stems; it buys 225 or 250, and with a three-to-five-day vase life, rounding up is a real cost.
- The fix: keep a supplier sheet with lead time, pack size, minimum order and shelf life for each main line, and make the reorder calculation use it. Most inventory apps have fields for these; fill them in.
- How to check: for each stockout in the last quarter, ask "was the forecast wrong, or was the order late?" If it's mostly the second, no forecasting tool will fix it.
8. Asking a chat assistant to guess instead of calculate
More owners now paste a table of sales into ChatGPT, Claude or Gemini and ask what they'll sell next month. That can work well, but only if the assistant runs a calculation. Asked casually, a chat assistant can produce a confident, specific number that comes from pattern-matching rather than arithmetic, with no method shown and no range.
Here is the kind of prompt that causes trouble:
Here are my weekly sales for the last year. How many
bunches of roses should I order for Valentine's week?
And an illustrative reply of the sort you might get back:
Based on your sales trends, I recommend ordering around
215 bunches for Valentine's week. This accounts for
seasonal demand and your recent growth of about 8%.
It sounds reasonable. But where did 8% come from? Did it notice the sell-out at 2pm? Did it treat the promoted Mother's Day week as normal? You can't tell, and neither can the assistant's next answer if you ask again, which may well give a different figure.
A better prompt makes it show its working, use your notes, and give a range:
I've attached a CSV of weekly sales for the last 2 years
(columns: week_start, product, units, sold_out, promo, note).
1. Run the analysis as code on the file. Don't estimate
figures in your head.
2. Exclude weeks where promo = yes, and treat weeks where
sold_out = yes as a minimum, not the true demand.
3. Forecast Valentine's week for "red rose bunch" using the
same week in both previous years, adjusted for overall
growth between the years.
4. Give a low, likely and high figure, and show the
calculation for each.
5. List every assumption you made, and anything in the data
that looks odd.
An illustrative reply to that version:
Valentine's week, red rose bunch:
- Year 1: 164 sold (sold out) | Year 2: 180 sold (sold out)
- Both years sold out, so true demand was higher than sales.
- Non-promoted weeks grew 9.1% year on year.
Low 196 (Year 2 x growth, no stockout adjustment)
Likely 235 (adds your estimate of 60 lost sales in Year 2)
High 260 (assumes demand grew as fast as the peak did)
Assumptions: the lost-sales estimate comes from your note,
not the data. Week of 14 Oct Year 2 looks like an outlier
(3x normal) with no note. Please check it.
What you would still check: the 60 lost sales is your own estimate, so the "likely" figure is only as good as that note. And the flagged October week needs an answer before you trust anything else in the file. The point is that every number now has a source you can question.
Testing a forecast on weeks you already know
The quickest way to find out whether any of the eight mistakes are hurting you is a holdout test: hide the most recent weeks, forecast them from the older data, and compare the forecast with what actually happened. You need two measures.
- Average error (MAPE): the average of each week's error as a percentage of actual sales, ignoring whether it was over or under. It tells you how far off the forecast typically is.
- Bias: the total of the errors with their signs kept, as a percentage of total actual sales. It tells you whether the forecast leans one way. A forecast that is always a bit high is fixable; you can simply trim it.
Here's an illustrative four-week test for the bookshop's new-releases table:
| Week | Forecast | Actual | Error | Error as % of actual |
|---|---|---|---|---|
| 1 | 250 | 230 | +20 | 8.7% |
| 2 | 260 | 270 | -10 | 3.7% |
| 3 | 240 | 210 | +30 | 14.3% |
| 4 | 300 | 260 | +40 | 15.4% |
| Total | 1,050 | 970 | +80 | MAPE 10.5% |
MAPE is about 10.5%, which sounds acceptable. But the bias is +80 on 970 actual, about 8% too high, and three of the four weeks were over. That pattern points at something systematic: perhaps an author event left in the history (mistake 4), or a promoted week (mistake 5). Fix that, rerun the test, and both figures should fall.
What counts as good enough depends on the stock. For books that can sit on a shelf for months, an 8% over-forecast costs a little cash tied up. For a florist or anything perishable, 8% over is 8% in the bin. Judge the error against margin and shelf life, not against an abstract target.
A pre-order check to run before trusting any forecast
Run through this before placing an order that a forecast suggested. It takes ten minutes once the columns exist.
The history
- Totals reconcile. The history's total matches your till or accounts for the same period. Verify: one SUM, compared with one report.
- Sold-out periods are marked. Verify: filter
sold_out= yes; peak weeks should appear if you ran out. - One-off events are tagged. Verify: the top five weeks by sales each have a season or a note.
- Promotions and price changes are logged. Verify: the change log has an entry for every offer you remember running.
- Closed days are blank, not zero. Verify: refits and holidays show as gaps.
The forecast
- There's enough history for any season it predicts. Two years for yearly peaks. Verify: count the Decembers, Valentine's weeks or wedding seasons in the data.
- It comes as a range. Verify: you have a low and a high, not just one number.
- It passed a holdout test. Verify: MAPE and bias from the last test, written next to the forecast.
- Slow sellers are excluded. Verify: items selling in fewer than one week in four are on min/max instead.
The order
- Lead time is covered. Verify: the order arrives before stock falls below safety stock.
- Pack sizes and minimums are applied. Verify: the order quantity is a whole number of packs.
- Shelf life is respected. Verify: you won't hold more than you can sell before it spoils or dates.
Five realistic ways these mistakes show up
These are illustrations of how the errors tend to surface in practice, so you can spot them in your own figures.
- "The app says order less, but we ran out last time." A classic sign of mistake 1. An illustrative florist sees its suggested order for Christmas wreaths fall from 90 to 80, because last year's 85 sales were capped by selling out on 20 December. Check the sold-out dates before accepting a lower number for a peak.
- "The forecast went mad after one big week." Mistake 4. A bookshop's forecast for a local-history title jumps from 2 to 12 a week the week after a talk at the library. Tag the event and the forecast drops back.
- "It's accurate on paper but we keep running out." Mistake 7. A home-care provider's forecast for aprons is within 5% every month, yet the office runs short twice a quarter because the supplier's lead time went from one week to three and nobody updated the reorder point.
- "The shelf is full of parts nobody wants." Mistake 6. An illustrative garage auto-reorders every part it sold last quarter, including 14 slow sellers. Moving them to min/max frees shelf space and cash, and because the motor factor delivers same day, almost no customer notices.
- "The chatbot gave me a different number today." Mistake 8. The owner asks the same forecasting question twice and gets 215 and then 228. Asking it to run code on the file and show the method makes the answer repeatable and checkable.
Where to go once the basics are fixed
Once the history is clean, forecasting tools earn their keep. A spreadsheet with FORECAST.ETS is fine for a handful of lines. An inventory app makes sense once you have hundreds of lines or several sales channels, and our tutorial on how small shops forecast stock and reorder with AI covers that step. If you ran Shopify's Stocky app, note that it stopped working on 31 August 2026; purchase orders now live in Shopify admin and Shopify points merchants to Sidekick for reorder suggestions. Whichever tool you use, the same eight mistakes apply, so keep the columns and the holdout test.
For a clear explanation of the methods behind these tools, read how AI inventory forecasting works. For turning sales history into a quarterly revenue view rather than item-level stock, see forecasting next quarter's sales from your history. And if your stock counts themselves are unreliable, fix those first with a faster count; running a stocktake with a phone scanner is a good place to begin, because every forecast in this tutorial assumes you know what's on the shelf today.
Questions owners ask when a stock forecast lets them down
How much sales history does an AI stock forecast need?
For weekly patterns, a few months of daily sales is enough. For yearly seasons such as Christmas or wedding season, you need at least two full years, because with one year the tool cannot tell a seasonal peak from growth. With less than that, forecast the quiet months with the tool and plan the peaks by hand from last year's figures.
Is a forecast accurate enough if it is within 10 per cent?
It depends on the cost of each error. For long-life stock that you can sell next month, being 10 per cent over is cheap. For flowers, fresh food or anything with a short shelf life, 10 per cent over is wasted stock. Judge accuracy against your margin and shelf life, and always check the bias as well as the average error.
Should I switch inventory apps if my forecasts are poor?
Not until you have fixed the history you feed it. Most poor forecasts come from stockouts recorded as low sales, one-off orders left in the data and missing lead times, and a new app will make the same mistakes with the same data. Clean one category, run a holdout test, and only then compare tools on the same cleaned data.
Can I use ChatGPT or Claude to forecast my stock?
Yes, as long as it calculates rather than guesses. Ask it to run the analysis as code on your uploaded file, show the method, give a range rather than one number and list its assumptions. Then test it on weeks you already know the answer to before you order from it.
Further reads
- How Bakeries Can Use AI to Predict Demand and Cut Unsold Stock — A short-shelf-life version of the same problem, with waste figures.
- Best AI Inventory Tools for Small Retailers Compared — Compare inventory tools once your data is clean enough to judge them.
- Can AI Read Delivery Notes and Update Stock Automatically? — Stop stock counts drifting because deliveries were never booked in.
- How to Sync Stock Across Shopify, Amazon and eBay Automatically — Multi-channel sellers need one true stock figure before forecasting.
- How to Build a 13-Week Cash Flow Forecast With AI Help — Tie your stock orders to the cash you will actually have.
- How Accurate Is ChatGPT? What Owners Should Expect by Task — What to expect from chat assistants on numbers work.
- Generative AI vs Traditional AI: Which Does Each Task Need? — How generative and traditional AI differ in what they need, cost and get wrong, four questions that sort any task, and a print shop's six tasks sorted.
- How to Forecast Covers and Cut Food Waste With AI — A step-by-step covers forecast a small restaurant can build in a spreadsheet with AI help, turned into prep quantities and checked against a daily waste log.
- How Pubs and Bars Can Use AI for Events, Rotas and Stock — Stock variance checks, till-based rotas and event planning for pubs and bars, with a break-even rule for bar inventory software and copyable prompts.
- How Pet Shops Use AI for Stock, Subscriptions and Advice — Reorder rules for dated and seasonal lines, bag run-out maths for subscriptions, and an advice assistant that knows when to say 'ask your vet'.
- How Clothing Boutiques Use AI to Spot Trends Before Buying Stock — Combine free trend tools with AI analysis of your own sell-through, then buy trend pieces at test depth. Includes prompts, sample outputs and a buy plan.
- Does AI Stock Ordering Pay Off for an Independent Pharmacy? — The payback sum for AI stock ordering in a single-site pharmacy, the traps that inflate vendor claims, and a 30-day shadow test.
- Can AI Help a Charity Forecast Demand for Its Services? — Use Excel's Forecast Sheet or a chat assistant to turn two years of service counts into a winter range, then add what the model can't see.
- AI Tools and AI Development: The Complete 2026 Guide — the AI hub, including every tutorial in the AI-for-business series.
Sources: Microsoft Support documentation for the FORECAST.ETS and FORECAST.ETS.SEASONALITY functions in Excel (arguments for seasonality, data completion and aggregation); Shopify help centre notice on the Stocky app retirement. All business examples are illustrative.