For decades, Eliyahu M. Goldratt's business novel, "The Goal," has been a cornerstone for operations managers, teaching profound lessons through a compelling story. It challenges the conventional wisdom of manufacturing, forcing us to ask a fundamental question: What is the real goal of a manufacturing company?
The answer is surprisingly simple: to make money. But achieving that goal is complex. Goldratt argues that many companies get lost chasing misleading metrics like local efficiencies or cost reductions that don't actually contribute to the bottom line.
This post will not only demystify the core principles of "The Goal" but will also serve as a practical guide for applying them directly within the Odoo Manufacturing (MRP) module. We will explore how to use Odoo's powerful features to increase profit, identify and manage constraints, and ultimately, transform your operations.
The Real Goal: Goldratt's Three Core Metrics
To achieve the goal of making money, Goldratt states that a company must simultaneously focus on three critical measurements:
01
Increase Throughput (+)
This is the rate at which the system generates money through Sales. It's not about how many units you produce; it's about how many you sell and ship. An item sitting in a finished goods warehouse is not throughput.
02
Decrease Inventory (-)
This is all the money the system has invested in purchasing things it intends to sell. It includes raw materials, work-in-progress (WIP), and finished goods. Inventory ties up cash and hides operational problems.
03
Decrease Operational Expense (-)
This is all the money the system spends to turn inventory into throughput. This includes direct labor, utilities, salaries, and other factory overheads. It's the cost of running the machine.
Finding the Constraint: The Bottleneck
The core of Goldratt's Theory of Constraints (TOC) is the idea that every complex system has at least one constraint that limits its performance, just like a chain is only as strong as its weakest link. In manufacturing, this constraint is called a bottleneck.
- A Bottleneck is any resource whose capacity is less than or equal to the demand placed upon it. It's the slowest part of your process.
- A Non-Bottleneck is any resource whose capacity is greater than the demand placed upon it.
Here's the crucial insight: An hour of production lost at a bottleneck is an hour of throughput lost for the entire factory. Conversely, an hour gained at a non-bottleneck is a mirage, as it only creates more WIP inventory that will pile up in front of the bottleneck. Your entire system's output is dictated by the output of its bottleneck.
Applying 'The Goal's Principles in Odoo MRP
Theory is great, but execution is everything. Let's translate these concepts into concrete actions within Odoo.
Measuring the Three Pillars in Odoo
- Throughput: This isn't your Manufacturing Orders report. True throughput is measured in the Sales and Invoicing apps. Use Sales Analysis reports, filtering for "Delivered" and "Invoiced" quantities. The goal is to connect the value of shipped goods directly to the production that enabled it.
- Inventory: Odoo's Inventory app is your source of truth. The `Inventory Valuation` report (`Inventory > Reporting > Inventory Valuation`) gives you the precise dollar value of your stock at any moment. Track this figure over time to ensure it's decreasing.
- Operational Expense: This is captured across Odoo.
- Work Center Costs: In the Manufacturing app, define the `Cost per hour` for your work centers. The `Work Center Costs` analysis report will show you labor and overhead costs.
- Bill of Materials (BoM) Costs: Odoo automatically calculates the cost of a BoM based on its components.
- Accounting: The Accounting app tracks all other expenses, which can be allocated using `Analytic Accounts` to specific production lines or departments for granular tracking.
Bridging the Gap: A Candid Review of Odoo MRP for TOC
We must carefully review Odoo's current MRP module, taking into account the principles of TOC, to identify both its strengths and the missing elements that require attention. It is essential to evaluate how these gaps can be filled to maximize the potential for improvement within the Odoo MRP system.
What Odoo MRP Excels At
- Data Hub: Odoo is a fantastic, integrated system of record. It flawlessly tracks MOs, BoMs, work centers, inventory movements, quality, and costs.
- Flexibility: With tools like Odoo Studio and a robust developer API, the system can be molded to fit specific business processes.
- Real-time Tracking: Shop floor integration (via tablets or barcode scanners) provides real-time data on work order status, which is crucial for identifying emerging issues.
Identified Gaps for TOC Implementation
- No Automatic Bottleneck Detection: Odoo lacks an out-of-the-box feature to analyze work center load vs. capacity and automatically flag constraints. This remains a manual analysis task.
- No Native DBR Scheduling: Odoo's scheduler is primarily based on lead times and material availability (a "push" system). A true Drum-Buffer-Rope system, which subordinates the schedule of non-bottlenecks to the bottleneck, requires disciplined manual scheduling or custom development.
- No Throughput Accounting Reports: While all the data exists, standard Odoo does not have pre-built reports for Throughput Accounting (e.g., (Sales - Truly Variable Costs) / Bottleneck Time).
Strategies to Fill the Gaps and Maximize Potential
You can close these gaps and supercharge your Odoo MRP system:
- Leverage Reporting & Dashboards: Use Odoo's reporting engines and dashboards. Create a custom dashboard that displays the current queue size (in hours) for each key work center. This makes your bottleneck visible to everyone.
- Embrace Process Discipline: Technology is an enabler, not a solution. The most important step is to train your team on the principles of TOC and manually enforce the discipline of exploiting and subordinating to the bottleneck using standard Odoo functionality.
- Consider Customization: For advanced implementations, consider developing a small custom module. A Python script could, for instance, run nightly to analyze planned work orders and suggest the primary bottleneck for the upcoming week.
# Odoo Shell Pseudo-code to find potential bottlenecks # This is for illustrative purposes and requires a developer to implement from odoo import api, SUPERUSER_ID env = api.Environment(cr, SUPERUSER_ID, {}) workcenters = env['mrp.workcenter'].search([]) workload = {} for wc in workcenters: # Calculate weekly capacity in minutes capacity = wc.resource_calendar_id.hours_per_day * 5 * 60 * wc.time_efficiency / 100 # Find all upcoming work orders for this workcenter upcoming_wos = env['mrp.work.order'].search([ ('workcenter_id', '=', wc.id), ('state', 'in', ['ready', 'pending']), ('date_planned_start', '>=', '2023-10-01'), # Example date range ('date_planned_start', '<=', '2023-10-07'), ]) # Sum the expected duration total_duration = sum(upcoming_wos.mapped('duration_expected')) # Calculate load percentage load_percent = (total_duration / capacity) * 100 if capacity > 0 else 0 workload[wc.name] = round(load_percent, 2) # Find the workcenter with the highest load bottleneck = max(workload, key=workload.get) print(f"Potential Bottleneck: {bottleneck} with a load of {workload[bottleneck]}%")
Your Journey to Profitability Starts Now
"The Goal" provides the philosophy, and Odoo provides the platform. By combining the two, you can move beyond simply managing production to actively engineering profitability. The data you need is already inside your Odoo system.
Start today: Walk your digital shop floor in Odoo, find your biggest queue, and ask the simple question—is this my bottleneck?
🎥 Watch the demo video:
👉 https://youtu.be/QFPbz2qVRbM
Unlocking Manufacturing Excellence: Applying "The Goal" by Goldratt in Odoo MRP