Available to Promise (ATP) is the quantity of a product a business can commit to a new customer order without breaking existing commitments. It's calculated from current on-hand inventory, plus expected incoming supply, minus orders already promised to other customers.
What Available to Promise means
ATP answers a single operational question: "If a customer orders this SKU right now, can we ship it on time?" It treats inventory as a flow rather than a static count. On-hand units already allocated to other orders aren't available, even if they're sitting in the warehouse. Units arriving on a confirmed PO next week are available — for orders with a delivery date after that PO lands.
The basic formula:
ATP = On-hand inventory + Scheduled receipts − Existing customer commitments
Why ATP matters
Without ATP, two failure modes show up fast. The first is overpromising: the storefront sells units the warehouse has already reserved for someone else, leading to backorders, support tickets, and refunds. The second is underselling: the storefront refuses orders that could have been fulfilled from incoming PO supply, leaving revenue on the table.
For Shopify merchants in particular, ATP becomes critical when:
- The same SKU is sold across multiple channels (Shopify, Amazon, wholesale, retail)
- Lead times are long and POs land on predictable dates
- Pre-orders or backorders are part of the merchandising mix
- 3PLs or multiple fulfillment locations are involved
How ATP is calculated in practice
The calculation gets more complex once time is factored in. Two common approaches:
- Discrete ATP: calculated for a specific time bucket (e.g., this week, next week). Each bucket has its own ATP balance based on receipts arriving and orders due in that window.
- Cumulative ATP: rolls forward through time, carrying unsold inventory from earlier buckets into later ones.
Most modern ecommerce platforms and ERPs run cumulative ATP behind the scenes. The merchant experience is usually a single "available" number on the product page, but the system underneath is doing the bucket math.
ATP vs. on-hand inventory vs. capable to promise
- On-hand inventory is the raw count of units in the warehouse. It ignores commitments and incoming supply.
- Available to Promise (ATP) is on-hand minus committed, plus confirmed incoming supply. It's the realistic answer to "can we ship?"
- Capable to Promise (CTP) goes a step further: it considers manufacturing capacity, raw materials, and lead times to answer "can we make and ship?" CTP matters most for made-to-order or assemble-to-order products.
Common ATP problems in ecommerce
- Stale committed counts: orders that were cancelled but never released back to ATP cause artificial stockouts.
- Multi-channel double-selling: when channels don't share a single source of truth, the same unit gets promised twice.
- Receipts counted too early: treating a PO as available before it arrives causes shipping delays and missed promise dates.
- Safety stock buried inside ATP: if reserved buffer stock is included in the ATP number, the storefront can sell into the reserve without anyone noticing.