Friday, 4 p.m. Month-end close. Gross margin reads 34 %, same as last month. Everyone signs off and leaves for the weekend.
What the report does not say: the reference representing 40 % of revenue carries a cost price calculated in 2019. Before the raw material supplier changed. Before the rework operation became routine on two parts in ten. Before the batch size dropped from 500 to 80 because the customer now orders more often and less at a time.
That reference is not making 34 % any more. It might be making 6. It might be making less. And the consolidated margin still looks reassuring, because other products cover for it.
Key points
- Standard cost is a frozen assumption. Actual cost is what the manufacturing order really consumed.
- The gap between the two almost always hides in six places: real time, setup time, scrap and rework, material overconsumption, subcontracting, and landed costs.
- A healthy consolidated margin hides two or three loss-making references very well.
- Without shop floor time capture, no ERP can compute an actual cost. It is an organisational question before it is a software one.
Standard cost or actual cost: what is the difference?
Standard cost is a reference value fixed in advance: so much material, so many minutes, so many euros per hour. It values inventory and underpins selling prices. Its great strength is stability; its great weakness is that it is only revised when someone remembers to.
Actual cost is what a given manufacturing order really consumed: the quantities actually issued, the time actually spent at each work centre, the scrap actually produced. It varies from order to order, and that variation is exactly what makes it informative.
The point is not to choose between them. It is to measure the gap. A stable gap is a miscalibrated standard, easily corrected. A widening gap is a production problem worth walking down to the shop floor for.
The six costs that vanish between quote and invoice
- Time actually spent. The routing says 45 minutes. The operator takes 68 since the part changed dimension. Nobody reported it, because nobody measured it.
- Setup time amortised over the wrong batch size. A 90-minute setup over 500 parts costs 11 seconds per part. Over 80 parts it costs 68. The standard cost is still based on 500.
- Scrap and rework. A scrapped part costs the material, the time already spent, and the time to make it again. Until it is declared, it is free inside the system.
- Material overconsumption. The bill of material says 2.4 kg, the shop issues 2.9 because offcuts are not recoverable on short runs.
- Subcontracting and its transport. The external operation is usually budgeted; the two-way transport and the admin time around it rarely are.
- Landed costs. Freight, duty and insurance on imported materials arrive on a separate invoice a month later, and never land on the product concerned.
Why consolidated margin will not save you
A consolidated margin is an average, and an average hides a distribution. In most industrial SMEs we assess, reality looks like this: a handful of very profitable references, a majority of decent ones, and two or three sold at or below cost, usually the oldest and highest volume.
Those references go unnoticed precisely because they sell well. High volume looks like commercial success right up until someone looks at real unit margin.
How Odoo computes the actual cost of a manufacturing order
Odoo values every manufacturing order from what actually happened, provided the data is captured. On the projects we run at Prism Technology, the building blocks are:
- A coherent costing method: standard, FIFO or average cost, chosen per product category and owned. It is the structural decision of the project, and it is taken with the accountant, not against them.
- An hourly cost per work centre, covering machine, energy and occupancy, separate from labour cost.
- Real work order times, captured on the shop floor, replacing routing time in the actual cost calculation.
- Scrap declared as a stock move, so lost material shows up in value and not only in quantity.
- Landed costs allocated across the receipts concerned, by weight, value or volume, so they join the product cost instead of a general overhead account.
- Estimated versus actual cost comparison directly on the manufacturing order, line by line: components, operations, total and unit cost.
- Analytic accounting to aggregate those variances by product, family, customer or production line.
The prerequisite: the shop floor has to clock in
There is no shortcut. Without starting and stopping work orders, actual cost is fiction computed on theoretical times. So the question is not how to convince operators to clock, but how to make clocking painless.
Three things work, and we implement them systematically: a tablet screen at the station with two buttons and nothing else; automatic start when the work order opens, so the normal case requires no action at all; and visible feedback for the operator, because nobody keeps entering data whose result they never see.
What the data lets you decide
Illustrative example, typical of our client base: an 80-person industrial SME with around a hundred active references.
Actual costing is not an accounting exercise, it is a commercial one. Once the variance is measured per reference, three decisions become possible that were undecidable before:
- Reprice a specific product with a numbers-based case, instead of a flat increase across the whole catalogue.
- Change batch size or setup frequency, when the variance comes from setup rather than material price.
- Drop or renegotiate a reference, knowing exactly what it costs to build.
Frequently asked questions
Do you need FIFO or average cost to get actual costing?
No. You can keep standard cost for inventory valuation and still track the variance to actual on manufacturing orders. The method depends on your purchase price volatility and your accounting constraints; decide it case by case, with your accountant.
Do operators need to clock to the minute?
No, and expecting it is a classic mistake. Clocking at the start and end of a work order is more than enough to reveal a 30 % routing error. Minute-level precision costs more than it returns.
How long before the numbers are usable?
Once clocking runs, the first variances appear within weeks. It usually takes two to three months to accumulate enough orders per reference to tell a structural variance from a one-off.
Take action
Prism Technology is an official Odoo partner in Belgium, based in Walloon Brabant, focused on manufacturing, inventory and supply chain. Pick your best-selling reference: in 30 minutes we rebuild its actual cost with you, and you will see immediately whether it matches the one behind your price list.
👉 Book your 30-minute demo — Contact us