The quick answer
Open Reports > Inventory/Items > Stock Ledger for the month and compare Beginning Average Cost with Ending Average Cost on the item's row. Then open Reports > Inventory/Items > Inventory Valuation > Detail for the same dates to find the transaction that came in at a different unit cost. With ordinary average costing, the new average is (beginning value + value that came in) divided by (beginning quantity + quantity that came in).
The screenshots show sample data. Company, person, item and location names are fictional. Use your own records and values when following the steps.
Before you start
You need the Inventory feature with Multi-Location Inventory (the Stock Ledger depends on it), and a role that can run reports for the subsidiary and locations you're looking at. This example uses an assembly built through work orders with WIP, costed with average costing, for the month of October 2026, and it assumes costing for the item has finished processing. Your columns, filters and layout can differ with your features, subsidiary setup and report customization.
The arithmetic below is average-cost behavior in a simple case. FIFO, standard and group average costing work differently, and negative inventory, backdated transactions, landed cost and deferred costing can change the numbers. Use the same dates and filters on both reports, and rerun them before you explain a movement to someone else.
01. Open the Stock Ledger
Go to Reports > Inventory/Items > Stock Ledger. The report opens on Date this month, From 10/01/2026 and To 10/31/2026, with one row for each item and location. If you change a date, the subsidiary context or another filter, click Refresh.
02. Read the assembly's row
Type DGR-FG in Find at the bottom of the report to jump to its row. Find only moves to and highlights the match, it doesn't filter the report. The row begins the month with 40 units at a Beginning Average Cost of $12.40, so Beginning Inv On-hand Value is $496.00. Receipts is 15, Total Input Quantity is 15 and Value of Inputs is $133.20, because work order completions count under Receipts. The month ends with 55 units, Ending Inv On-hand Value $629.20 and an Ending Average Cost of $11.44.
The average fell from $12.40 to $11.44 while the quantity went up. The Stock Ledger summarizes a period, so it doesn't say which transaction did that.
03. Check an item that only shipped
Type SCR-FG in Find. This scrub paste only had 30 units shipped: Sales is 30 and Value of Outputs is $93.00. Its Ending Average Cost is $3.10, the same as its Beginning Average Cost. With average costing, units that leave stock normally leave at the average, so shipping doesn't move it by itself. Something that came in at a different cost moved the degreaser's.
04. Open Inventory Valuation Detail
Go to Reports > Inventory/Items > Inventory Valuation > Detail. It opens on the same dates and lists the transactions behind each item. In the default layout it's grouped by item type and then by item, with a Total row under each item. Use the same date range and filters you used on the Stock Ledger.
05. Find the transaction and check the average
Type DGR-FG in Find. The item row shows the opening 40 units and $496.00. One transaction follows: Work Order Completion WCO2417 on 10/13/2026 for 15 units at a Unit Value of $8.88, an Inv. Value of $133.20. Total - DGR-FG is 55 units and $629.20.
Now check the Stock Ledger's number yourself: ($496.00 + $133.20) divided by 55 is $11.44. The completion came in at $8.88 a unit, below the $12.40 average, so it pulled the average down. The detail report has no running-average column, so you work the average out from the opening row and the transaction rows.
Check the result
- With the same dates and filters and finished costing, the item row's opening value plus the transaction's Inv. Value equals the Total row's value: $496.00 plus $133.20 is $629.20, subject to rounding.
- The Total row's value divided by its quantity matches the Stock Ledger's Ending Average Cost, $629.20 divided by 55 is $11.44.
- The transaction's Unit Value, $8.88, is lower than the beginning average, $12.40, which explains the drop in this example. Later cost adjustments or backdated activity could change the picture.
Common questions
Where do work order completions show up on the Stock Ledger?
Work order completions count under Receipts, along with item receipts, standalone bills and assembly builds. Customer returns and positive adjustments appear separately under Other Inv Inputs. In the example, the 15 units from WCO2417 are in Receipts, Total Input Quantity and Value of Inputs.
How is the new average cost worked out after a completion?
The Stock Ledger's ending figures are the beginning quantity plus inputs minus outputs, and the beginning value plus the value of inputs minus the value of outputs. Ending average cost is ending value divided by ending quantity. In this simple example only one input came in and the outputs left at the average, so it reduces to ($496.00 + $133.20) divided by (40 + 15), which is $11.44. Treat that as an illustration, not a universal costing rule: other costing methods, negative inventory, backdated transactions and deferred costing can change the result.
Does shipping an item change its average cost?
Normally not. A fulfillment removes quantity and value at the applicable average cost, so it doesn't change the average by itself while inventory stays positive, like SCR-FG at $3.10. Negative inventory, later receipts, costing adjustments and backdated activity can still change the resulting cost.
Why doesn't the Stock Ledger show which transaction moved the average?
It's a period summary, normally one row for each item and location. It tells you what came in and went out, not which documents. Use Inventory Valuation Detail, which lists each transaction with its document number, quantity, unit value and inventory value. Match the dates, location, subsidiary and other filters so the transaction is actually in scope.
Is a work order completion's Unit Value something I enter?
No. The value is calculated from the work order's costing, such as components, manufacturing charges and your costing preferences, depending on your setup. Later or deferred costing can recalculate it after the transaction is saved.
Why might my numbers not match this example?
Your features, filters and customization can change the columns, the date range and the subsidiary context. Different subsidiary, location, currency or accounting book scope, pending costing, backdated transactions, rounding, and journal entries to inventory accounts can all make two reports disagree. The Stock Ledger's average is also a reference for the period and can differ from the average cost on the item record.