The quick answer
Install the Cost Variance Analysis SuiteApp, then go to Reports > Cost Accounting > Cost Variance Analysis. Set From and To so they cover the work order's actual production start date, pick the order in Work Order, and click Submit. The Summary gives planned cost, actual cost and the variance. The Cost Category and Component subtabs split the material part of it by category and by item, and Conversion Costs splits labor and machine cost by routing operation. Material plus conversion adds up to the Summary variance.
The screenshots show sample data. Person and company names are fictional. Use your own assembly, location and work order when following the steps.
Before you start
In this example, work order WO3187 built four CP-340 Circulator Pumps at Toledo Plant and is closed. All four pumps were built, yet the order cost $732.55 against a plan of $691.60. The goal is to find where the $40.95 came from.
Cost Variance Analysis is a SuiteApp, so it isn't there until an administrator installs it, and its documentation lists a OneWorld account as a requirement. Once it's installed and your role can use it, it appears under Reports > Cost Accounting, next to Costed Bill of Materials. A few more things decide whether it's useful for a given order:
- It doesn't support work orders for standard-cost assemblies. The pump in this example uses average costing. Check the SuiteApp's documentation for the costing methods your release supports.
- The work order has to be Released, In Process or Closed, and it needs an actual production start date. For an order that's still in process, the actual columns show only what has been issued and completed so far.
- If none of the component items has a cost category, the Cost Category subtab has no rows.
- The Conversion Costs subtab needs Manufacturing Routing and a routing on the work order. Planned conversion cost comes from the work order's operations, their resources and rates, and setup and run times. Actual conversion cost comes from the setup and run times entered on the work order completions. An operation can carry labor cost, machine cost or both, depending on its setup.
This example is a WIP work order with a routing, so it uses Manufacturing Work In Process and Manufacturing Routing. You also need access to the work order and its issues and completions.
01. Open Cost Variance Analysis
Go to Reports > Cost Accounting > Cost Variance Analysis. The page opens with a notice: enter a work order number in Work Order to analyze one order, or pick an assembly in Item to list its work orders.
Under Filters, Item, Location and Work Order are empty. From and To are required. In this example they default to 07/27/2026 and 09/25/2026. They filter work orders by actual production start date, and the range can't be longer than a year. WO3187 started on 08/17/2026, so the defaults cover it.
02. Select the work order and submit
- In Item, type CP-340 Circulator Pump. The field starts suggesting values after three characters.
- In Location, type Toledo Plant.
- In Work Order, choose WO3187_08/17/2026. The field lists each order as its number followed by its actual production start date.
- Click Submit.
Item and Location are optional. They narrow the Work Order suggestions when you have a lot of orders in the date range.
After Submit, Item and Location show the work order's values and turn read-only. Download and Email appear next to Submit and Reset. Use Reset when you want to start over with a different order.
03. Read the Summary
Start with quantity. Planned Build Quantity is 4, Actual Built Quantity is 4 and Build Quantity Variance is 0, with Work Order Status Closed. The order built exactly what it planned, so the cost comparison is like for like. That doesn't rule out extra usage inside the order, which is what the subtabs are for.
Then cost:
- Planned Cost $691.60, Actual Cost $732.55, Cost Variance $40.95. Cost Variance (%) is 5.9211%, the variance divided by planned cost.
- Per unit: Planned Cost Per unit $172.90, Actual Cost per unit $183.14, Cost Variance per Unit $10.24.
04. See which cost categories went over
Below the Summary, the Cost Category subtab is open. It groups component cost by each item's cost category. Labor and machine cost aren't in it.
- Castings & Machined Parts: 245.00 planned, 263.75 actual, 18.75 over (7.6531%).
- Seals & Hardware: 42.60 planned, 52.80 actual, 10.20 over (23.9437%).
- Motors: 256.00 planned and actual, no variance.
The totals are 543.60 planned and 572.55 actual, 28.95 over. That's the material share of the $40.95. Nonzero variances are colored: positive in red, negative in green. For cost, red means actual came in over plan.
05. Trace the material variance to components
Open the Component subtab. It has one row per component, with cost and quantity side by side.
- IMP-12 Impeller: Planned Quantity 4, Actual Quantity 5, Quantity Variance 1 (25.0%). Planned Cost 75.00, Actual Cost 93.75, Cost Variance 18.75 (25.0%).
- SEAL-22 Shaft Seal Kit: Planned Quantity 8, Actual Quantity 11, Quantity Variance 3 (37.5%). Planned Cost 27.20, Actual Cost 37.40, Cost Variance 10.20 (37.5%).
FST-10, GSK-7, HSG-340 and MTR-05 match plan. On both variance rows the cost variance has the same percentage as the quantity variance. That fits extra parts consumed at the planned unit cost, with no price effect. The report doesn't name the cause, though, so confirm it on the component issues before you call it a usage problem. If a row showed matching quantities and a cost variance anyway, look at the item's costing and the issue transactions instead.
With a long bill of materials, check Only Display Variance to hide the rows that match plan.
06. Trace the conversion variance to the routing operation
Open the Conversion Costs subtab. It lists the routing operations with total, labor and machine cost, each planned and actual.
Operation 20, Press Fit, has Planned Total Cost 60.00 and Actual Total Cost 72.00, a Total Cost Variance of 12.00 (20.0%). All of it is labor: Planned Labor Cost 48.00, Actual Labor Cost 60.00, Labor Cost Variance 12.00 (25.0%). Machine cost is 12.00 planned and actual. Operations 10 Machine Housing and 30 Pressure Test match plan.
The report shows where the cost went, not why. For the why, look at the setup and run times entered on the operation 20 completion and at the operation's labor resources and rates.
07. Reconcile the variance to the Summary
The conversion totals are 148.00 planned and 160.00 actual. Add them to the material totals from step 04 and you get the Summary:
- Planned: 543.60 material + 148.00 conversion = 691.60
- Actual: 572.55 material + 160.00 conversion = 732.55
- Variance: 28.95 material + 12.00 conversion = 40.95
If the parts don't add up on your own order, check the work order's issues and completions, completions without setup and run times, and the SuiteApp's documented limits on the number of completions and routing operations. Past those limits, later operations and the actual cost can show as zero.
Check the result
- Build Quantity Variance is 0, so the per-unit comparison is like for like.
- Cost Variance is $40.95 on $691.60 planned, 5.9211%.
- Material totals 543.60 planned and 572.55 actual, 28.95 over, all from IMP-12 and SEAL-22.
- Conversion totals 148.00 planned and 160.00 actual, 12.00 over, all labor on operation 20.
- 28.95 plus 12.00 equals the 40.95 in the Summary.
The next stop is the work order itself: the component issues that consumed the extra IMP-12 and SEAL-22, and the operation 20 completion times. If the overrun is going to recur, fix the BOM quantity, the routing's run rate or the process on the floor.
Cost Variance Analysis is analysis only and doesn't post anything. Closing a WIP work order is a separate step, and what Work Order Close posts depends on your configuration, so don't assume it equals the variance in this report. Check the close transaction's GL Impact for that.
Common questions
Where is Cost Variance Analysis in NetSuite?
Once the SuiteApp is installed, it's under Reports > Cost Accounting > Cost Variance Analysis, next to Costed Bill of Materials. If you don't see it, either the SuiteApp isn't installed or your role doesn't have access to it.
How do I compare planned and actual cost for one work order?
Open Cost Variance Analysis, set From and To to cover the order's actual production start date, choose the order in Work Order and click Submit. Item and Location are optional filters. For WO3187 the Summary shows Planned Cost $691.60, Actual Cost $732.55 and Cost Variance $40.95.
Why did my work order cost more than planned when it built the right quantity?
A Build Quantity Variance of 0 only tells you the order built what it planned. The order can still consume more components or labor than planned along the way. WO3187 built all four pumps but used one extra impeller, three extra seal kits and 12.00 of extra labor on operation 20.
How do I see which components caused a material variance?
Open the Component subtab. It puts planned and actual quantity and cost side by side for each component. On WO3187, IMP-12 went from 4 to 5 (+18.75) and SEAL-22 from 8 to 11 (+10.20). Check Only Display Variance to hide the components that stayed on plan.
Why doesn't the Cost Category total match the Summary?
The Cost Category subtab covers component cost only, and the Summary also includes conversion cost. Here the category totals are 543.60 planned and 572.55 actual, a 28.95 variance. The other 12.00 of the $40.95 is labor on the Conversion Costs subtab.
How do I see labor and machine variances by routing operation?
Open the Conversion Costs subtab. It lists the routing operations with total, labor and machine cost, planned and actual. On WO3187, operation 20 Press Fit used 60.00 of labor against 48.00 planned, and its machine cost stayed at 12.00.
Why is the Conversion Costs subtab empty?
The work order has no manufacturing routing. Conversion Costs needs a routing on the work order, and actual labor and machine cost come from the setup and run times entered on its completions.
Does Cost Variance Analysis work for standard cost items or open work orders?
It doesn't support work orders for standard-cost assemblies. It works for Released, In Process and Closed work orders that have an actual production start date. On an order that's still in process, the actual columns only reflect the issues and completions recorded so far.
What do the red and green numbers mean?
Nonzero variances are colored. Positive ones are red, which for cost means actual came in over plan. Negative ones are green, meaning under plan. Zero variances aren't colored.
Is this the same variance NetSuite posts when I close a WIP work order?
Not necessarily. Cost Variance Analysis is analysis only and doesn't post anything. What Work Order Close posts depends on your configuration, so check the close transaction's GL Impact for the ledger amount.
Can I open Cost Variance Analysis from the work order?
The SuiteApp documentation describes a Cost Variance Analysis button on eligible work orders viewed in view mode. It isn't available on Planned or Released orders, outsourced orders, or orders without an actual production start date. This guide uses the Reports menu and picks the order in the Work Order field.