Check opening balances, deliveries, issues, remaining quantity, and returns to find why a material unit cost does not tie out.
Key takeaways
- Pick one product and one period, and find an independent number to compare against.
- Confirm the costing method before checking entries.
- Check quantity and value together, including returns.
- Find the first entry where the running balance differs from your expected balance.
Why a unit cost moves
In an inventory tool, the unit cost is the result of a long chain of stock entries, and each delivery, issue, and return can move it. When the figure on screen does not match your bid sheet or your purchase records, the cause is usually one of those entries, not the price list.
A tie-out only works when you have an independent number to compare against. That might be a vendor bill, a physical count, or the cost you used when you priced the job. Without one, you are checking the tool against itself, and an error that has been carried through every entry will look perfectly consistent.
Some movement is expected. When fixed costs are spread over a changing number of units, the unit cost changes with volume. OpenStax gives a plain example: making 500 units during one month produces a unit cost of $2, while making 2,000 the next month produces $0.50. ( OpenStax on predetermined overhead rates) The same total spread over four times as many units drops to a quarter of the unit cost. That example is about overhead, not material, but the lesson carries over: a unit cost depends on the quantity it is divided by.
Material is usually closer to a variable cost. OpenStax notes that the variable unit cost of a T-shirt does not change as the number of T-shirts produced increases or decreases. ( OpenStax on basic cost behavior patterns) So if your material unit cost moves with volume, look for something other than the purchase price being spread into the number. Overhead allocated into a material cost, a freight charge spread across the wrong quantity, or an old price left in a balance are all worth checking. For the division itself, see lot cost to unit cost.
Inventory tools also differ in how they value stock when prices change. Many let you pick a costing method, and that choice decides how a price change or a return shows up in the unit cost. Before you start a tie-out, find out which method your tool uses for the product in question.
The five checks below follow the order in which entries usually happen: opening balance, deliveries, issues, remaining quantity, and returns. The examples come from Odoo's documentation on average price valuation for returned goods, which uses a table product as its running example. Your inventory tool will use its own labels, so match the logic rather than the names on screen. This is general guidance, not accounting advice. Your accountant or the tool's support team should settle any question about how your books must be kept.
Before you start
Pick one product and one period. Tie-outs go faster when you work on a single product, from its first movement in the period to its last. Export or print the stock moves, the vendor bills, and the returns for that product over the same date range. Note the unit cost your tool shows at the end of the period and the unit cost you expected, and write both down. Then open the costing setting for the product so you know which method the tool applied. Only after that should you start the checks. Working from the same printed list each time keeps the record steady while you look at it, and makes it easier to show someone else what you did.
Check 1: confirm the opening balance
Every unit cost starts from an opening position, and the first entry sets the base for everything after it. In the Odoo example, that base is empty: "Initially, the product stock is 0, so all values are $0." ( Odoo, average price on returned goods) That sounds too simple to check, but opening balances are a common place for a tool to get a quantity without a value, or a value without a quantity.
This matters because unit cost is value divided by quantity. If the opening value is missing, the unit cost can look reasonable at first and still be wrong, because the error stays in the balance until something corrects it. If the opening quantity is wrong, every later division is wrong too.
Check these items:
- The opening quantity matches a recent physical count or a trusted report.
- The opening value is loaded along with the quantity, not left at zero.
- Balances imported from an older system carry their value, not just the count.
- The opening entry is dated before the first delivery, so the tool replays events in the right order.
- A product with no history in the tool starts at zero quantity and zero value, as in the Odoo example, until its first delivery.
A count with no value is easy to overlook. It can leave you with a unit cost that looks reasonable from the first delivery onward and is still wrong. If the opening number is off, every later entry inherits the error, so fix it here before you check anything else. Write down where the opening figures came from so you know where to look if they are questioned later.
Check 2: match each delivery to the vendor bill
Receiving material does two things at once. Stock goes up, and the company owes the vendor. The Odoo example shows the liability side: "The Stock Input account stores $80 of credit owed to the vendor." ( Odoo, average price on returned goods) The same example describes an $80 credit to the account set as Stock Interim (Received) by default.
A unit cost tie-out has to follow both stock value and the vendor bill. If the value that came into stock does not match the vendor bill, the stock figure will not match what you paid. You may also find balances that stay open long after the bill should have matched them. That can be a sign that the delivery and the bill were not linked correctly.
Check these items on every delivery:
- The quantity on the delivery matches the vendor bill line by line, in the same unit of measure.
- The value uses the price on the bill. If the purchase order price differs, find out which price the tool used.
- Partial deliveries and partial bills match to the right quantities, so nothing is counted twice.
- Freight, handling, and other charges on the bill are handled the way your tool expects, and are not left out of the unit cost by accident.
- Interim accounts show no balance left open after matching.
A common mistake is to tie the bill to the purchase order and assume the delivery matches. Check the delivery itself. A bill can be correct while the delivery was entered with a different quantity or a different unit, and the unit cost will show the difference.
Check 3: confirm that issues are negative
Outgoing material should reduce stock. The Odoo example makes the sign explicit: "Because 10 tables are being sent out to customers, the incoming quantity is -10." ( Odoo, average price on returned goods) An outgoing line entered as a positive number adds stock instead of removing it, and both the on-hand count and the value go wrong from that point on.
An issue changes the quantity and the value at the same time. A sign error moves both the wrong way, and it is easy to miss in a long list. The fastest way to catch it is to look for a symptom. An on-hand quantity that rises after a shipment almost always means an entry went in the wrong direction.
Scan the move or adjustment report for these problems:
- Every outgoing line carries the negative sign your tool uses for issues.
- No issue was entered as a positive number by someone who thought they were receiving.
- Each issue links to the job, order, or work order that used the material, so usage can be traced.
- The cost on each issue line is the cost in effect when the material left stock, not a cost typed in later.
- Adjustments for scrap, shrinkage, or count differences are recorded as their own entries, not hidden inside a shipment.
If a shipment was entered in the wrong direction and then corrected by a second entry, check that the correction did not also reverse the original shipment. Two corrections can produce a clean total while the detail is still broken.
Check 4: tie the remaining quantity to the count
The on-hand quantity is the denominator in your unit cost, so it has to be right. The Odoo example is simple arithmetic: "Only 2 tables remain after shipping out 10 tables from 12." ( Odoo, average price on returned goods) Checks this basic are easy to skip, because the value looks plausible on its own. A wrong quantity makes a correct value produce a wrong unit cost, and the error hides inside the division.
Work through it in four steps:
- Start with the quantity on hand before the shipment. In the example, that is 12 tables.
- Subtract the 10 that went out. Two remain.
- Compare the result with the quantity the tool shows.
- If the two differ, find the entry that caused the gap before you look at the value.
Once the quantity ties, the value should tie to it. Remaining value should equal the unit cost times the remaining quantity. If the quantity ties but the value does not, the count is right and the problem sits in the value entries from Checks 2 and 3. If neither ties, work the quantity first, because the value is built on top of it.
A cycle count against the shelf is the strongest test of both, since it checks the record against what is physically there. Count the product you are tying out rather than the whole warehouse, so the result points to one item.
Check 5: check that returns reverse the value
Returns touch both the quantity and the value, so check both when a unit cost drifts. The Odoo example shows value moving back out of stock: "Debit Stock Input account $10 to move the table from stock to stock input." ( Odoo, average price on returned goods) In that walkthrough, a single table's $10 moves from the stock side to the stock input side, so both accounts change together.
The Odoo page is about average price on returned goods. A return posted to only one side, either the quantity or the value, leaves the unit cost wrong. The error may not show up until someone compares the number to a purchase record or a count. That is why returns are worth checking when a number was right last month and is off now.
For each return, check:
- The return points at the original delivery or issue it reverses.
- The returned quantity carries the sign convention you confirmed in Check 3.
- The value returned matches the value the goods left stock at. Confirm which value the tool used rather than assuming it used the current price.
- Both the quantity and the value moved, not just one of them.
- After the return posts, recompute the unit cost and compare it with the accounting records.
Partial returns deserve their own look. A return of part of a delivery changes the remaining quantity but not the whole, so check that the balance left behind matches what is physically on the shelf.
Illustrative example: checking the division
Suppose the illustrative on-hand value is $500 and the illustrative quantity is 50 units. Dividing $500 by 50 gives an illustrative unit cost of $10. Compare that result with the tool's displayed cost. Matching arithmetic checks the division; it does not prove that the opening balance, deliveries, issues, or returns were entered correctly. Check those entries against the bills and the count before accepting the result.
Common mistakes that break a tie-out
- Comparing the unit cost to the latest purchase price instead of the average or method your tool uses. The two can differ, and that difference looks like an error when it is not.
- Fixing the value without fixing the quantity. The unit cost will still be wrong.
- Correcting an entry with a new entry that is not linked to the original, so the history shows two events where there was one.
- Rounding each entry separately and then summing, so small differences build up.
- Treating a bid price as the cost. A bid is a plan, not a record of what the material cost.
- Forgetting that a unit cost moves with the quantity it is divided by, as the OpenStax overhead example shows.
For a related quantity check before pricing, see takeoff rounding error.
Run the checks in order
Use this routine each time a unit cost does not tie out:
- Start at the opening balance and confirm both quantity and value.
- Walk each delivery and match it to the vendor bill, quantity and value.
- Walk each issue and confirm its sign and quantity.
- Compare the final on-hand quantity to a count.
- Walk each return and confirm it reverses the right quantity and value.
- Divide the on-hand value by the on-hand quantity, and compare the result to the unit cost you are using.
If the final number does not match, do not search the whole history at once. Compare the running balance after each entry with what you expected, and find the first entry where the two disagree. That is usually where the error is. Note small rounding differences and check their cause before accepting them. Differences that grow with each entry need a fix before the number goes into a bid.
A unit cost that ties out is one you can defend. Keep a short record of the checks you ran, the date, and any difference you accepted. When someone questions a number later, that record shows how you arrived at it.
Today, choose one product whose cost looks wrong and compare its opening quantity and value with a physical count or trusted report.
Questions and answers
What should I compare the unit cost against?
Use an independent record, such as a vendor bill, physical count, or the cost used to price the job.
Does matching the latest purchase price prove the cost is right?
No; the costing method determines how price changes appear in the unit cost.
What should I check when quantity matches but value does not?
Check the value entries for deliveries and issues, then confirm that returns moved value as well as quantity.