To stop overselling stock, commit against available-to-promise, on-hand minus what's already reserved, not against a number in your head or a spreadsheet from yesterday. Overselling happens when you promise stock before anyone checks whether it's actually free to sell. Fix the moment of that promise and the problem largely disappears. This guide covers why wholesalers oversell more than most, and six ways to stop it, several you can start this week without new software.
What does overselling stock actually mean for a distributor?
Overselling means you've committed more units to buyers than you can actually deliver. A stockout is running out; overselling is promising past what you have, often without realising it until picking or dispatch, when two orders reach for the same cartons. For a distributor, the fallout is worse than an apology: a split delivery, a scramble to expedite, a buyer who now double-orders "just in case," and a margin hit from rush freight or a lost sale.
The root cause is almost never the warehouse. It's the gap between the promise and the check. When an order is confirmed over a call or a WhatsApp thread and the stock isn't decremented until someone keys it into Tally hours later, every order placed in that window is committing against stock that may already be spoken for.
Why do wholesalers oversell more than retailers?
Retail overselling is usually a multi-channel sync problem, the same SKU sold on Shopify and Amazon at once. Wholesale overselling has a different, quieter cause: orders are born in conversation. A buyer messages "send 40 cartons?", someone replies "haan, bhej do," and stock is committed with no system in the loop.
Four things make it worse for distributors:
- No available-to-promise at the point of order. The person taking the order quotes from memory or a stale sheet, not live stock net of reservations.
- A lag between promise and record. Orders sit in chat and get hand-keyed into Tally later, so the true committed quantity is invisible until the backlog clears.
- Spike days. During a festival or scheme push, several buyers order the same fast mover within minutes, exactly when the manual check breaks down.
- One SKU, many buyers, many tiers. With thousands of SKUs and different buyers reaching for the same stock, no one holds the whole picture in their head.
If your order-taking still runs on phone, WhatsApp and spreadsheets, overselling isn't a discipline problem, it's a structural one. Those four cracks are the same ones that quietly cap wholesale growth.
The one number that stops overselling: available-to-promise
Available-to-promise (ATP) is the only figure you should ever sell against:
Available-to-promise = On-hand − Committed (reserved but not yet dispatched)
On-hand is what's physically in the warehouse. Committed is everything already promised to other buyers but not yet shipped. The difference is what's genuinely free to sell right now. Overselling is simply what happens when you commit while ATP is zero or negative, because you were looking at on-hand, or at nothing at all.
The practical takeaway: it isn't enough to know how much stock you have. You have to know how much is already spoken for. Every fix below exists to keep that ATP number honest at the moment an order is placed.
Six ways to stop overselling stock
You don't need all six on day one. Even the first three, done consistently, will stop most overselling. The rest close the remaining gaps as you scale.
1. Keep one source of truth for stock
Pick the system that holds the real number, for most Indian distributors that's Tally, and make it the only one that counts. Parallel spreadsheets, a WhatsApp "stock update" broadcast, and a number in the senior salesperson's head are three sources that will always disagree. If a count lives in two places, one of them is wrong, and overselling lives in the gap between them.
2. Reserve stock the instant an order is committed
The single highest-leverage fix. The moment an order is confirmed, subtract those units from what's available, don't wait for dispatch or for the Tally entry. Reserving on commitment means the next buyer sees the true ATP, not the pre-order figure. Without reservation, two orders an hour apart can both "see" the same stock and both get promised it.
3. Show live availability at the point of order
The person (or buyer) placing the order should see the live available number before they commit, not discover the shortfall at dispatch. A simple in-stock / low / out badge next to each SKU, driven by ATP, prevents the promise from ever being made. This is where a self-serve portal earns its keep: buyers order against live stock badges instead of asking "stock hai kya?" in a chat.
4. Keep a safety-stock buffer on fast movers
For your fastest-moving and most-oversold SKUs, hold a small buffer, treat the last N units as unavailable to normal orders. It absorbs the timing gaps that no system fully closes: a count taken minutes ago, a return not yet booked, a spike day. Set the buffer higher on volatile items and lower on steady ones, and review it monthly.
5. Close the chat-order gap
Every order that arrives as free text in a chat is an order that skips the stock check. You have two honest options: route those messages through a person who enters and reserves them immediately against ATP, or give buyers a place to order that reserves automatically. The goal is that no order can be confirmed before it's been checked, the chat can still start the conversation, but it can't be where stock gets promised.
6. Reconcile with your ERP both ways
Reservations and dispatches have to flow back to Tally, and Tally's real levels have to flow forward into what's sellable, otherwise the two drift apart within days and you're overselling against a stale mirror. Two-way reconciliation means a dispatched order relieves stock in Tally, and a goods-inward or adjustment in Tally lifts availability back up, so the number buyers see never diverges from the ledger. See how the ERP sync works for what two-way reconciliation looks like in practice.
What "good" looks like: a stock number nobody has to trust-fall on
When overselling is truly solved, no one is guessing. Every order is placed against a live availability figure, stock is reserved the instant an order is committed, and the number reconciles both ways with your ERP so it never drifts. Buyers stop padding orders defensively because they trust that "available" means available.
That's precisely what a productized distributor ordering portal is built to do: buyers see live stock net of reservations, orders auto-reserve on approval, and everything reconciles with Tally, Zoho or Odoo, so the portal never over-commits. It's one credible path to closing the gap; the principles above hold whether you get there with a portal, a tightened manual process, or a mix. If you'd like to see it working against your own catalogue, you can book a 30-minute discovery call.
Your Monday-morning checklist
- Name the single system that holds your real stock number, and stop trusting any other.
- List your ten most-oversold SKUs; those are where reservation and buffers matter most.
- Decide the rule: no order is confirmed until stock is checked and reserved against available-to-promise.
- Set a safety-stock buffer on those top-ten fast movers and review it monthly.
- Close the chat-order gap, route messages through immediate entry, or give buyers a place to self-serve.
- Confirm your stock reconciles both ways with your ERP, so the number never drifts.