Action and exception messages
A planning run doesn't only produce orders. It also writes down what it couldn't resolve on its own, and what it needs you to do. Those notes are its messages, and they're what the exceptions inbox lists.
There are exactly six types. Each run writes its own set from scratch, so a message always describes the run it belongs to, never a leftover from last week.
Action or exception
Every message carries a Class, and the distinction is the difference between work and a warning.
| Class | Means | Types |
|---|---|---|
| Action | The plan is asking you to do something. Nothing is wrong — this is the work the run produced. | Release |
| Exception | The plan is reporting a condition it could not resolve. Something needs a decision, and it may not be an order. | Past Due, Compression, Shortage, Below Safety Stock, No Active BOM |
The inbox opens filtered to the exception class, because the run raises one Release action for every planned order it produced and those rows would otherwise bury the five types that need thought.
The six types at a glance
| Type | Class | Severity | Raised when |
|---|---|---|---|
| Release | Action | Attention | The run produced a planned order — one message each |
| Past Due | Exception | Emergency | The order had to be started before today to arrive on time |
| Compression | Exception | Emergency | The order still fits, but only by making up lead time |
| Shortage | Exception | Emergency | A period is left short even after the plan's own order |
| Below Safety Stock | Exception | Exception | The plan couldn't restore a safety-stock floor you asked for |
| No Active BOM | Exception | Exception | An item set to Make has no active recipe to explode |
Release
What raises it. Every planned order in the run, without exception. A 400-order run raises 400 Release actions.
What it's telling you. "Here is a suggestion, and here are its numbers." Recommended Qty and Recommended Due carry the quantity and due date the engine arrived at after netting, lot sizing and lead-time offsetting.
What you'd do about it. Work the orders themselves on the Workbench rather than the inbox — the Workbench shows the same orders with everything you need to act on them, including supply type, release date and pegging. See Carry out planned orders.
Release is the one type that is never suppressed across runs. Dismissing an exception records a standing decision, but "place this order" is work that stays outstanding until you do it, so a dismissal never silences it in a later run.
Does it fit inside the lead time?
That question — can my supplier still get this to me in time? — is the one a planner most often needs the plan to answer, and Past Due and Compression are the answer. Both come from the same piece of arithmetic.
The run works backwards: take the date the stock is needed, subtract the item's lead time, and you have the date you'd have to act. When that date lands in the past, the honest answer to "does it fit?" is no — not at the lead time you're planning against.
The plan never asks you to act on a date that has gone. It schedules the release for the earliest date you could act, and raises a message saying what that cost. Which of the two you see depends on whether this run did that rescheduling.
A single order raises at most one of the two, never both — they describe one fact, and two Emergency rows for one order would double-count the problem.
Past Due
What raises it. Working backwards from the date the stock is needed put the start date before today. It had to be released before now to arrive on time.
What it's telling you. You're already behind on this one. The columns spell out how far:
| Column | Reads |
|---|---|
| Current Due | The date the order is needed |
| Current Qty | The quantity the plan wants |
| Recommended Due | Today — the earliest you can act |
| Days Late | How many days ago you should have started |
A Days Late of 12 on an item with a 30-day lead time means the order needed placing nearly two weeks ago, and placing it today lands the stock 12 days after it's wanted.
What you'd do about it. Past Due is an Emergency because none of the answers is free, and all of them get worse with delay:
- Place it now anyway and accept that the stock arrives late. Often correct — late is better than later.
- Expedite it. Ask the supplier for a shorter lead time, pay for faster freight, or move the job up the production schedule.
- Split it. Bring a part quantity in quickly to cover the nearest demand, and let the balance arrive on the normal lead time.
- Move the demand. Trace why the order exists, and if the customer order behind it can move, the exception goes away when you re-run the plan.
- Change what the plan is working from. A Past Due message that keeps reappearing on an item usually means its Lead Time is wrong, or the demand arrived with less notice than your process needs. See Planning policy settings.
Past Due is the one you see on an order this run did not reschedule forward — an order carried over from an earlier run, for example. Where the current run did the rescheduling itself, the same situation is reported as Compression, which carries the more useful number.
Compression
What raises it. Backward scheduling wanted a start date before the run could act, so the run pulled the release forward to the earliest date available and recorded the shortfall: the number of days of lead time that now have to be made up for the order to still arrive on its due date.
What it's telling you. This one still fits — but only if something goes faster than it normally does. That's a different message from Past Due, and a far more actionable one, because it names the size of the favour you need to ask.
| Column | Reads |
|---|---|
| Current Due | The date you'd have needed to start, working backwards at the normal lead time |
| Current Qty | The quantity the plan wants |
| Recommended Due | The date the plan can actually start it |
| Days Late | The days of lead time to make up — the gap between those two dates |
So an order with Days Late of 6 on an item with a 21-day quoted lead time is saying: release this today and it arrives on time only if the supplier turns it round in 15 days instead of 21. That's a concrete question to put to a supplier, and one they can answer yes or no to.
What you'd do about it. Compression is an Emergency because the order is genuinely releasable now and the days to make up grow with every day you leave it:
- Ask. Put the number to the supplier or the production floor. Six days off a 21-day lead time is a conversation; six days off an eight-day lead time usually isn't.
- Buy the time. Faster freight, a partial shipment, or overtime on the build.
- Release it today regardless. Every day you wait adds a day to the compression, so releasing now is the cheapest version of the problem.
- Check the lead time is real. Recurring compression across many items on one supplier is often a quoted lead time that no longer matches what they do, or a missing buffer. Both live on the item's planning policy.
- Re-check it after a re-run. Compression is measured against the run's own start date, so the figure on a plan you ran last week is out of date. Re-run before acting on a stale number.
Compression is not the plan promising the date is achievable. It's the plan telling you exactly how much of the lead time you'd have to recover for it to be. If nobody makes up those days, the stock arrives late — and it's on the next run's Past Due list.
Shortage
What raises it. A period where the projected balance goes negative — demand that on-hand stock, everything already arriving, and the plan's own planned order together cannot cover.
What it's telling you. The plan could not solve this one. That's worth separating from an ordinary "we need to order something": a shortage means the engine already did what it could and the hole is still there.
Current Qty shows the projected balance at its worst, as a negative number, and Current Due the period it falls in.
What you'd do about it. Find out why the plan couldn't cover it:
- The item has no planning policy, or is set to a planning method of None, so nothing is planned for it at all.
- An Order Maximum caps each order below what's needed.
- There's no supply route — an item to be transferred with no lane to draw from, or one set to Make with no recipe (which raises No Active BOM as well).
- The demand landed inside the lead time, in which case Compression or Past Due is usually on the same item.
Trace why the order exists to see which demand is uncovered, then fix the policy or the supply and re-run.
Below Safety Stock
What raises it. The projected balance stays at or above zero but falls below the safety-stock floor you configured — and it's still below it after the plan's own order has been applied.
Two things follow from that, both deliberate:
- An item with no floor never raises it. Safety stock of zero is not a floor, it's the absence of one, so an item that ends the horizon empty is not an exception.
- It's rare. On a healthy item the plan restores the floor and stays silent. Seeing this message means the plan tried and couldn't.
What it's telling you. You asked to keep a cushion on this item, and the plan can't get you back to it within the horizon. Current Qty is the projected balance, and Current Due the period it happens in.
What you'd do about it. It's an Exception rather than an Emergency because you aren't short yet — you're thinner than you chose to be. Check whether an Order Maximum or Order Multiple is holding the order size down, whether the lead time leaves enough room inside the horizon to rebuild the cushion, and whether the floor is still the right number for the item's current demand. Planning policy settings covers all three.
No Active BOM
What raises it. An item whose Procurement Type is Make, with no active recipe on the date the run was made. The recipe may be missing altogether, still in draft, or outside its effective dates — all three look the same to the run, which cannot explode any of them.
It's raised once per item, with no warehouse, because a missing recipe is a property of the item rather than of any one location. It also appears whether or not the item has demand in this run, which makes it a useful sweep for catalogue gaps.
What it's telling you. This item is set up to be built and there's nothing to build it from. The run keeps planning it as a Make item and names the real problem, rather than quietly turning it into a purchase order for something you don't buy.
What you'd do about it. Either give the item a recipe or change how it's supplied:
- Create or activate the recipe — see Create a recipe (BOM) and check its effective dates cover today.
- Change the item's Procurement Type to Buy if it's genuinely bought in, or to Make or Buy, which uses a recipe when one exists and buys the item when one doesn't.
Until one of those happens, anything underneath that item in your product structures is invisible to the plan — the run can't generate component demand from a recipe it doesn't have.
Severity
Severity is how the inbox decides what to show you first. The list sorts by it, worst first, and the count cards at the top of the page break the run down the same way.
| Severity | Meaning | Types that carry it |
|---|---|---|
| Emergency | Time-critical. The cost of waiting is going up. | Past Due, Compression, Shortage |
| Exception | A real condition to resolve, but not on fire today. | Below Safety Stock, No Active BOM |
| Attention | Ordinary work the plan produced. | Release |
Every type has a fixed severity — it's a property of the type, not a judgement about the individual item — so an Emergency count is a reliable measure of how much of this plan needs you today.
Status
Each message also carries a workflow state, which is yours to set.
| Status | Set by | Means |
|---|---|---|
| Open | The run | Nobody has dealt with this yet. The inbox opens on these. |
| Accepted | You | You acted on it, or took responsibility for it. |
| Dismissed | You | You looked and chose to live with it. |
Accepted is a bookmark — it clears the row from your working list and nothing else. It also clears any standing dismissal on the same problem, so a recurrence is news again.
Dismissed goes further and outlives the run. The same problem — that type, on that item, at that location — opens as Dismissed in later runs for 90 days, so it stays out of your open list. It comes back sooner if it gets materially worse than the version you waved through, which is what stops a dismissed shortage of 40 from hiding a shortage of 400 next month. Release actions carry no such suppression.
Full behaviour, including how to find an accepted message again, is in Work the exceptions inbox.
Which columns each type fills
Blank cells are informative here — a message that isn't about a quantity leaves the quantity columns empty rather than showing a zero you might act on.
| Type | Current Qty | Current Due | Recommended Qty | Recommended Due | Days Late | Warehouse |
|---|---|---|---|---|---|---|
| Release | — | — | Order quantity | Order due date | — | Yes |
| Past Due | Order quantity | Order due date | — | Today | Days behind | Yes |
| Compression | Order quantity | Start date wanted | — | Start date available | Days to make up | Yes |
| Shortage | Projected balance (negative) | Period start | — | — | — | Yes |
| Below Safety Stock | Projected balance | Period start | — | — | — | Yes |
| No Active BOM | — | — | — | — | — | — |
Next steps
- Work the exceptions inbox — filtering, accepting, dismissing and exporting the list
- How a planning run works — netting, lot sizing and the lead-time offsetting these messages come out of
- Planning policy settings — the lead time, safety stock and order sizing behind most recurring exceptions
- Handle component shortfalls — what to do when the parts for a build aren't there