Every ERP demo I have watched a coffee roaster sit through has the same silent failure point. The salesperson builds a bill of materials on screen: 10 kg of green Colombian in, 10 kg of roasted Colombian out. Nobody in the room says anything, because the number looks right.
It isn't. A light roast dropped at first crack loses around 10% of its green weight; push well past second crack and you can lose as much as 25%. Most of that is water — green coffee carries 10–12% moisture — and the rest is organic matter burned off in the drum. The loss is not a constant, it is not a rounding error, and it changes with the roast profile, the ambient humidity and the lot.
That single unmodelled fact is where roastery ERP projects start to rot. Inventory drifts, cost of goods is wrong by a margin that grows with volume, and within six months someone is maintaining a shadow spreadsheet to reconcile what the system says against what is actually on the pallet. So when a roaster asks me what makes a good ERP partner, I don't answer with a list of certifications. I answer with three things to make them do in front of you.
Test one: make them model a yield that changes every batch
Ask the partner to build a roast in a sandbox, then produce it at a different quantity than the one planned. Watch what the system does with the difference.
There are only a few defensible answers, and a good partner will tell you which one they're choosing and why:
Capture actual output at close. The manufacturing order plans 10 kg and you confirm 8.3 kg produced. The variance flows to a shrinkage or yield-loss account rather than sitting as phantom stock. In Odoo terms, this is the gap between product_qty on the manufacturing order and what actually gets recorded as produced — cheap to run, honest, and it gives you a variance report you can chart by roaster, profile and origin.
Model loss explicitly as a by-product. Useful if you want chaff and moisture loss visible as its own line, or if you're allocating loss cost across a blend. More setup, more discipline required from the person closing the order.
Two units of measure on the same product. Green kilos and roasted kilos as separate UoMs with a conversion factor. This is the answer that sounds elegant in a demo and hurts later, because the factor is not fixed. If a partner reaches for this first, they have not run a roastery.
The tell isn't which option they pick. It's whether they ask you for your actual yield history before picking. A partner who wants twelve months of green-in/roasted-out numbers before touching the configuration is doing the job. One who says "we'll handle that with a custom field" is deferring the problem to your accountant.
Test two: ask them to trace one retail bag backwards
Pick a 250 g bag off your own shelf. Ask the partner to show you, in their system, the path from that bag to the specific green lot it came from — through the blend, the roast batch, the packing run and the wholesale order it shipped on.
This is where lot genealogy either exists or doesn't. In Odoo the mechanics are documented and unglamorous: you enable Lots & Serial Numbers in the Inventory settings, switch each product's inventory tracking from quantity to lots, and the manufacturing order then carries a lot number for the finished coffee alongside the component lots it consumed. Blends make it harder, because one finished lot legitimately descends from three or four green lots at once, and a partner who models a blend as a single flattened component has just destroyed the audit trail you'll need.
You will need it. If you sell into the EU, the Deforestation Regulation applies to coffee from 30 December 2026 for large and medium operators and 30 June 2027 for micro and small ones, and compliance means plot-level geolocation data and a due diligence statement reference attached to the goods you place on the market. The practical question for your ERP is whether that data lives as a structured field on the green lot record — inherited automatically by every downstream roast, blend and finished lot — or as a PDF in a shared drive that someone has to go find during an audit.
Ask the partner where the DDS reference number is stored. If they haven't heard of it, they can still learn it. If they wave it away as a compliance detail to sort out later, they will be building you a system that cannot answer the one question a regulator asks.
Test three: hand them your wholesale price book and your subscription list at the same time
A growing roastery is two businesses sharing one warehouse. Wholesale runs on negotiated per-kilo pricing, standing weekly orders, 30-day terms and pallets. Direct-to-consumer runs on retail pricing, recurring subscriptions, grind-on-demand and single bags going out through a Shopify or WooCommerce storefront. The same green coffee feeds both, and the two channels compete for it.
Most demos handle one of these beautifully and fake the other. So give the partner both at once and ask a specific question: when a wholesale account's standing order and Friday's subscription run both need the last 40 kg of the Ethiopian, what does the system do?
Watch also for how they answer the grind question, because it's the decision that quietly shapes your inventory forever. Whole bean, filter grind and espresso grind can be product variants on one template, or three separate SKUs, or a post-pick operation that doesn't touch stock at all. Each choice is defensible; each one changes how you count, forecast and reorder for the next decade. A good partner walks you through the trade-off in plain language and makes you decide. When we're brought in as an Odoo implementation partner on a stalled rollout, that decision is very often the thing that was never actually made — it was configured by default and then worked around.
What the good ones do in week one
They don't configure anything. They map your process — green intake, sample roasting, production roasting, resting, blending, packing, wholesale fulfilment, e-commerce fulfilment — and they find the three places where your current process only works because a specific person remembers something.
They also argue with your requirements list. Panorama Consulting's 2026 ERP Report found more than a quarter of organisations exceeded their project budget, with additional technology needs the leading cause, and pointed at "fatal misfits" discovered late as the pattern behind it. Late discovery is a scoping failure, not a software failure. The partner who tells you in week one that four of your twenty must-haves are actually process problems is saving you the overrun.
The part nobody puts in the pitch deck
A partner who works this way is slower to start and more expensive than one who will just install and hand you the keys. You will spend three or four weeks on discovery that produces no visible software. If you are roasting fifty bags a month, that cost is real and the honest answer may be that a spreadsheet plus your storefront is still the right stack — ERP earns its keep somewhere around the point where two people can no longer hold the whole operation in their heads.
And no ERP will improve your coffee. It will tell you what a batch cost, which origin actually carries your margin, and whether the Kenyan is worth the freight. Those are finance questions, not cupping questions.
If you're evaluating partners now, take three things into the next call: twelve months of green-in and roasted-out weights, your wholesale price book, and one retail bag. Ask them to reconcile the first, price the second, and trace the third. The ones who can't will tell you so in the first twenty minutes, which is exactly what you want from a demo.
Top comments (0)