← Case studies Custom LLM · Company OS in production

Wholesale & distribution · Tauranga

Cut stockouts by 41% and dead stock by 28% with a per-SKU demand model.

Excelso has roasted in Tauranga since 1994, supplying its own espresso bar alongside a growing wholesale book of Bay of Plenty cafes, but the green-bean and roasted-line ordering that underpinned the whole operation still ran on spreadsheets and the head roaster's instinct. Green coffee is bought months ahead and shipped across the world, so a single buying decision could lock up cash for a quarter; meanwhile the roastery had no reliable way to translate next month's wholesale demand into this week's roast schedule. The result was a familiar squeeze: the fast-moving house blends that cafes reorder week after week would run short just as a busy weekend hit, while slower single origins sat in the warehouse drifting past their peak freshness and quietly turning into dead stock. The swings were sharpest exactly where the margins were thinnest. Seasonal patterns, new cafe accounts coming on, one-off events and the steady drift of consumer taste all pulled demand around in ways a static reorder point could never capture, and every wrong guess showed up either as an apology to a wholesale customer or as beans written off. The team wanted to keep roasting to order and protect freshness, but they needed buying and roasting decisions grounded in what each individual line was actually doing rather than a blended average that hid the detail that mattered. Any solution had to respect the roastery's existing rhythm and stay legible to the people on the floor, not bury their judgement under an opaque algorithm.

Talk to us
Build:
Custom LLM
Platform:
Company OS
Client:
Excelso Coffee
Industry:
Wholesale & distribution
Region:
Tauranga

Results

−41%
Stockouts

Results

−28%
Dead stock

Results

85%
Forecast accuracy
Listen to article | 3:18

The story

Excelso has roasted in Tauranga since 1994, supplying its own espresso bar alongside a growing wholesale book of Bay of Plenty cafes, but the green-bean and roasted-line ordering that underpinned the whole operation still ran on spreadsheets and the head roaster's instinct. Green coffee is bought months ahead and shipped across the world, so a single buying decision could lock up cash for a quarter; meanwhile the roastery had no reliable way to translate next month's wholesale demand into this week's roast schedule. The result was a familiar squeeze: the fast-moving house blends that cafes reorder week after week would run short just as a busy weekend hit, while slower single origins sat in the warehouse drifting past their peak freshness and quietly turning into dead stock. The swings were sharpest exactly where the margins were thinnest. Seasonal patterns, new cafe accounts coming on, one-off events and the steady drift of consumer taste all pulled demand around in ways a static reorder point could never capture, and every wrong guess showed up either as an apology to a wholesale customer or as beans written off. The team wanted to keep roasting to order and protect freshness, but they needed buying and roasting decisions grounded in what each individual line was actually doing rather than a blended average that hid the detail that mattered. Any solution had to respect the roastery's existing rhythm and stay legible to the people on the floor, not bury their judgement under an opaque algorithm.

What we built

  1. 01

    Built per-SKU demand models spanning green beans and every roasted line, so each blend and single origin learned its own seasonality, trend and weekly rhythm rather than being smoothed into a house average

  2. 02

    Fed in years of wholesale order history, the cafe account calendar and roast-to-order timing so the model planned around real freshness windows instead of ignoring them

  3. 03

    Flagged green-bean reorder points against each supplier's true lead time, surfacing likely shortfalls weeks ahead while there was still time to act

  4. 04

    Translated forecasts directly into a suggested weekly roast schedule, mapping projected wholesale demand onto the volumes the roastery should actually put through the machine

  5. 05

    Delivered the whole thing as a simple weekly view the roastery team reviews, sense-checks and overrides, keeping the head roaster's judgement in the loop rather than handing decisions to a black box

“For years we were either short on the blends everyone wants or sitting on lovely origins quietly going past their best, and the buying call came down to whoever had the best gut feel that week. Having a forecast for every single line changed how we roast and how we buy; we plan the week off one view we actually trust, the cafes get full orders, and we're not pouring cash into beans we'll only end up writing off. It's taken the guesswork out of the part of the business that used to keep me up at night.”

— Hayley Brennan, Roastery Director

Results at a glance

  • Fast-moving house blends now stay on the shelf through the busy weeks, so wholesale cafe orders ship complete and on time and the apologetic 'we're out' phone calls have largely stopped
  • Slow single origins are roasted far closer to real demand, so beans reach cafes at their peak and far less is aged out and written off
  • Buying decisions are grounded in per-SKU forecasts rather than gut feel, freeing up cash that used to sit idle as speculative green coffee in the warehouse
  • The roastery team plans the week from a single shared view they trust, turning what used to be a stressful Monday guessing game into a calm, repeatable routine

This is Company OS at work

Every system we ship is part of Company OS — a team of AI agents wired into the tools you already run. Start with one workflow, add more as you trust it.