Kayu Lestari — from 40 spreadsheets to one source of truth
−32% order lead time- Client
- PT Kayu Lestari — furniture exporter, est. 1998
- Scale
- 300 employees · 2 plants · 60+ export containers / month
- Before
- 40 disconnected spreadsheets, WhatsApp approvals, weekly stock guesswork
- Scope
- Odoo MRP, Inventory, Purchasing, Sales, Accounting
- Timeline
- August 2025 — March 2026 · live since March 2026
01 — Client overview
A great factory running on fragile plumbing
Kayu Lestari makes beautiful furniture. Their teak dining sets ship to buyers in Rotterdam, Melbourne, and Osaka. What their customers never saw was how the orders got made: forty spreadsheets, three versions of the truth, and a production planner who kept the real schedule in his head.
The company had grown from a workshop into a 300-person exporter without ever replacing its original tools. Every department had built its own spreadsheet kingdom — sales quoted from one price file, purchasing ordered from another, and the warehouse counted stock that both of them disagreed with. It worked, in the way that things work right up until they don't.
02 — Business challenges
Four problems, one root cause
When we mapped the pain points in the first workshop, the team named dozens. They collapsed into four — and every one of them traced back to the same root: no shared, trusted record of what the business actually knew.
Lead times nobody could promise
Quoted delivery dates were educated guesses; late penalties from EU buyers were becoming a line item.
Stock counts off by up to 30%
Teak inventory was money sitting in a warehouse — and nobody knew exactly how much money.
Costing done after the fact
Margins per order were calculated weeks after shipment, too late to renegotiate or fix anything.
One irreplaceable planner
The production schedule lived in one person's head. His two-week leave in 2024 nearly stopped the plant.
03 — Discovery process
Three weeks on the shop floor
We don't configure software in week one. We walked the floor — from log intake to finishing to the loading dock — and shadowed the people whose spreadsheets we were about to retire. Discovery produced a process map with 61 steps, of which 14 turned out to exist only because a spreadsheet needed them.
The most important finding wasn't technical. The planner's "mental schedule" was actually a sophisticated set of routing rules — which machines, which crews, which drying times per wood batch. Our job was not to replace his knowledge but to write it down so the system could use it.
We assumed the software would be the hard part. The hard part was agreeing on how we actually work.Operations Director, Kayu Lestari
04 — Solution design
Odoo, shaped to the factory — not the reverse
The design principle was ruthless: standard Odoo wherever possible, customization only where the furniture business genuinely differs. We ended with just two custom pieces — a wood-batch drying tracker and an export documentation generator. Everything else is configuration, which means every future Odoo upgrade stays cheap.
The routing rules from discovery became actual MRP routings: 22 work centers, per-batch drying constraints, and crew capacities. The planner reviewed every one of them. It was his knowledge, finally legible to everyone.
05 — Implementation
Seven months, documented monthly
We ran the rollout in phases, each one live-tested by the people who would own it. Not everything went to plan — the first inventory migration imported 4,000 duplicate SKUs, and we spent an unglamorous week cleaning master data. We're including that here because pretending implementations are smooth helps nobody.
Discovery & process mapping
Shop-floor shadowing, 61-step map, routing rules captured.
Master data & configuration
SKU cleanup (the duplicate incident), BOMs for 340 products, 22 work centers.
Purchasing & inventory live
Barcode-first warehouse flow; first cycle counts under the new system.
MRP parallel run
Old spreadsheet schedule vs. Odoo schedule, side by side, for a full month.
Sales, costing & training
Real-time per-order margins; 46 staff trained across both plants.
Go-live
Spreadsheets retired. The planner kept one — as a souvenir.
06 — Go-live
The quietest Monday in company history
Go-live was March 2, 2026. Our whole team was on site at 6 a.m. expecting firefighting. By 10 a.m. the most dramatic event had been a forgotten barcode-scanner password. The parallel run in December had done its job: the system held no surprises because everyone had already lived in it for three months.
There's a short video of that morning in our library — including the moment the planner approved his first fully automated schedule.
07 — Business impact
Measured at ninety days
We report impact at day 90, not day one, because honest numbers need a settled system. All figures below were pulled from Odoo itself and verified with the client's finance team.
08 — Lessons learned
What we'd tell the next factory
Buy the knowledge before the software
The planner's head held more value than any module. Discovery exists to capture it.
Parallel runs feel wasteful and are not
One "redundant" month of double scheduling bought the calmest go-live we've had.
Master data is the real project
Budget for cleaning it. The 4,000-duplicate week was the price of skipping a dry run.
Next journey