On Hand vs Available vs Committed: The Stock Numbers Online Sellers Confuse
On hand, committed, available, and on order are four different stock numbers, and only one is safe to sell from. Here is what each means and how to stop overselling.
By Robbie Thomas
Every stockout apology email you have sent started with a number that was technically correct.
The count was right. The shelf really did have twelve units when someone checked. And you still sold something you could not ship, refunded a customer who was already irritated, and took the hit on a marketplace metric that takes months to repair.
Overselling gets blamed on sloppy counting. It usually is not that. Most small stores that oversell have accurate inventory and get caught anyway, because there is more than one stock number and they are publishing the wrong one.
On hand, committed, available, and on order are four different numbers. Only one of them is safe to sell from.
On hand: what you physically own#
On hand is the total number of units in your possession right now, counted across every location you hold stock in. It is the number that matches reality when someone walks into the stockroom with a clipboard, and it is the number most owners mean when they say "we have twelve."
It is also the number most likely to be sitting on your product page, which is the problem.
On hand is an ownership figure, not a sales figure. It counts units boxed and labelled for an order going out this afternoon. It counts the six you set aside for a wholesale customer who confirmed last week. It counts stock in a warehouse you are not shipping this order from. Every one of those units is genuinely yours, and none of them is genuinely for sale. Treating on hand as your sellable number is the single most common setup error behind overselling, and it survives every stock count you do, because the count keeps agreeing with you.
Committed: stock that already belongs to someone else#
Committed inventory is stock still sitting on your shelf that has already been promised to a specific order. It has not shipped, so it still counts toward on hand, but it is no longer yours to sell.
One naming note before we go further, because it trips people up when they move between tools. Shopify calls this committed. Most inventory and ERP systems, including BizPro-Vision, call it reserved. Same number, same job, different label. If you have ever wondered why your storefront and your back office seem to describe stock differently, this is often why.
It comes from more places than most people expect:
- Unfulfilled orders. Paid, confirmed, not yet picked or shipped.
- Draft orders. Quotes and manual orders you built for a customer who has not paid yet.
- Manual holds. Stock set aside for a wholesale deal, a repeat buyer, or a rep's pipeline.
- Backorders. Units already sold against a supplier delivery that has not landed.
- Picked but not dispatched. Stock allocated to a delivery note that is packed and waiting on the courier.
Committed is the bridge between a sale happening and stock physically leaving the building, and it is where overselling hides. If your system does not commit units the moment an order is placed, those units stay visible as sellable to the next person who lands on the page. You have not miscounted anything. You have sold the same unit twice.
Available: the only number safe to sell from#
Available is what is left once you take out everything already spoken for. That is the whole formula:
Available = On hand − Committed
Run it on a real product. You have twelve units of one SKU on hand. Three are attached to orders that have not shipped yet. Your available stock is nine.
Nine is the number that belongs on your storefront. Twelve is the number that generates an apology email.
Only one of these is safe to sell from.
One product, twelve units on the shelf.
Twelve units are on hand. Three of them are committed to unfulfilled orders and are still on the shelf. The remaining nine are available to sell. A further twenty-four units are on order from a supplier and are not on the shelf at all.
On hand 12 − committed 3 = available 9
Here is the part that reframes everything, and it is worth sitting with. When you make a sale, your on hand count does not change. Nothing has left the building yet. What actually happens is that units move from available to committed: available drops by three, committed rises by three, and the two still add back to twelve.
That is why on hand is the least useful of the four numbers day to day. It only moves when stock physically arrives or physically ships. Available moves every time you sell, which is exactly why it is the number worth watching, and the number a well-built system treats as the real one with on hand reconstructed from it.
On order: stock that is not yours yet#
The fourth number is the one people forget until it hurts. On order is stock you have purchased but not received, sitting on a supplier's purchase order with an expected arrival date.
It is not on your shelf and it is not sellable. What it does is tell you whether a stockout is temporary or real. If you are out of stock with forty units landing Thursday, you can take backorders with an honest ship date instead of turning a customer away or quietly losing the sale. Knowing what is inbound is also what stops panic reordering on a product that already has stock in transit.
The trap is letting on order drift into what you promise. Supplier dates slip, containers sit at port, and units are not truly yours until they arrive and are received in. Treat it as planning information, never as sellable stock.
Why the numbers drift apart#
A number that was correct this morning can be wrong by lunchtime. Five things cause the drift, and none of them is a counting problem.
- Batch syncing. This is the big one. If your channels reconcile stock every fifteen minutes, every hour, or overnight, then every order placed in the gap is processed against a count that is already out of date. The faster you sell, the more orders land inside each gap, so this gets worse exactly when a product starts doing well.
- Multiple channels, multiple counts. Each platform holds its own number and none of them knows about the others. Twelve units listed on two storefronts reads as twelve on each, so twenty-four look sellable when you own twelve. Shopify handles this cleanly inside its own ecosystem but does not natively sync with Amazon, Etsy, Walmart, or even a second Shopify store, so anything outside that boundary is on you to reconcile.
- Drafts and holds that never expire. A quote you built in March is still holding six units in July. Committed stock with no release date slowly starves your available number until you are showing zero on a product sitting in a full box.
- Returns that come back late. A refunded unit is back on your shelf physically but often not back in the system for days, which quietly understates what you could be selling.
- Manual adjustments nobody logs. Damaged stock written off in someone's head, samples that walked, a unit pulled for a photoshoot. Each one is small and each one moves on hand without moving anything else.
The count was never wrong. It was late.
One product, fifteen minutes, stock syncing on a schedule.
| Time | What happened | Store shows | Really left |
|---|---|---|---|
| 9:00 | Stock syncChannels agree | 40 | 40 |
| 9:04 | Order #10419 units | 40 | 31 |
| 9:07 | Order #104214 units | 40 | 17 |
| 9:11 | Order #104311 units | 40 | 6 |
| 9:13 | Order #104418 units, only 6 left to ship | 40 | −12 |
| 9:15 | Stock syncToo late | −12 | −12 |
If you recognize most of this list, the underlying issue is usually not any single one of them. It is that stock, orders, and books live in separate tools that reconcile on a schedule instead of sharing one number, which is the same root cause behind most of the symptoms that tell you a business has outgrown spreadsheets.
How to close the gap#
Five changes, roughly in order of how much they buy you.
- Publish available, never on hand. Check what your storefront is actually pulling. This is a configuration question with a five-minute answer, and for a single-channel store it fixes most of the problem on its own. A properly built integration pushes the available figure to your storefront, not the shelf count.
- Commit stock at the moment of order, not at fulfillment. If units only leave your sellable pool when someone picks them off a shelf, you have built a window where the same unit can be sold repeatedly. The commit has to happen when the order line is created.
- Give every channel one shared pool. One master stock record, one available number, pushed everywhere you sell. This is the change that actually fixes multi-channel overselling, because it removes the possibility of two counts disagreeing rather than trying to keep them in step. For most small stores that means the store, the warehouse, and the accounting side all reading from the same place instead of stock living in one tool and the books living in another.
- Put an expiry on drafts and holds. Any committed stock with no shipping date should release after a set window. Otherwise your available number bleeds without anyone deciding it should.
- Use buffers as a safety net, not a strategy. Holding back two units on every SKU hides the symptom at the cost of stock you are choosing not to sell. It is a reasonable patch while you fix the timing. It is an expensive permanent policy, especially on the slow-moving lines where you can least afford stock that sits.
Where this leaves you#
Overselling feels like a discipline problem, which is why the instinct is to count again, tighten the process, and tell someone to be more careful. But the count was never the issue. Four numbers describe your stock, they answer four different questions, and a business gets into trouble the moment it starts using the wrong one to make promises to customers.
Getting this right is mostly structural. One place where a unit is committed the instant it sells, one available number every channel reads, and no window where two systems disagree about what you have. That is the gap we are building BizPro-Vision to close for retail and ecommerce businesses: sales, purchasing, inventory, and accounting in one platform, with Shopify and WooCommerce reading from the same stock record rather than keeping their own. We're launching soon, so join the waitlist and lock in 50% off your first year when we open.