Ask most store owners how much stock they have, and they'll give you one number: what's sitting on the shelf. That number is almost never the number that should decide whether your website lets someone buy it.
We build the stock reporting dashboards that sit on top of inventory systems like Cin7, and the pattern is the same everywhere: businesses selling more than they actually have available, not because they're careless, but because "in stock" was never the right question.
On hand, committed, and available are three different numbers
On hand is what's physically in the warehouse right now. Committed is the slice of that already promised to someone — a wholesale order, a pending pick, a reserved allocation. Available to sell is on hand minus committed, and it's almost always smaller than the number your website is checking.
A store with 200 units on hand and a 60-unit wholesale order sitting in the queue doesn't have 200 to sell online. It has 140. If the website only knows about "on hand," it'll happily sell all 200 — and now 60 customers are owed stock that was already spoken for before they clicked buy.
Stock on the water should already be selling
The other half of the problem runs the other way: stock that isn't on hand yet, but is real. A container that left the supplier three weeks ago with a confirmed arrival date isn't nothing — it's stock you can sell today with a clear "ships from [date]" promise, and plenty of customers will happily wait a fortnight for the right size rather than settle for what's on the shelf now.
Most systems don't make this easy to act on, so most businesses don't. Either they undersell — sitting on a known incoming shipment as if it doesn't exist, turning away orders they could have taken — or they oversell, because someone eyeballed the incoming date and quietly switched a product back to "in stock" without the system actually tracking it.
The overselling spiral
Oversell once and it's an apology email. Oversell as a pattern and it compounds: refunds and store credit eat margin, marketplace channels (Amazon, eBay, Trade Me) penalise sellers for cancelled orders with reduced visibility, and customers who get a "sorry, that's actually not available" email don't come back to check twice.
The frustrating part is that the stock was never really available in the first place — the business just didn't have a system that knew that before the sale happened instead of after.
Multi-channel makes it worse, not better
One warehouse feeding a Shopify store, a couple of marketplaces and a wholesale book sounds efficient, and it is — right up until two channels both think they own the last unit. Without a single, live available-to-sell number that every channel checks against, you're not managing one inventory, you're running an honesty system between channels that don't know about each other. It works fine at low volume. It fails right when growth makes it matter most.
What good actually looks like
The fix isn't more stock — it's one number, calculated properly, that every sales channel checks before confirming an order: on hand, minus every committed order, plus incoming stock that's confirmed and dated, refreshed continuously rather than recalculated by someone in a spreadsheet once a week. Platforms like Cin7 give you the raw inventory data to build this on; the actual "here's what you can promise right now" view is usually the part that needs building, tuned to how a specific business's orders, channels and lead times actually work.
How to tell if you have this problem
If "in stock" on your website means "on hand" and nothing else, if incoming shipments are tracked in a spreadsheet nobody else sees, or if you've ever manually toggled a product back to available because someone was "pretty sure" more was coming — you're running on the same number that causes overselling. It's usually not a new inventory system that fixes it. It's a properly built view on top of the one you've already got.
If that sounds familiar, tell us how your stock actually moves and we'll tell you honestly what a real available-to-sell number would take to build.