The QuickBooks Ceiling.

Growing Fast. Planning on a Whiteboard.
The company manufactured custom industrial valves and fittings to order, with typical lead times of 3–6 weeks. Raw material procurement, production scheduling, quality inspection, and shipping were all managed by a team of 28 — coordinated through a combination of a physical whiteboard in the production floor, a shared Google Sheet for job tracking, and daily stand-up meetings where the production manager read job status from the whiteboard to the operations team. QuickBooks recorded the accounting but had no visibility into production status, WIP inventory, or job costs.
The breaking point came when a large contract customer requested a delivery schedule for 12 concurrent jobs across a 4-month window. The production manager needed three days to produce the schedule manually — cross-referencing raw material lead times from supplier emails, available machine capacity from memory, and current job status from the whiteboard. The schedule was delivered. But the owner recognised that a business taking on larger contracts needed a system that could produce that schedule in minutes, not days. He called OPS.
- Production scheduled on a whiteboard — no materials requirement planning, no capacity visibility. With 34 concurrent jobs averaging 3–6 weeks each, the production manager was mentally tracking approximately 200–300 active job steps at any time. There was no system-generated indication of what raw materials were needed, when, or whether they were available.
- Work-in-progress inventory not tracked — materials consumed in production disappeared from records until finished goods. Raw material purchases were recorded in QuickBooks. Finished goods shipments were invoiced. The transformation in between was invisible. WIP inventory didn't exist as a balance sheet item. Job costs — labour + materials per job — were assembled manually at job close.
- Full warehouse inventory counted by hand every Monday morning — 3-person team, 4 hours. The weekly count was the only mechanism for detecting material consumption, shrinkage, or mismatch between ordered and received materials. Between counts, purchasing was guessing. The Monday count was treated as ground truth even though it was wrong by Tuesday.
- Cost of each job assembled manually at completion — no live job cost tracking. Job costs were calculated by the bookkeeper after shipment using a combination of purchase orders, payroll time reports, and estimated overhead allocation. The calculation took 2–3 hours per job. At 34 active jobs, this represented one full working week per month.
Odoo Manufacturing + Inventory. MRP Live at Day 70.
OPS implemented Odoo Manufacturing, Inventory, Purchase, and Accounting. The critical path was the Bill of Materials configuration — every product variant required a BOM before MRP could plan. OPS ran BOM configuration in parallel with system setup, completing 94% of active SKUs before go-live.
- Bills of Materials — Full Catalogue. OPS worked with the engineering and production team over 3 weeks to document Bills of Materials for all 147 active product variants. Each BOM includes components, quantities, routing steps, and estimated labour hours by operation. BOM accuracy validated against last 12 months of historical jobs.
- MRP Planning — Automated. With BOMs complete, Odoo MRP generates a production schedule from confirmed sales orders automatically. Materials requirements calculated against current stock levels — shortages flagged before production begins, not during. Procurement orders generated automatically for long-lead materials.
- WIP Inventory Tracking. Raw material consumption recorded at each production routing step. WIP inventory appears on the balance sheet in real time. Job cost accumulates automatically as materials are consumed and labour is logged. Bookkeeper's 2–3 hours per job becomes a one-click report.
- Barcode Receiving & Perpetual Inventory. Goods receipt process replaced manual purchase order entry. Warehouse team scans inbound materials using Odoo's barcode app on a tablet — receipt posts to inventory and closes the PO line automatically. Monday morning count replaced by continuous perpetual inventory updated at every transaction. Spot counts still conducted monthly for high-value items.
- Delivery Schedule Automation. Customer delivery schedule request that previously took 3 days to produce manually now runs as an Odoo report — all active jobs, current production status, materials availability, and projected completion dates by job, formatted for customer delivery. First run took 8 minutes to configure. Subsequent runs: 45 seconds.
MRP Live. WIP on the Balance Sheet. Job Costs in Seconds.
The first MRP run after go-live identified 6 jobs where raw material shortages would have caused production delays — all caught before production started, not after a team was standing at a machine waiting for materials. The production manager described the shift as going from 'knowing the job status by feel' to 'seeing it.' Within 90 days, the Monday manual count had been retired. Within 120 days, the whiteboard was gone.
The whiteboard worked when they had 8 jobs. At 34, it was a liability they couldn't see — because a whiteboard doesn't tell you what it doesn't know. The production manager wasn't failing. He was working at the absolute limit of what a human can track manually. MRP just does it better.OPS Engagement Director · Odoo Manufacturing Practice


