The production supervisor is visibly frustrated. She is standing at your desk explaining that line four is ready to run, the operators are on the clock, the setup is complete, and the system will not let her start the production order. When she clicks confirm, the screen tells her there is insufficient material. She has already walked over to the raw materials store and physically counted the component in question. There are eleven pallets. The production order needs three. The arithmetic is obvious. The system still says no. She wants to know whether she should override it, call maintenance, or wait for somebody from planning to come figure out what is happening. The line is idle either way, and every minute that passes is a minute you will not recover.

This scenario is the classic symptom of an inventory reservation conflict. Stock exists, and the system knows it exists, but the stock is not available for this production order because something else has reserved it first. The reservation might be from a confirmed order that nobody on the floor knows about. It might be from a canceled order whose reservation never got released. In every case, the problem is not the stock. It is the claim on the stock, and diagnosing the claim is a different activity than managing inventory.

Why Stock Blocking Is Almost Never a Stock Problem

The mental model most operations teams use for production blocking is that it reflects a real shortage. The system says we cannot produce, so we must be short. In a single-location operation with simple demand, this is usually true. In a multi-location operation running many concurrent production orders with multi-level bills of materials, it is often wrong. The material is there. The problem is that it has been promised to something else, and the system is correctly refusing to double-commit it.

The correct response to a reservation conflict is not to override the block. Overriding works until it does not. Eventually, you execute the production order, consume the physical material, and then the other production order that had reserved that material goes to start its own run and discovers that the reservation it relied on no longer corresponds to actual stock. You have solved today's problem by creating tomorrow's.

The right response is to trace the reservation, understand what it is for, and make a deliberate decision about which production order gets the material. Maybe the conflicting reservation is from an order that can be delayed. Maybe it is from an order whose priority is higher than the blocked one. Maybe it is from a canceled order whose reservation needs release. Each has a different resolution, and the resolution depends on seeing the full picture.

Multi-Level BOM Reservations Multiply the Surface Area

Reservation conflicts are complicated enough when the bill of materials is flat. They get genuinely complex when the BOM is multi-level. A finished product might contain sub-assemblies, and those sub-assemblies might contain their own sub-assemblies, and each level has its own reservations. A production order for 1,000 units of a finished product might reserve 500 units of a sub-assembly, which in turn reserves 1,500 units of a raw material. If any of those reservations conflicts with another order, the block propagates up the tree, and the floor sees a "cannot produce" message without any obvious indication of which level is causing it.

FalOrb supports multi-level BOM reservations explicitly. When a production order is confirmed, the system explodes the BOM and reserves material at every level that will be consumed. A sub-assembly that needs to be produced from its own components triggers its own reservation chain. The reservations are visible all the way down the tree, and they are connected back to the parent production order that owns them. When a conflict arises, the system can point to the specific level where the conflict lives and the specific order that is holding the conflicting reservation.

This matters because multi-level reservations are where most reservation leaks happen. When a production order is canceled or completed, the reservation release has to propagate down through every level of the BOM. A bug, a timing issue, or a manual override that stops at the top level leaves orphaned reservations at lower levels. Those orphans are invisible to the order that created them but they keep blocking other orders that need the same material. Over months, orphaned reservations accumulate and become a silent drag on production capacity.

ATP Blocking Is a Signal, Not a Failure

When an available-to-promise calculation comes back blocked, the instinct is to treat it as a failure of the system. In reality, ATP blocking is working exactly as designed. It is telling you that committing to this production order right now would overcommit the network. The right response is to investigate why the commitment would be over, not to bypass the safeguard.

FalOrb's ATP calculation accounts for current available stock, reserved quantities from confirmed production orders, multi-level BOM requirements, and waste factors. When ATP drops below a configured warning threshold, the system identifies the specific bottleneck material constraining production. This transforms a vague "cannot produce" into a specific "this material is the reason, and there are this many units of it reserved against other orders." The post on available-to-promise as a factory floor metric covers the mechanics in more depth.

Once you can see the bottleneck material, the reservation trace is straightforward. You look at the active reservations on that material and identify which production orders hold them. Each reservation has an owner, an order reference, and a quantity. From there, the decision is a prioritization question: which order should get the material first, and what happens to the others. The decision is still a human call, but the data that supports it is explicit and complete. You are no longer guessing. You are choosing.

