Most manufacturing companies know their overall margin at month-end. Very few know the real profitability of each individual production order — in real time, while production is still happening.
This is not a minor operational detail. It is the difference between a management team that reacts to problems after the fact and one that can identify and correct margin erosion while there is still time to act.
"I do not care if someone comes at 8:15 or 8:30, but I do care to know how much time they took to do a specific task. Odoo helps us a lot with time tracking and timesheeting. It is automatically linked to the project so that I can have a live view of the profitability of each and every project.
Axel Soyer, CEO of Desimone

- What is production order profitability and why is it so rarely tracked?
- The four components of real production order cost
- Standard cost vs actual cost: understanding the variance
- From production cost to production profitability
- Why most Odoo implementations don't deliver this and how to fix it
- A practical implementation roadmap
- Conclusion: profitability is a management tool, not an accounting exercise
What is production order profitability and why is it so rarely tracked?
Production order profitability is the difference between the revenue generated by a production order and the actual total cost incurred to fulfil it including materials, labour, machine time, overhead and any rework or scrap.
It sounds simple. In practice, most manufacturing companies cannot calculate it accurately because the data lives in too many places:
- Material costs are in the ERP or accounting system
- Labour hours are in a timesheet tool, a paper form, or nowhere at all
- Machine time is estimated, not measured
- Rework and scrap are rarely captured systematically
- Overhead allocation is done at month-end, not per order
The result is that profitability is calculated in aggregate total revenue minus total cost for the period rather than per order. Management knows the company made or lost money. They rarely know which orders were profitable and which were not.
This creates a dangerous blind spot. Unprofitable orders are repeated. Pricing decisions are made without accurate cost data. Operational inefficiencies are invisible until they become financial problems.
The four components of real production order cost
To calculate true production order profitability, you need to capture four cost components accurately — not at month-end, but in real time, as production happens.
1. Material costs
Material cost is the value of all components consumed in a production order. It sounds straightforward, but there are several layers of complexity:
Standard cost vs actual cost: most ERP systems value production at standard cost, a predetermined price per component. But actual purchase prices fluctuate. If your standard cost for a key component is €10 but you paid €13 in the last purchase, your production cost is understated by 30%.
Scrap and excess consumption: if operators consume more material than the BOM specifies due to defects, setup waste or process variability, the excess consumption must be captured and costed. Many systems miss this entirely.
Multi-level BOM cost rollup: for products with complex multi-level BOMs, the total material cost must roll up correctly through every sub-assembly level. Errors in BOM structure or component pricing at any level cascade into incorrect finished product costs.
In Odoo, material costs are captured automatically at the point of consumption, using either standard cost or average cost valuation depending on your configuration. Excess consumption is recorded by operators on the shop floor and immediately reflected in the order cost.
2. Labour costs
Labour is typically the most variable and least accurately tracked component of production cost.
Time tracking at task level: to calculate accurate labour cost per production order, you need to know how much time each operator spent on each specific task, not just total hours worked per day. This requires time tracking at the work order level, not just the employee level.
Cost per operator: different operators have different hourly costs depending on their role, seniority and employment terms. A senior technician and a junior operator do not cost the same per hour. Accurate labour costing requires mapping operator time to the correct hourly rate.
Indirect labour: setup time, changeover time, cleaning time activities that are necessary for production but not directly productive. These costs are real and must be allocated to production orders if your cost model is to be accurate.
In Odoo, operators record their time directly on work orders using the Shop Floor module from a tablet or smartphone on the factory floor. Each time entry is automatically linked to the production order and costed at the operator's configured hourly rate.
3. Machine and work center costs
Every work center machine, production line, workstation has an associated operating cost: energy, depreciation, maintenance, tooling. This cost must be allocated to production orders based on actual machine time used.
In Odoo, each work center has a configured cost per hour. When a work order is completed and the actual duration is recorded, the machine cost is automatically calculated and posted to the production order.
4. Overhead allocation
Manufacturing overhead factory rent, supervision, utilities, quality management must be allocated to production orders to calculate fully-loaded cost. The most common approach is to define an overhead absorption rate applied to machine hours, labour hours or production volume.
Odoo supports overhead cost configuration at the work center level, ensuring that overhead is allocated consistently and automatically to every production order without manual journal entries at month-end.
Standard cost vs actual cost: understanding the variance
Once you have captured all four cost components, the next step is comparing what you expected to spend (standard cost) with what you actually spent (actual cost). This variance analysis is where the real management value lies.
Material price variance
The difference between the standard price of a component and the actual purchase price paid. A consistently negative material price variance may indicate that your standard costs are out of date, that your purchasing team is not hitting negotiated prices, or that market prices have moved.
Material usage variance
The difference between the quantity of material specified in the BOM and the quantity actually consumed. A consistently positive usage variance (consuming more than planned) may indicate process problems, quality issues with incoming materials, or BOM errors.
Labour efficiency variance
The difference between the standard labour time for an operation and the actual time recorded. A consistently negative efficiency variance (taking longer than planned) may indicate a training gap, a process bottleneck, or an equipment problem.
Labour rate variance
The difference between the standard labour rate used in costing and the actual rate of the operators who performed the work. This variance is often ignored but can be significant if high-cost operators are performing work that was costed at lower rates.
In Odoo, these variances are calculated automatically and posted to analytical accounts when a production order is closed. With proper analytical accounting configuration, they are visible in real time not just at month-end.
From production cost to production profitability
Knowing your production cost is necessary but not sufficient. To calculate profitability, you need to connect production cost to revenue.
Make-to-order manufacturing
In make-to-order manufacturing where each production order is linked to a specific customer order, the connection between revenue and production cost is direct. Odoo links the sales order to the manufacturing order, allowing you to calculate the margin on each customer order in real time.
This is exactly what Desimone does: every custom machine project has its own sales order, manufacturing order and profitability dashboard giving management a live view of margin on every project simultaneously.
Make-to-stock manufacturing
In make-to-stock manufacturing, the connection between production cost and revenue is less direct, products are manufactured for stock and sold later, potentially at different prices to different customers.
In this case, production order profitability focuses on cost performance how actual production cost compares to standard cost, rather than direct margin. Revenue analysis is done separately at the product or customer level.
The controlling dashboard
With Odoo's analytical accounting properly configured, your controlling team has access to a real-time profitability view that shows:
- Actual vs standard cost per production order
- Labour, material and overhead breakdown per order
- Cost variances flagged automatically when thresholds are exceeded
- Cumulative profitability by product family, customer, production period or work center
- Comparison of quoted margin vs actual margin for make-to-order projects
This is the shift from month-end accounting to operational financial management where cost data informs decisions while there is still time to act.
Why most Odoo implementations don't deliver this and how to fix it
Odoo has all the tools to deliver real-time production order profitability. But in many standard implementations, these capabilities are either not activated or not configured correctly.
The most common gaps:
- No work center cost configuration: machine and overhead costs are not configured in Odoo, so production order costs only reflect materials — dramatically understating true production cost.
- No operator time tracking: the Shop Floor module is not deployed, so labour time is not captured at the work order level. Labour cost is either missing entirely or allocated as a flat overhead rather than actual time.
- Standard cost never updated: BOMs and standard costs are set at go-live and never revised. As material prices, labour rates and process times change, the gap between standard and actual cost widens — making variance analysis meaningless.
- No analytical accounting structure: without a proper analytical account hierarchy, production costs cannot be broken down by product, customer, work center or production period in a meaningful way.
Fixing these gaps is not technically complex. It requires configuration expertise, master data discipline and a clear understanding of what management actually needs to see.
This is where Eezee's manufacturing expertise makes a concrete difference not in implementing Odoo, but in configuring it to deliver the financial visibility that drives better operational decisions.
A practical implementation roadmap
For manufacturing companies that want to move from month-end margin reporting to real-time production order profitability, here is a pragmatic implementation sequence:
Step 1 : Get your BOMs right Validate every BOM against real production experience. Ensure component quantities, units of measure and cost data are accurate before activating MRP or cost tracking.
Step 2 : Configure work center costs Define the hourly operating cost for every work center — including machine depreciation, energy and allocated overhead. This is the foundation of accurate production cost calculation.
Step 3 : Deploy Shop Floor for time tracking Activate the Odoo Shop Floor module and train operators to record their time at the work order level. Start with your highest-value or most variable production lines first.
Step 4 : Activate variance reporting Configure Odoo's standard cost valuation and variance reporting to automatically flag deviations from standard at order closure.
Step 5 : Build the controlling dashboard Define the analytical account structure that reflects your management reporting needs — by product family, customer, production line or any other dimension relevant to your business.
Step 6 : Connect to sales for make-to-order profitability For make-to-order manufacturers, link sales orders to manufacturing orders to enable real-time margin tracking per customer project.
Conclusion: profitability is a management tool, not an accounting exercise
Real production order profitability captured in real time, broken down by labour, materials, machine time and overhead, compared to standard cost and linked to customer revenue, transforms how a manufacturing company is managed.
It moves the conversation from "how did we do last month?" to "what is happening right now, and what do we need to adjust?"
That is the management capability that Odoo, properly configured, makes available to manufacturing companies of every size. And it starts with capturing the right data at the right moment on the shop floor.
Book a call
How to calculate the real profitability of your production orders with odoo