Available to promise

OutboundGlossary
Definition

Available to promise (ATP) is the quantity of an item you can still commit to new orders. It starts from on-hand stock, subtracts what is already reserved for orders or not sellable (on hold, damaged, in quarantine), and can add confirmed incoming supply expected before the requested ship date.

How to calculate available to promise

The simplest form is: ATP = on hand - allocated - unavailable. Unavailable means stock you hold but can't sell right now, such as quarantined, damaged or held units. A forward-looking version adds confirmed incoming supply: ATP = on hand - allocated - unavailable + scheduled receipts due before the ship date.

For example, you hold 500 bottles of serum SRM-030. Open orders have 120 allocated, and 30 are in quarantine awaiting inspection. Today's ATP is 500 - 120 - 30 = 350. A purchase order for 200 more is confirmed for next Tuesday, so for an order shipping after that date you could promise up to 550.

ATP vs on hand vs available

These numbers are often confused, and each answers a different question.

  • On hand: everything physically in the building, sellable or not.
  • Available: on-hand stock in a sellable status, before orders are subtracted.
  • Allocated: stock reserved for specific orders, often down to lot and location.
  • Available to promise: what is left to commit to a new order, now or by a given date.

Why available to promise matters

ATP is the number your sales channels and account managers should quote. If a store shows on-hand stock instead, it will sell units already promised to other customers or sitting in quarantine, and those orders end up short-picked or turned into a backorder.

For B2B, ATP with dates lets you give a real promise: "300 now, the rest after Tuesday's delivery." That is better than a vague confirmation followed by a partial shipment nobody expected.

Common ATP mistakes

ATP goes wrong when the inputs are loose.

  • Counting quarantined, damaged or expired stock as sellable.
  • Publishing the same units to several channels without a buffer, so two channels sell the last unit.
  • Counting purchase orders that are not yet confirmed by the supplier.
  • Letting order allocation lag behind order intake, so reserved stock still looks free.

How NextStock handles availability

NextStock tracks stock status (available, quarantine, damaged, hold) as part of each stock record, so sellable and unsellable stock are kept apart. Allocation reserves specific stock against sales orders and creates backorders when there isn't enough. Holds and quarantine are managed through holds and recalls. Native connectors that publish stock levels to Shopify, WooCommerce and Salla are planned but not available yet; today orders come in through the UI, the API or CSV.

Part of the NextStock warehouse glossary. Browse the full glossary

Frequently asked questions

Short, direct answers to the questions warehouse teams ask most.

Is available to promise the same as available stock?

Not quite. Available stock is what you hold in a sellable status. ATP goes one step further and subtracts what is already reserved for open orders. Two warehouses with the same available stock can have very different ATP if one has a large order waiting to be picked.

Should ATP include stock on purchase orders?

Only if the supplier has confirmed the delivery date and the promise you're making is for after that date. Including unconfirmed or late purchase orders turns ATP into a guess. Many businesses show two numbers: ATP now, based on stock in the building, and ATP by date, including confirmed inbound supply.

A little more order. A lot more possibility.

Make space for a better way to run your warehouse.

Get started with NextStockFree during open beta. No card needed.