Beverage producers ask me the same question in two different accents: a craft soda maker in Nairobi and a juice bottler in Nakuru both want to know why their "cost per case" never quite matches what the spreadsheet said. The answer is almost always catch weight or yield variance — a problem Acumatica's Manufacturing Edition handles, but not automatically, and not without you telling it the truth about how liquid production actually behaves.
Production yield is not 1:1
A batch of syrup concentrate diluted into finished bottles does not yield a fixed quantity — evaporation, filter loss, and carbonation loss all eat into the theoretical output. Acumatica's production order supports a planned versus actual output quantity, and the variance shows on the Production Order Details screen, but only if your BOM and routing were built to expect variance rather than assume a clean ratio. The mistake I see most: a BOM defined as "1 unit concentrate = 24 bottles" with no tolerance, so every batch closes with a scrap/variance entry that nobody investigates because it happens every single time and the team has stopped reading it.
BOM Item: SODA-COLA-330ML
Output Qty: 1000 EA (expected)
Yield %: 96% -- set on the BOM header, not assumed at 100%
Scrap Factor (per component):
CONCENTRATE-COLA 2% (filter loss)
CO2-BULK 4% (carbonation loss / venting)
Setting a realistic yield percentage on the BOM means the variance report actually flags abnormal batches instead of flagging every batch equally, which is the whole point of having a variance report.
Excise duty is a tax engine problem, not a GL problem
Alcoholic and sugared beverages in Kenya and the wider EAC region carry excise duty calculated per litre or per unit, layered on top of VAT, and it changes with finance-bill amendments more often than most clients expect. I do not model excise as a GL journal — I configure it as a tax type in Acumatica's tax engine with its own calculation rule (per-unit rather than percentage-of-value), so it recalculates correctly when quantities change on an order line instead of needing a manual adjustment. This is standard multi-tax-type configuration, not a custom module, but it takes deliberate setup — nobody ships an "excise duty" checkbox.
Collapsing excise into a blended VAT-plus-excise percentage rate works right up until an excise rate changes independently of VAT, which happens on its own schedule. Two tax categories, cleanly composed on the tax schedule, means a rate change in the next Finance Bill is a rate edit, not a redesign.
Where this needs an ISV, not a wish
Route-based delivery — a truck restocking bars and retailers on a fixed weekly circuit, invoicing at the point of delivery — is not something base Acumatica Distribution or Manufacturing Edition handles well; it is a distribution-side add-on, and I cover that in the beverage-distribution piece linked below rather than repeating it here. If your beverage business also runs its own delivery routes, read that one before you scope a project.
Wrapping up
Beverage manufacturing on Acumatica is a Manufacturing Edition fit, and the two things that separate a working implementation from a frustrating one are honest yield percentages on the BOM (so variance reporting means something) and treating excise as its own tax category rather than folding it into VAT. Neither is a missing feature — both are setup decisions that get skipped under deadline pressure.
Independent software engineer in Nairobi specialising in Acumatica customisations, Laravel backends, and tax fiscalisation integrations across East and Southern Africa.