Tracing a Reservation to Its Owning Production Order

The key diagnostic capability is the ability to trace any reservation back to the production order that owns it. Without this trace, reservations are just numbers on a stock record with no way to know why they exist. With the trace, every reserved unit has an owner, and the owner is a specific order with a specific status, a specific priority, and a specific delivery commitment.

FalOrb's production order lifecycle runs from draft to confirmed to in progress to completed or cancelled. Reservations are created at confirmation and released at completion or cancellation. Every reservation carries a link back to the order that created it. When a planner investigates a conflict, they can see the list of orders holding reservations on the bottleneck material, sorted by priority, with full context on each order's status and required completion date. The decision of whether to delay an order, expedite one, or split a reservation becomes a specific conversation with specific data.

This traceability is what prevents reservation leaks from turning into chronic production blocking. When an order is canceled, the system releases its reservations atomically with the status change. If the release fails for any reason, the failure is visible rather than silent. Orphaned reservations cannot accumulate unnoticed because every reservation has to have an owner, and owners whose orders no longer exist are flagged. The immutable movement ledger provides the supporting audit trail, so any reservation change, release, or adjustment is permanently recorded with attribution.

Resolving Conflicts Without Breaking Commitments

Once you can see the conflict and identify the owning orders, the resolution is a question of how to meet your commitments without breaking any of them. There are a handful of common approaches. You can delay the lower-priority order to free its reservation. You can split the reservation, giving the blocked order what it needs to start while leaving the remainder for the other order. You can expedite material from another location through an internal transfer, which is often cheaper and faster than anyone expects. You can initiate a rebalance that moves reserved material between sites where both orders can be covered.

FalOrb's restock intelligence engine is built to surface these options. When a reservation conflict is detected, the system can identify whether the bottleneck material is available at another location in a quantity that could be transferred in time to resolve the block. If such a condition exists, it surfaces as a transfer recommendation with urgency and pre-filled details. If no internal transfer is possible, the system looks at whether a reorder from the preferred supplier could arrive within the production window. The planner sees the options and makes the call, but the options are calculated rather than brainstormed on the spot.

The operational value of this is that resolutions stop being heroic. A reservation conflict used to require a planner to mentally walk through every possible action, check availability at every location, consult the supplier lead time list, and propose a course of action to the production supervisor. Now the system does the enumeration, the planner validates, and the supervisor gets an answer in minutes rather than hours. Read more about the broader procurement implications in the post about reactive to predictive procurement, which covers how leading signals change the cadence of inventory decisions.

The Operational Shift From Override to Diagnosis

The cultural shift that matters is moving from override-first to diagnose-first. In organizations where reservation conflicts are routinely overridden, the system's reservation logic loses credibility and becomes something people work around rather than rely on. In organizations where conflicts are routinely diagnosed, the reservation logic becomes a genuine source of truth and the conflicts that are resolved stay resolved.

This shift requires two things. First, the diagnosis has to be fast enough to compete with the override. If tracing a reservation takes fifteen minutes of navigation, operators will override. If it takes thirty seconds through a clear diagnostic flow, diagnosis becomes the default. Second, the resolution has to actually resolve. If the diagnostic finds the owning order but there is no way to adjust priorities or release orphans, the diagnosis feels academic and operators return to overrides. Learn more about how this works at falorb.com.

Closing the Reservation Feedback Loop

The phrase "we have stock but cannot produce" is usually accurate, and the accuracy is the problem. You do have stock. You also have commitments against that stock that you cannot see clearly. The right operational response is to stop treating reservation conflicts as system errors and start treating them as signals that need diagnosis. The system is not wrong when it blocks production. It is telling you that the network state is more complicated than the physical count suggests, and the complication is worth understanding.

Teams that make this shift find that their actual production throughput improves even though their inventory levels do not change. The same stock is used more efficiently because the allocation decisions are deliberate rather than emergent. Orders that would previously have been blocked get resolved through specific actions. Orders that genuinely need to wait get queued rather than attempted and failed. The rhythm of the floor gets more predictable because the system's answers are trustworthy.


FalOrb helps manufacturers resolve inventory reservation conflicts with multi-level BOM reservations, ATP calculations that identify the true bottleneck material, and a production order lifecycle that traces every reservation to its owning order. Book a 30-minute walkthrough or email us at [email protected] to see how it applies to your operation.