Acumatica · Customization

Acumatica Cost Rollup and Standard Costing

How Acumatica rolls up the standard cost of a finished good from its BOM and routing — material, labour, machine, overhead — and the variance analysis that catches production drift.

John Kihiu12 min read

Standard costing in Acumatica Manufacturing is one of those areas where the mechanics are simple but the sequencing is unforgiving. The cost rollup itself is a straightforward BOM explosion with rates applied; the pain comes from running it in the wrong order, against the wrong BOM revisions, or forgetting that the rollup and the cost update are two separate steps with very different consequences.

I've implemented standard costing for a food manufacturer and a sheet-metal shop, and both projects taught the same lesson: treat the annual (or quarterly) cost update like a deployment, with a checklist, not like a button you press.

Rollup vs update — two different buttons

The Cost Roll-up (AM508000) screen calculates what an item should cost by exploding its BOM: material at each component's standard (or pending) cost, labor from routing operation times multiplied by work center rates, machine cost, fixed and variable overhead applied per the overhead records, and outside-process costs from subcontract operations. The result lands in the pending standard cost fields. Nothing in inventory changes yet — you can roll up all day with zero accounting impact.

The Cost Update step is the one with teeth. It promotes pending cost to current standard cost and revalues on-hand inventory for standard-cost items, posting the revaluation difference to the account you configured on the posting classes. Once it runs, every issue, receipt and variance calculation uses the new standard.

Never update mid-period without a reason

Revaluation posts to the GL on the update date. Finance almost always wants this on a period boundary. I schedule rollup during the last week (iterate freely), and the update on the first morning of the new period, after a database backup.

Where each cost element comes from

Multi-level rollups explode bottom-up: purchased items first, then level-1 subassemblies, up to finished goods. The screen handles the leveling for you, but only for the site and BOM revisions matching your filter — which brings up the classic trap.

The BOM revision trap

The rollup uses the BOM revision that is effective on the rollup date you enter. If engineering has a revision starting next month and you roll up dated today, you cost the old BOM. When the new revision goes live, actual production consumes different materials than the standard assumed, and you get a steady drip of material usage variance nobody can explain. My rule: the rollup date and the cost update date must match, and both must fall inside the effectivity window of the revisions you intend to cost.

Checking the rollup before you commit

Before the update, I run a comparison query between pending and current standard cost and hand it to the controller. Anything moving more than a threshold gets a human look:

SQL
SELECT i.InventoryCD,
       ic.StdCost        AS CurrentStd,
       ic.PendingStdCost AS PendingStd,
       CASE WHEN ic.StdCost = 0 THEN NULL
            ELSE (ic.PendingStdCost - ic.StdCost) / ic.StdCost * 100
       END AS PctChange
FROM InventoryItem i
JOIN INItemCost ic ON ic.InventoryID = i.InventoryID
WHERE ic.PendingStdCost <> ic.StdCost
ORDER BY PctChange DESC;

A 40% jump on a subassembly almost always means a routing time was fat-fingered or an overhead rate doubled, not that the world changed. Finding it before revaluation is a five-minute fix; finding it after means a correcting journal and an awkward meeting.

Variances — the payoff

The entire point of standard costing is that production orders now generate meaningful variances: material usage (consumed more/less than the BOM said), labor efficiency (clocked more hours than the routing said), rate variances, and purchase price variance on the buy side. In Acumatica these post when the production order closes. If your team never closes orders — and I've seen shops leave hundreds open for months — variances pile up in WIP and the standard-cost system tells you nothing. Closing discipline is a prerequisite, not an optimization.

Wrapping up

Cost rollup is safe to run and rerun; the cost update is a period-boundary event with GL impact. Audit zero-cost purchased items, watch BOM revision effectivity dates, diff pending vs current cost before promoting, and enforce production order closing so the variances mean something. Do those four things and standard costing in Acumatica is boring — which is exactly what you want a costing system to be.

John Kihiu
Acumatica ERP Developer · Laravel Engineer

Independent software engineer in Nairobi specialising in Acumatica customisations, Laravel backends, and tax fiscalisation integrations across East and Southern Africa.