In many basic ERP implementations, consultants map the Bill of Materials (BOM) perfectly but ignore the Routing. They simply configure a "consume materials and produce finished good" button. This is a missed opportunity. To understand your true manufacturing costs—and to schedule production accurately—you need to map the journey of the product across your factory floor.
This builds on the foundations laid out in the Odoo Manufacturing Module Setup guide. For specific industry examples like textile, refer to the Odoo Spinning Mill Configuration.
Routing isn't just about telling workers what to do next. It's the engine that allocates overhead costs to your products based on actual machine time.
Defining Work Centers
A Work Center in Odoo represents a physical location where production takes place. This could be a single machine (e.g., "CNC Lathe #3"), a group of identical machines (e.g., "Sewing Line A"), or a manual assembly station.
When setting up a Work Center, you must define:
- Working Hours: The schedule this center operates on (e.g., standard 8-hour shift vs 24/7 operation).
- Capacity: How many items can be processed in parallel.
- OEE Target: Overall Equipment Effectiveness target percentage.
- Cost per hour: This is critical. It includes the depreciation of the machine, electricity costs, floor space rent, and operator wages. If an operation takes 2 hours at a center with a BDT 6,000/hr cost, BDT 12,000 is added to the finished product's valuation.
Operations & Sequences
A Routing is simply a sequence of Operations. Each Operation is tied to a Work Center and has an expected duration.
Duration: 15 mins
Duration: 45 mins
Duration: 10 mins
Machine Capacity & OEE
Capacity planning in Odoo relies heavily on accurate Work Center configurations. If you receive a large order, Odoo's Master Production Schedule (MPS) will look at the routings to determine if you have the machine hours available to meet the deadline.
Odoo also tracks Overall Equipment Effectiveness (OEE). If a machine is stopped due to material shortage or breakdown, operators can log this. OEE metrics help management identify bottlenecks—are we losing time to machine maintenance or supply chain delays?
Time Tracking on Shop Floor
The Odoo Shop Floor app allows operators to scan a barcode, see their next operation, and click "Start". When they finish, they click "Done".
This real-time tracking gives you actual durations vs expected durations. If your routing estimated 45 minutes for assembly but it consistently takes 60 minutes, your costs are wrong and your schedules will always be delayed. The Shop Floor app forces reality into the ERP.
Overhead Cost Allocation
Why go through the trouble of routings? Accurate Costing.
Without routings, all you have is material cost. By assigning a BDT/hour rate to each Work Center and tracking the time spent, Odoo automatically adds the overhead cost to the inventory value of the finished good. This ensures your margins are calculated accurately, factoring in the actual machine time and labor used to produce that specific batch.
Start simple. Map your Work Centers broadly (e.g., "Cutting", "Sewing", "Finishing") rather than mapping 50 individual machines. Get the supervisors used to tracking time at a macro level, refine your BDT/hour rates, and then drill down into specific machine scheduling once the culture of real-time data entry is established. Want a ballpark on what the whole implementation costs before you start? Try the Odoo cost estimator. Need help mapping your factory floor? Get in touch →
Frequently asked questions
How do you configure Work Centers in Odoo?
Navigate to Manufacturing → Configuration → Work Centers. Define the name, working schedule, capacity, and most importantly, the Cost per Hour. This cost rate is used to calculate the overhead absorbed by products passing through the center.
What is the difference between a BOM and a Routing in Odoo?
A Bill of Materials (BOM) lists the components needed. A Routing defines the operational steps (Work Orders) across various Work Centers, dictating how those components are transformed into the finished product.
How does Odoo calculate production cost from a routing?
For each operation, Odoo multiplies the time spent at a Work Center by that center's Cost per Hour, then adds the result to the finished product's valuation alongside raw-material cost. If you have not enabled Work Order time tracking, Odoo uses the expected duration on the routing; with the Shop Floor app, it uses the real logged duration. This is why an inaccurate cost-per-hour rate or an unrealistic expected duration quietly distorts every margin report.
What happens if the real duration differs from the expected duration in Odoo?
Odoo records both. The expected duration drives capacity planning and delivery-date promises in the Master Production Schedule; the real duration (captured when an operator clicks Start and Done in the Shop Floor app) drives actual costing. A persistent gap between the two is a signal to re-measure that operation — if you ignore it, your schedules slip and your product costs stay wrong.