Why You're Out of Stock and Overstocked at the Same Time
The warehouse is full. You are paying for overflow pallet space down the road. And this morning customer service is ringing your biggest account to explain why three lines on their order are short.
If you run a food or beverage business, you have probably lived some version of this week. Finance wants to know why inventory is up. Sales wants to know why service is down. Both are right, and that feels like it should be impossible.
It is not. It is one of the most common patterns in mid-sized FMCG businesses, and it has a specific cause. You do not have too much stock or too little stock. You have the wrong stock.
It is a mix problem, not a volume problem
Most businesses measure inventory as one number: total dollars, total pallets, or total weeks of cover. That number can look perfectly healthy while the detail underneath it is not.
To show what I mean, I will use Nerd Foods, the fictional FMCG manufacturer behind the free Nerd Foods dataset. It makes ten products across snacks, cereal, sauces, canned food, juice and protein bars, and it aims to hold a bit over two weeks of stock on each.
At the end of August 2026, Nerd Foods is holding 16,793 cartons and selling about 8,300 a week. That is 2.0 weeks of cover. Right on target. Nothing to see.
Here is the same stock, product by product, measured against the last 13 weeks of actual sales:
| Product | Stock on hand (cartons) | Average weekly sales | Weeks of cover |
|---|---|---|---|
| Max's Protein Bar Choc Peanut 60g | 1,115 | 1,490 | 0.7 |
| Charlie's Chips Sea Salt 175g | 927 | 566 | 1.6 |
| Billy's Baked Beans 420g | 2,003 | 999 | 2.0 |
| Charlie's Chips Sea Salt 50g | 3,349 | 1,617 | 2.1 |
| Frankie's Tomato Pasta Sauce 500g | 1,883 | 902 | 2.1 |
| Frankie's Spicy Tomato Pasta Sauce 500g | 903 | 414 | 2.2 |
| Ruby's Apple Juice 1L | 1,256 | 577 | 2.2 |
| Molly's Honey Oat Granola 500g | 983 | 423 | 2.3 |
| Charlie's Chips Chicken 50g | 2,291 | 858 | 2.7 |
| Molly's Choc Crunch Cereal 375g | 2,083 | 456 | 4.6 |
| Total | 16,793 | 8,301 | 2.0 |
The middle of the table is fine. The two ends are not.
- Choc Crunch Cereal has 4.6 weeks of stock, more than double the target. It is about 5% of what Nerd Foods sells and 15% of the money sitting in the warehouse, the biggest stock holding of any product. Roughly 1,080 of those cartons, about $15,000 at standard cost, are over and above what the target calls for.
- The protein bar has less than a week. It launched in March, sales roughly doubled in late July, and at the current rate of sale there is a little over half a week on the floor. Six weeks ago it had almost two.
Nerd Foods has not shorted an order yet. But its fastest growing product is days from running out while its slowest cereal takes up the most room, and the number on the monthly report says everything is on target.
That is what a mix problem looks like. The surplus on one line and the gap on another cancel out in the total, so the headline hides both.
Once you see it as a mix problem, the next question is how the mix got that way. In my experience it is almost always some combination of five things.
1. The forecast is right in total and wrong by SKU
Here is Nerd Foods' forecast against actual demand for the six weeks to 24 August 2026, in cartons:
| Product | Actual demand | Forecast | Forecast as % of actual |
|---|---|---|---|
| Choc Crunch Cereal | 2,512 | 4,813 | 192% |
| Protein Bar | 11,883 | 6,000 | 50% |
| The other eight products combined | 38,342 | 37,825 | 99% |
| Total | 52,737 | 48,638 | 92% |
Eight of the ten products are forecast almost perfectly. The other two are badly wrong, in opposite directions, and in the total they partly cancel. A forecast that is 8% light reads as "a bit under, keep an eye on it". It does not read as "one product is forecast at double and another at half".
There is a second trap hiding in here. Nerd Foods' own inventory report calculates weeks of cover by dividing stock by the forecast. On that basis Choc Crunch shows 2.7 weeks and the protein bar shows 1.1. Both look close enough to normal. Divide by what actually sold and you get 4.6 and 0.7.
If your cover is calculated on forecast, a bad forecast hides its own damage.
Plenty of businesses forecast at the category or customer level, then split it down to SKUs using last year's ratios. Production does not make "the cereal category". It makes a specific product in a specific pack size. If the forecast is only accurate at a level above the one you actually make and buy at, it is not doing its job.
2. One safety stock rule for every product
"We hold two weeks on everything" is easy to explain and easy to manage. It is also wrong for nearly every item it is applied to.
Nerd Foods has Billy's Baked Beans, which sells about 1,000 cartons a week, every week, with a two-year shelf life. It also has the 175g chips, which sell around 500 cartons in a normal week and 1,500 to 2,000 in a promotion week. Two weeks of cover is more than the beans need and nowhere near enough for the chips going into a promotion.
A flat rule guarantees you over-hold the predictable products and under-hold the unpredictable ones.
3. Big builds are deciding what sits on the floor
Minimum runs, minimum order quantities, changeovers and promotional builds are real constraints. The trouble starts when they quietly become the plan.
Take those 175g chips. For the June 2026 promotion, Nerd Foods made 3,816 cartons in a single week. The promotion sold 1,519. The following week there were more than five weeks of normal sales sitting in the warehouse, the line made none for five weeks straight, and 43 cartons were written off.
That is not a one-off. Over two years, every carton Nerd Foods wrote off was this one product, in the weeks straight after a promotion. It adds up to 272 cartons, about $4,500.
The same thing happens with long minimum runs. If the minimum run of a slow line is twelve weeks of sales, every run puts twelve weeks on the floor, whatever demand is doing. And the line time that run consumed is line time your fast movers did not get. One decision creates the overstock and the shortage together.
In food, shelf life makes this worse. You cannot hold your way out of the problem, because the excess turns into markdowns and write-offs before it sells.
4. Nobody owns the plan between sales and production
In a lot of mid-sized businesses there is no one whose job is to hold a plan steady. Sales chases the order in front of them. Production chases efficiency. The schedule gets renegotiated every morning based on who is shouting loudest.
Every expedite fixes today's short and causes next week's. The line you bumped to make room becomes the next shortage, and the product you rushed through often arrives in a bigger quantity than was needed. Firefighting feels like responsiveness. In practice it is a machine for producing both problems at once.
5. The settings were never reviewed
Lead times, reorder points, minimum order quantities and safety stock levels were entered in the system, or in a spreadsheet, at some point in the past. Since then suppliers have changed, customers have come and gone, and the range has grown.
The Choc Crunch forecast is a good example. Nobody decided to over-forecast it by 90%. Somebody set a number of about 800 cartons a week, demand settled at a bit over half that, and nobody went back. Even its promotions land at about 70% of what was forecast, every time.
The protein bar is the same problem in the other direction. Its forecast is still the launch number of 1,000 a week, and its stock target is still built on that.
So the business keeps faithfully replenishing products that have slowed down, and keeps under-ordering the ones that have taken off. Add a tail of SKUs that should have been deleted two range reviews ago and you have a warehouse full of stock nobody wants.
A test you can run this afternoon
You do not need new software to find out whether this is your problem. You need two exports and about an hour. It is exactly what I did to build the first table above.
- Pull stock on hand by SKU, in units.
- Pull the last 13 weeks of actual sales by SKU, in the same units. Sales, not forecast.
- Divide sales by 13 to get average weekly sales.
- Divide stock on hand by average weekly sales to get weeks of cover.
- Sort by weeks of cover. Count how many SKUs sit at less than half your target and how many sit at more than double.
- Put a dollar value on the stock above target in the second group.
If both ends are heavy, you have a mix problem. The dollar figure in step six is roughly the cash you have tied up in stock that is not protecting service at all.
It is a blunt test. It ignores seasonality and promotions, so sense-check anything surprising. But it is usually enough to change the conversation from "we need more stock" or "we need less stock" to "we need different stock".
If you want to practise on safe data first, the Nerd Foods dataset has two years of weekly demand, forecasts and inventory history for all ten products. It is free, and every number in this article comes from it.
What fixing it looks like
None of this needs a big system project. The fixes are mostly discipline.
- Segment the range. Split products by volume and by how predictable they are. Fast and steady lines get lean cover and frequent runs. Lumpy lines get more buffer or move to make to order.
- Set cover targets by segment. Replace the flat rule with three or four targets that reflect how each group actually behaves.
- Plan at the level you make. Forecast and review by SKU, at least for the lines that drive most of your volume.
- Measure cover on actual sales. Forecast-based cover is fine for planning ahead. It is no good for finding out where you stand today.
- Hold a weekly plan with a frozen window. Agree what is locked for the next few days and what it costs to break it. Expedites become a decision, not a habit.
- Review the settings every quarter. Lead times, minimums and safety stock, starting with the SKUs in the two tails.
- Clean up the range. Every SKU you delete is one less thing competing for line time and floor space.
Done properly, this is one of the few changes that improves service and releases cash together. Shorts come down because the right products are covered. Inventory comes down because the wrong ones are not.
If the test turns up something ugly
Most businesses that run the weeks of cover test are surprised by what they find. That is normal, and it is fixable.
If you would like a second set of eyes on it, this is exactly what I look at in a Planning Health Check: where the stock is, why it is there, and what to change first. Get in touch and I am happy to talk through what your numbers are telling you.
Member discussion