How to Set Up Routings and WIP in NetSuite Manufacturing
how to set up routings and WIP in NetSuite manufacturing
Also searched as
- NetSuite manufacturing routing work center setup
- NetSuite work order operation completion WIP
- NetSuite WIP account not clearing
- NetSuite work order completion backflush vs issue
Short answer
In NetSuite Advanced Manufacturing, a routing defines the ordered operations, work centers and labor or machine resources an assembly passes through. When a work order with a routing is released, NetSuite creates manufacturing operation tasks, and costs move into WIP through work order issues and operation completions before the final work order completion relieves WIP into finished inventory.
Applies to: NetSuite 2022.x and later with the Work Orders, Assemblies, Work in Process and Routings features enabled; Advanced Manufacturing for operation-level scheduling
How to configure routings and WIP
- 1Enable the features under Setup > Company > Enable Features > Items & Inventory: Work Orders, Assembly Items, Work in Process (WIP) and Routings. Advanced Manufacturing adds work center scheduling and operation tasks.
- 2Create work centers as Manufacturing Work Centers (Lists > Manufacturing, or the Setup > Manufacturing area in your release) and define the labor and machine resources each work center holds.
- 3Create a Manufacturing Cost Template for the assembly family so each operation carries setup time, run rate and the cost categories that feed WIP.
- 4Create the Manufacturing Routing record: list operations in sequence, assign each a work center, the machine and labor resources, setup time and run rate, and link the routing to the assembly item.
- 5On the assembly item, set the WIP account and the WIP variance account, and confirm the item's costing method and units.
- 6Create a work order for the assembly. Select the routing, check the operation list and the scheduled start and end dates, then release the work order.
- 7Issue components with a Work Order Issue transaction, or mark the components to backflush at completion, and record operation progress as manufacturing operation tasks are completed.
- 8Record a Work Order Completion for the finished quantity. Review the GL impact to confirm WIP is relieved and the finished assembly lands in inventory at the rolled-up cost.
- 9Close the work order and review the variance posting, then run a WIP balance report at period end to confirm open work orders explain the balance.
How the routing drives WIP
A routing is a template. It does nothing until a work order picks it up. When you create the work order, NetSuite copies the routing operations onto it, and when the order is released it generates one manufacturing operation task per operation with a planned start, end and quantity. Those tasks are what shop floor users update, and they are what labor and machine cost attaches to.
WIP is the balance sheet account holding value between component issue and finished goods receipt. Component cost enters WIP on a Work Order Issue (or at completion if you backflush). Labor and machine cost enters WIP from the operation costs on the routing. The Work Order Completion then credits WIP and debits inventory for the finished assembly.
Because the cost template sets the rate, the quality of your WIP depends mostly on the routing data. A wrong run rate or a missing operation is the usual reason a finished assembly carries a cost that finance does not recognise.
Issue versus backflush and when each fits
Backflush at completion is the simplest path. You record the completion, components are consumed from the bill of materials in proportion to the quantity built, and WIP is used only within that one transaction. It suits short cycle times and low-value components where nobody needs a running WIP balance.
Explicit Work Order Issue transactions suit long routings, high-value components and any environment where finance must see WIP at month end. Components leave stock when issued, so partial issues and returns from the floor are visible. The cost is more transactions to enter, so many shops scan issues from a handheld or a Suitelet rather than keying them.
You can mix the two by item. Expensive or lot-controlled components are issued explicitly while consumables backflush. Whichever you choose, apply it consistently per assembly, otherwise variances become hard to read.
-- SuiteQL: open work orders with a routing and their status
SELECT t.tranid, t.status, t.trandate, t.custbody_note
FROM transaction t
WHERE t.type = 'WorkOrd' AND t.status IN ('B', 'D')
ORDER BY t.trandate DESCWhy WIP does not clear
A WIP balance that never goes to zero is almost always one of four things. Work orders are completed but never closed, so the remaining variance sits in WIP. Components were issued against a work order that was later cancelled or built in a smaller quantity. Operation costs were posted but the completion quantity was lower, leaving cost unabsorbed. Or manual journals were posted to the WIP account outside any work order.
Start from the GL. Filter the WIP account by transaction type and group by created-from work order. Any work order with a non-zero residual that is already fully completed is a candidate for closure, which posts the variance to the WIP variance account. Anything with no work order at all is a manual entry to review with finance.
Scheduling and capacity
With Advanced Manufacturing, the routing also feeds work center scheduling. Each operation consumes capacity at its work center based on setup plus run time, and the schedule view shows overloads. The planning is finite only to the extent the resources and calendars are maintained, so work center calendars and resource counts matter.
If you only need cost accumulation and not capacity planning, a basic routing with a few operations is fine. Do not model every physical step as an operation. Each operation is another task to update and another place for data to go stale.
Common pitfalls
- !Releasing a work order before the routing is correct: the operation tasks copy at creation, so later routing edits do not fix existing work orders.
- !Leaving completed work orders open, which strands variance in WIP and distorts period-end balances.
- !Setting the WIP account on the wrong item class, so assemblies post to different WIP accounts and reconciliation breaks.
- !Mixing backflush and explicit issue for the same assembly, which makes component variance impossible to interpret.
- !Over-detailed routings with an operation per physical movement, which nobody keeps updated.
How an ERP-grounded AI assistant handles this
An ERPray-style assistant grounded in NetSuite can read work orders, operation tasks and the WIP account, then answer questions such as which completed work orders still hold WIP and why. It shows the saved search or SuiteQL it used and respects the user's NetSuite role. It is read-only by default, and any close or adjustment would remain a human-approved action. NetSuite's own saved searches and reports are enough if you only need one standing WIP report.
Frequently asked questions
Do I need Advanced Manufacturing to use routings?
Routings and WIP are available with the manufacturing features, but operation-level scheduling and work center capacity views belong to Advanced Manufacturing. If you only need operation costs flowing into WIP, check which features your edition includes before buying more licences, since packaging changes between releases.
What is the difference between a work order issue and a completion?
A Work Order Issue moves components from inventory into WIP and can be partial. A Work Order Completion moves finished quantity out of WIP into inventory and relieves the related cost. You can also let the completion backflush components so no separate issue is entered.
Why is the finished assembly cost different from the item cost?
Standard or average costing combines component cost with operation labor and machine cost from the routing and cost template. If the routing run rate, the cost template or component costs are stale, the completed cost will differ. Check each against the completed work order's GL impact.
How do I stop WIP building up at month end?
Close work orders as soon as they are complete, review partial completions, and run a WIP-by-work-order search each period. Anything with a balance and no activity is either unfinished or stranded variance, and each needs a decision rather than a carry-forward.
Related
How to create an assembly build or work order in NetSuite
For simple manufacturing with no routing or WIP tracking, use Transactions > Manufacturing > Build Assemblies (or Enter Assembly Build), select the assembly item, quantity, and location, and NetSuite consumes the BOM components and receives the finished item in one transaction. For multi-step production needing routing, WIP accounting or partial completions, create a Work Order (Transactions > Manufacturing > Work Orders) and process it through Work Order Completion, which requires the Advanced Manufacturing feature (SuiteSuccess Manufacturing or WMS add-on) or the Manufacturing bundle.
Error fixNetSuite MRP Not Generating Planned Orders: Causes and Fixes
When NetSuite Generate Planned Orders returns nothing, the cause is nearly always item setup or demand: the item is not set for supply planning, demand falls outside the planning time fence, existing supply already covers it, or the lead time and lot size settings prevent a suggested order. Check the item's Planning fields first, then the demand source, then the plan itself.
How-toNetSuite Outsourced Manufacturing: Subcontract Work Order Flow
NetSuite outsourced manufacturing lets you buy a finished or processed assembly from a vendor while supplying the components yourself. A purchase order drives a linked work order, components are sent to the vendor, and the item receipt brings in the assembly with component cost plus the vendor charge. It works well once the item, vendor charge and component location are set correctly.
How-toHow to use formula fields in a NetSuite saved search
In the saved search Results tab, add a column, set Field to "Formula (Text)", "Formula (Numeric)", "Formula (Date)" or "Formula (Currency)", then type an Oracle SQL expression into the Formula box using curly braces around field IDs, e.g. {trandate} or {item.custitem_weight}. Formula fields can also go on the Criteria tab so you can filter on the calculated value itself.
Error fixFix NetSuite SSS_USAGE_LIMIT_EXCEEDED Error
SSS_USAGE_LIMIT_EXCEEDED fires when a SuiteScript execution consumes all the governance units (usage points) allotted to its script type before it finishes. Fix it by checking runtime.getCurrentScript().getRemainingUsage() before expensive calls, yielding or rescheduling in Scheduled scripts, and moving heavy record-count work into Map/Reduce, which yields automatically across stages.
Error fixFix NetSuite INVALID_FLD_VALUE Error
INVALID_FLD_VALUE means NetSuite rejected a value you tried to set on a field because it does not match the field's expected type, list option, or reference record. Fix it by confirming the internal ID or text value actually exists on that field's source list and matches the field's value type (text versus list versus record reference) before setting it.
AI for ERPAI agents for NetSuite manufacturing operations
AI agents for NetSuite manufacturing: WIP tracking, routing exceptions, and work order status grounded in SuiteQL, with human approval on anything that writes back.
AI for ERPAI for NetSuite, Beyond the Built-In Text Tools
NetSuite's built-in AI covers text generation, not grounded answers on your own data. See how a private LLM over SuiteQL adds real Q&A and controls.
Stuck on Oracle NetSuite?
Talk to engineers who work inside Oracle NetSuite every week, and who build private AI that answers these questions from your own ERP data.