Can you promise that stock? Available to promise (ATP) explained
Available to promise is on-hand stock minus what is already committed to party orders. A worked example for one item, plus the mistakes behind broken promises.
Available to promise (ATP) is the quantity of an item you can safely commit to a new customer order. The basic formula is simple: ATP = on-hand stock − stock already committed to open orders. If your godown holds 500 units and confirmed party orders waiting for dispatch take up 380, you can promise 120, not 500. That one subtraction stops you from selling the same carton twice.
Why is on-hand stock not the right number to promise from?
On-hand tells you what is physically on the shelf. It does not tell you who that stock already belongs to.
A distributor takes an order from one party on Monday, packs it for dispatch on Thursday, and on Tuesday another party calls asking for the same item. The cartons are still in the godown, so the stock register shows them. If the salesperson checks on-hand and says yes, one of those two parties will get a short delivery or a phone call with an apology.
ATP fixes this by treating a confirmed order as a claim on stock from the moment you accept it, not from the moment the goods leave.
What is the formula for available to promise?
For day-to-day use in a shop or distribution business:
ATP = on-hand − committed
- On-hand: saleable stock physically present, counted in the same unit you sell in. Leave out damaged, expired or quarantined stock.
- Committed: quantities on confirmed sales orders that have not yet been dispatched and invoiced.
Some businesses also want a forward view that includes goods arriving from suppliers:
Projected ATP for a date = on-hand + receipts expected before that date − committed due by that date
Keep these two numbers apart. Today's ATP is a promise you can keep from the shelf. Projected ATP depends on a supplier arriving on time.
Can you work an example for one item?
Here is a wholesale distributor stocking one item, a 1-litre bottle sold in cartons of 12. All figures are illustrative.
Stock position at the start of the day
| Line | Cartons |
|---|---|
| On-hand in godown | 250 |
| Of which damaged, kept aside | 10 |
| Saleable on-hand | 240 |
Party orders confirmed but not yet dispatched
| Party order | Cartons | Dispatch planned |
|---|---|---|
| Party A, retail shop | 60 | Today |
| Party B, sub-distributor | 100 | In two days |
| Party C, retail shop | 35 | In four days |
| Total committed | 195 |
ATP = 240 − 195 = 45 cartons
Now Party D calls and asks for 80 cartons. The register shows 250 on-hand, which looks like plenty. ATP says you can promise 45.
You have three honest answers:
- Promise 45 now and the remaining 35 when stock arrives.
- Check the supplier side. Say a purchase order for 150 cartons is due in three days. Projected ATP for day four is 45 + 150 = 195, minus nothing new committed, so you can give Party D a firm date for the full 80, as long as the supplier delivers on time.
- Talk to Party B. If they agree to take part of their 100 cartons later, that frees stock. That is a conversation with your party, not a quiet reallocation.
What you should not do is say yes to all 80 from the shelf. Party B or C would then be short on their dispatch day, and the problem lands on the party who ordered first.
After Party D accepts 45 cartons: committed becomes 240, and ATP drops to zero. Any new enquiry before the next receipt gets a future date, not a yes.
How does ATP connect to reordering?
ATP and the reorder point answer different questions. ATP asks "can I promise this order?" The reorder point asks "when should I buy more?"
They use the same stock position, though. In the example, on-hand is 240 but only 45 is free. If your reorder trigger checks on-hand alone, it will think you are well stocked when most of it is spoken for. Our guide to the reorder point formula explains why the trigger should compare against on-hand plus stock on order, minus committed.
Who needs ATP most?
Any business that takes orders before it dispatches them. That includes:
- Wholesale distributors who book orders through salespeople and dispatch on route days. See our guide to wholesale distributor inventory for how order booking and dispatch fit together.
- Manufacturers who accept party orders against finished goods stock.
- Shops with advance orders, such as bulk orders for a function or a festival booking.
A walk-in counter shop that hands over goods at the moment of sale has almost no gap between commitment and dispatch, so on-hand and ATP are close to the same number.
What are the common mistakes?
- Counting committed stock only at dispatch. If an order reduces stock only when the invoice is raised, every order in between is invisible. Commit at order confirmation.
- Leaving cancelled orders open. A party cancels on the phone but the order stays in the system. That stock looks committed and goes unsold.
- Including damaged or expired stock in on-hand. For dated goods, ATP should count only batches with enough shelf life left for the party. Our post on FEFO picking covers how to rotate them.
- Mixing units. Orders in cartons, stock in bottles. Convert everything to one unit before subtracting.
- Promising from incoming goods as if they were on the shelf. A purchase order is a plan, not stock. Give a date that depends on the receipt, and say so.
- One ATP for several locations. Stock in one godown is not available for a dispatch from another without a transfer. Calculate ATP per location.
- Salespeople checking different sources. If one checks a register, another checks a spreadsheet and a third asks the godown, they will promise the same stock twice. Use one shared number.
When does a simple ATP not apply?
The on-hand minus committed formula works for finished goods sold as they are. It needs adjusting when:
- You make to order, so availability depends on raw material and production capacity rather than finished stock.
- You sell in variants such as size and colour, where ATP has to be worked per variant, not per style. Our apparel size-colour matrix shows why.
- You hold stock on consignment that is not yours to promise.
How do you keep ATP accurate day to day?
A short daily checklist:
- Confirm every accepted order in the system the same day it is taken.
- Close dispatched orders once invoiced, so stock leaves on-hand and committed together.
- Clear cancelled and lapsed orders.
- Move damaged or near-expiry stock out of saleable on-hand.
- Reconcile a sample of items against a physical count each week.
If you still run this in a spreadsheet, every one of these steps depends on someone remembering to update it. Our comparison of Excel and inventory software covers where that tends to break.
FAQ
Is available to promise the same as on-hand stock? No. On-hand is everything physically in your shop or godown. Available to promise is what is left after you subtract quantities already committed to confirmed party orders that have not been dispatched yet. Some of the stock on your shelf already belongs to other customers, so you cannot promise it to someone new.
Should goods on order from my supplier count towards ATP? Count them only when the promise date is after the goods are expected, and keep that figure separate from today's ATP. Stock you have now and stock arriving next week are different promises. If the supplier is late, a promise built on incoming goods breaks, so tell the party the date depends on the receipt.
When does a party order stop counting as committed? It stops counting as committed once the goods are dispatched and invoiced, because at that point they also leave on-hand stock. It also stops if the order is cancelled. Clear cancelled and expired orders quickly. A stale commitment hides stock you could be selling and makes your ATP look smaller than it really is.
Related reading: The reorder point formula, with Indian lead times and Wholesale distributor inventory.