TaktSignal

Work orders and production dependencies

No stock, no purchase order — and it still isn't a supplier problem: sub-assembly shortages in ERPNext

When a work order's material shows no stock and no purchase order, check whether another work order makes it. How to trace sub-assembly supply in ERPNext and act.

By Nguyen Dac Manh Cang · Published by TaktSignal · · 5 min read

Short answer. When a work order needs an item that has no stock and no purchase order, the instinct is to treat it as a purchasing shortage. In a multi-level BOM, that item is often a sub-assembly made by another work order in your own plant. Then the real question is not "who do we buy it from?" but "when will that child work order finish, and which operation is holding it?". Check for an open work order that produces the item before you raise a purchase request, and check its operation progress before you trust its planned end date.

Why this happens in multi-level BOMs

A finished product's BOM can contain items that have their own BOM: machined parts, sub-assemblies, kits. ERPNext lets you plan them in different ways:

  • a Production Plan with Get Sub Assembly Items, which creates separate work orders for sub-assemblies;
  • Use Multi-Level BOM on the parent work order, which explodes the sub-assembly's raw materials into the parent instead;
  • or work orders created by hand for the sub-assembly item.

With separate work orders, the parent's Required Items lists the sub-assembly like any other material. Its Available Qty at Source Warehouse is zero until the child order finishes and the stock is received. Nothing on the parent tells you that the missing quantity is already in production on another order.

Three things look identical on the parent work order

What is really happening Stock Purchase order What to do
A submitted child work order is making the item and is on time 0 none Nothing yet; watch the child
A submitted child work order is making it but is behind 0 none Expedite the child's bottleneck operation; tell sales if the parent will slip
The only work order for the item is still a Draft, or there is none 0 none Real shortage: submit/plan production or buy, now

A purchase-shortage view treats all three rows the same. The action is different in each.

A synthetic example

Synthetic demo scenario: illustrative data from a fictional plant. Not customer data. Monday 10:00.

  • Sales order NS-SO-3301: 40 pump housing assemblies, ship Tuesday 17:00.
  • Parent work order NS-WO-5102 assembles them Monday 13:00–17:00 and pressure-tests Tuesday morning. It needs 40 × SEMI-A (machined housing).
  • SEMI-A: 0 in stock, no purchase order.
  • Child work order NS-WO-5098 makes SEMI-A. Turning finished last week (40 of 40). Milling, planned for Saturday morning, only resumed Monday 08:00 (8 of 40). Deburring has not started. The child is past its planned end.

Read the chain together: the parent cannot start assembly until the housings are milled and deburred, so the assemblies finish later than planned and the Tuesday shipment is at risk. Buying housings would be the wrong action. The useful action is on the mill and the deburr bench — and an early, honest message to the customer if they cannot catch up.

A second order in the same plant needs 25 × SEMI-B. The only work order that would make SEMI-B, NS-WO-5111, is still a Draft. A draft creates no planned quantity and nobody is working on it. That one is a real shortage.

How to trace sub-assembly supply in ERPNext

For each work order starting in the next few days:

  1. Open the Work Order and read Required Items. For any item with too little at the source warehouse, open the item and check whether it has a default BOM. If it does, it may be made in-house.
  2. Run Stock Projected Qty for that item. Planned Qty comes from submitted work orders that produce it; Ordered Qty from purchase orders. Planned quantity is a promise from your own shop floor, not stock.
  3. Filter Work Order by Item To Manufacture = the sub-assembly. Note each order's status: Draft, Not Started, In Process. A Draft is not supply.
  4. Open the child work order's Operations table (or its Job Cards). Compare completed quantity per operation with the planned times. The first operation that is behind is your bottleneck.
  5. If you plan with a Production Plan, its Sub Assembly Items table shows which parent each sub-assembly order serves. The Work Order Summary and Production Planning Report help review several orders at once.
  6. Decide: expedite the child's bottleneck operation, start the parent partially, or warn sales — before raising a purchase request for something you already make.

Where the standard reports stop

Each report answers one question well: stock and planned quantity per item, status per work order, progress per job card. None of them walks from a customer promise through the parent work order to the child order's slowest operation and tells you the shipment is at risk because of milling on another order. That link is usually made by a planner, by hand. See the same pattern for purchased material in Every ERPNext document is correct. So why is the delivery at risk?, and why "planned" or "projected" is not "usable" in “Material available” doesn't mean production can start.

A further trap: if your operation progress is recorded late, or the account you report with cannot read Job Cards, the child order may look further behind (or further ahead) than it is. Treat any conclusion as provisional until you know the progress data is current.

Where TaktSignal fits

TaktSignal is designed to make this distinction automatically. When an open work order needs an item that another open, submitted work order produces, it treats the requirement as internal supply rather than a purchase shortage, follows the child order's progress, and raises the risk on the customer order it threatens. A Draft work order is not counted as supply. When a source such as Job Card cannot be read, alerts say so and lower their confidence instead of guessing. Every alert lists the documents behind it. Understanding alerts · Understanding confidence.

TaktSignal is a Community Alpha, read-only toward ERPNext, and not yet validated in real factories. Try it against a staging or test copy of ERPNext: Create the read-only Reader.

FAQ

Should I use Use Multi-Level BOM or separate sub-assembly work orders? Use Multi-Level BOM keeps one work order and consumes the sub-assembly's raw materials directly; you lose separate progress tracking for the sub-assembly. Separate work orders give you that tracking, at the cost of a dependency you have to watch.

Does a submitted child work order reserve anything for the parent? No. It adds Planned Qty for the item it produces. Nothing ties that output to a specific parent unless you plan both from the same Production Plan.

Why is a Draft work order not supply? It has not been submitted, so it adds no planned quantity, reserves no material and is not on anyone's schedule.