Skip to main content

Promise a delivery date

A customer asks for 500 by the end of the month. The honest answer is rarely yes or no — it is usually "300 now, and the rest depends". ATP / CTP is where you work out which.

The page asks two different questions, side by side:

  • Available to Promise (ATP) — how much of this product you can commit from stock and from supply already on its way. Nothing gets built; this is the promise you can make off the shelf.
  • Capable to Promise (CTP) — and how much more you could promise if you built it, given the components you hold right now.

Neither check reserves anything and neither writes to the plan. They answer a question at a moment in time. A promise you intend to hold belongs on a sales order.

Before you begin

  • The product and the warehouse you would ship from. Both checks are per warehouse — promising against company-wide stock is how you end up shipping from the wrong coast.
  • An active recipe, for CTP. Without one there is nothing to explode, so CTP reports exactly what ATP reports and Can Promise reads "No". See Create a recipe (BOM).
  • Permission to view Planning — the MRP Planning group in Roles & Permissions.

You do not need a planning run. Both checks read live stock and live supply, not the output of a run, so the answer is current even if nobody has planned for a week.

Steps

  1. Go to Manufacturing → Planning, then ATP / CTP on the button bar. The Workbench also has an ATP / CTP button in its header.

  2. In the Available to Promise panel, choose a Product and a Warehouse, then pick what counts under Supply to count.

  3. Select Check ATP. The button stays disabled until both a product and a warehouse are set, and hovering it says which one is missing.

  4. Read the Available to promise figure, then read How this number is built underneath it to see which supply the method counted.

  5. In the Capable to Promise panel, choose a Product, a Warehouse and the Quantity you want to promise.

  6. Select Check CTP, then read Promisable Qty, Can Promise, and the Limiting Components table.

The two panels are independent. Filling in one does not fill in the other, and the Supply to count choice applies to the ATP panel only.

Choosing the right ATP method

Supply to count decides how far forward the promise reaches. All three count the same underlying supply — the difference is how much of it you are willing to stand behind.

Supply to countCountsUse it when
On hand onlyPhysical stock in this warehouse that is free to commit right nowThe promise is same-day or next-day, or the customer has been let down before and you want the strictest answer available
On hand + in transitAdds stock already moving between your own warehouses toward this oneYou control both ends of the move, so the arrival is a logistics question rather than a supplier question
On hand + in transit + scheduled inboundAlso adds quantities on open purchase orders scheduled into this warehouseThe default, and the right choice when your suppliers hit their dates. It is the most optimistic of the three — every unit it adds is a unit somebody else still has to deliver

How this number is built lists all three sources every time, each marked Counted or Not counted, with a Total that matches the headline figure. That way you can see what the method left out without re-running the check on a different setting.

note

ATP reports supply, not the net of a plan. Forecast demand is deliberately excluded, and the panel says so — the number answers "what is there", not "what is left after everything we expect to happen". If you want demand netted against supply over time, that is the time-phased plan.

If the warehouse holds a negative on-hand figure, ATP counts it as zero rather than borrowing against it, and a warning line under the table names the actual figure. A negative balance is a stock problem to fix, not a debt to promise against.

Reading a CTP result

CTP starts from ATP. If available-to-promise already covers the quantity you asked for, the answer is the full quantity and there is nothing more to work out. Otherwise it takes the shortfall, opens up the product's active recipe, and asks how many finished units each component could cover.

The result is three things:

  • Promisable Qty — what you can stand behind: the available-to-promise quantity, plus as much of the shortfall as the components allow.
  • Can Promise — "Yes" only when Promisable Qty reaches the quantity you asked for. Anything less reads "No", even when most of the order is coverable.
  • A sentence that separates the two halves, such as "0 available to promise now, plus 40 buildable from components on hand." This is the line to read out loud on the call — it is the difference between "we have none" and "we have none but can make 40".

Limiting Components

The table names every component the explosion produced, tightest constraint first:

ColumnWhat it means
ComponentThe component's name and SKU, linked to the product
Required / UnitHow many of it one finished unit consumes
AvailableComponent stock in this warehouse, plus its inbound and in-transit quantities
Buildable UnitsFinished units this component alone could cover

The smallest figure in Buildable Units is what caps the build, and it is shown in red. That row is the one to act on — everything above it is comfortable, and ordering more of it is the only thing that raises the promise.

Buildable units are whole units. A component that covers 40.8 builds counts as 40, because you cannot ship most of one.

note

CTP is a component-availability check, and only that. It opens one level of the active recipe — the finished product's own components, not the components of a sub-assembly underneath them. It does not look at work-centre capacity, and it does not return a date. If the promise depends on actually building the units, check the hours as well: Check capacity.

A promise is a plan

CTP explodes the recipe using the same planning quantities a planning run uses, not the nominal recipe. Expected scrap and yield are applied, each component is counted in the unit it is stocked in, and lines a contractor supplies are left out because the contractor brings them.

That is deliberate, and it is what keeps the two honest with each other. A recipe that loses 5% to scrap really does consume more than the nominal quantity — a promise built on the nominal figure would commit material you do not have, on every recipe that loses anything to scrap. The plan and the promise are the same question asked at different scales, so they use the same arithmetic.

When the answer is no

  • No active recipe. Promisable Qty falls back to available-to-promise and Can Promise reads "No". There is no recipe to build from, so there is nothing to add.
  • A component at zero. One component with nothing available caps the build at nothing, whatever the rest of the table says. The red row names it.
  • A partial answer. Can Promise reads "No" whenever Promisable Qty falls short of the quantity you asked for, even by one unit. Read Promisable Qty before treating that as a flat no — a partial ship or a split date is often the real answer.

Recent checks

Each panel keeps a short list of the checks you ran — Recent ATP checks and Recent CTP checks — with a Clear button.

These are kept for this visit only. They exist so you can compare a few products or warehouses without writing the numbers down, not as a record. As both footnotes say: a promise you intend to hold belongs on a sales order.

Next steps

Last verified: