TaktSignal

Work orders and production dependencies

One work order or two? How ERPNext multi-level BOM settings change what planners can see

Exploding sub-assemblies into one work order or making them on their own work orders changes which delays ERPNext shows. A checklist for implementers and planners.

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

Short answer. When a finished item's BOM contains a sub-assembly with its own BOM, ERPNext lets you either explode that sub-assembly into the parent work order or make it on a separate work order. Both are valid. They hide different things. Exploding keeps one order but makes the sub-assembly's progress invisible as an order of its own. Separate work orders give you that progress, but the parent only sees "0 in stock" for the sub-assembly, so a delay on the child order looks like a purchasing shortage — or looks like nothing at all. Pick the setup on purpose, and give planners a daily check that matches it.

The two setups

This comparison covers standard work orders in ERPNext v15 and v16, with Track Semi Finished Goods disabled. In v16, that setting uses a different workflow and its BOMs are skipped by Get Sub Assembly Items. Check the setting before applying this checklist. ERPNext v16 implementation.

Explode into the parent Separate sub-assembly work orders
How Use Multi-Level BOM on the work order (and no Do Not Explode on that BOM line) Production Plan → Get Sub Assembly Items, then Manufacturing Type = In House and create work orders after submitting the plan; or create them by hand with Use Multi-Level BOM disabled on the parent
Parent's Required Items The sub-assembly's raw materials The sub-assembly itself
Where sub-assembly progress lives Nowhere as a separate order The child work order's operations and job cards
What a shortage looks like A raw material short on the parent The sub-assembly at 0 on the parent, with no purchase order
What the planner must watch Raw materials and the parent's own operations The link between parent and child, and the child's slowest operation

Get Sub Assembly Items fills the Production Plan table; it does not create work orders by itself. For the ERPNext steps, see the Work Order documentation and Production Plan documentation.

Neither is "right". A simple, fast sub-assembly made in the same area often reads best exploded. A sub-assembly with its own routing, its own machines or its own lead time is usually better as its own work order — as long as someone watches the link.

What exploding hides

When the sub-assembly is exploded, the parent work order lists its raw materials. Those may well be in stock, so the material check passes. If making the sub-assembly takes a different machine, a different shift or a supplier step, nothing in the parent's material view tells you how far along it is. You learn about the delay at assembly.

Check also whether Do Not Explode is set on some BOM lines. Then the work order mixes both setups: some sub-assemblies exploded, others expected as finished items. That is fine if intended, and confusing if nobody remembers why.

What separate work orders hide

With separate work orders, the parent's Required Items shows the sub-assembly like any other material. Three different situations look the same there:

  1. The child work order is submitted and on time. Nothing to do yet.
  2. The child is submitted but behind. Its operations show the bottleneck; the parent will start late.
  3. The child is still a Draft, or doesn't exist. A draft adds no Planned Qty and is on nobody's schedule. This is a real shortage.

Two more traps are specific to this setup:

  • Warehouses. The child's Planned Qty is recorded against its target (finished goods) warehouse. The parent consumes from its source warehouse. If they differ, the child's output appears in a different line of Stock Projected Qty than the parent's requirement, and moving it is one more step that takes time.
  • Which parent does a child serve? A child work order made by hand has no standard direct link to the parent work order it was meant for. Orders created from a Production Plan share plan references, and its Sub Assembly Items table identifies the Finished Good; this is not a direct parent work order link. If sub-assemblies are consolidated, agree how the shared output is allocated. With several parents needing the same sub-assembly, the first one to ask may take the output.

A synthetic example

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

Northstar assembles 40 pump housing assemblies for sales order NS-SO-3301, shipping Tuesday 17:00, on parent work order NS-WO-5102. The machined housing, SEMI-A, is made on its own work order, NS-WO-5098: turning is done (40 of 40), milling restarted this morning (8 of 40), deburring hasn't started, and the order is past its planned end. On the parent, SEMI-A shows 0 in stock and no purchase order. A second order in the same plant needs 25 × SEMI-B. It also shows 0 in stock and no purchase order, but its only work order, NS-WO-5111, is a Draft. The first case needs the mill expedited; the second is a real shortage. The full trace is in No stock, no purchase order — and it still isn't a supplier problem.

Had SEMI-A been exploded into the parent instead, the parent would list the housing's raw material, not the housing. If that material were in stock, the parent would look ready and the milling delay would stay out of sight until assembly. Same plant, same delay, different blind spot.

A go-live checklist for implementers

Before a manufacturing client goes live, settle these with the planner, in writing:

  1. Which items have their own BOM, and why? List every sub-assembly that appears in a finished item's BOM.
  2. Explode or separate, per sub-assembly. Use separate work orders when the sub-assembly has its own routing, machines or lead time. Record any Do Not Explode lines on purpose.
  3. How are sub-assembly orders created? From a Production Plan (shared plan references and the Finished Good in its Sub Assembly Items table) or by hand (no direct parent link — agree how parents are matched).
  4. Warehouse flow. Child target warehouse = parent source warehouse, or a defined transfer step with an owner.
  5. Draft policy. Who submits sub-assembly drafts, and by when relative to the parent's start?
  6. Progress data. Are operations or job cards updated the same day? If not, a child order's progress is a guess.
  7. One daily view. Which report does the planner open each morning to see parent and child together? If the answer is "several", plan the time for it.

A daily dependency check for planners

For each parent work order starting in the next few days:

  1. In Required Items, find anything short at the source warehouse. If the item has a default BOM, it may be made in-house.
  2. Filter Work Order by Item To Manufacture = that item. Note each order's status. Drafts don't count.
  3. Open the child's Operations (or Job Cards). Find the first operation behind plan.
  4. Compare the child's realistic finish with the parent's planned start.
  5. Act on the gap: expedite the child's bottleneck, start the parent partially, or warn sales — before raising a purchase request for something you make.

Where TaktSignal fits

TaktSignal is designed to follow these links automatically. When an open work order needs an item that another submitted work order produces, it treats that as internal supply, follows the child's progress, and raises the risk on the customer order it threatens. Draft work orders are not counted as supply. When a source such as Job Card can't be read, alerts say so and lower their confidence. Every alert lists the documents behind it. Understanding alerts.

TaktSignal is a Community Alpha, read-only toward ERPNext, and not yet validated in real factories. Implementers can try it on a client's staging or test copy without sharing client data: Create the read-only Reader.

FAQ

Does Use Multi-Level BOM create work orders for sub-assemblies? No. In the standard workflow, it puts the sub-assembly's raw materials on the parent work order, except for BOM lines marked Do Not Explode. Separate sub-assembly work orders come from a Production Plan or are created on their own.

Can I mix both setups? Yes, per BOM line with Do Not Explode. Document which lines and why, so planners know where to look.

Why doesn't a Draft work order count? It hasn't been submitted, so it adds no Planned Qty, reserves no material and isn't scheduled.