In the world of specialty coffee shops there are a handful of multi-shop operators; some of them straddle borders, but most of them are local to a country or city. The tail of the specialty coffee shop sector is, then, lots of single owner-operator shops (or two shops, if the first has gone well).

It’s quite a big market and has a large tail which is very fragmented. Having been working in coffee shops and technology (it’s a thing!) for the best part of 6 years, I’ve come to the conclusions that there are few technologies/systems that really represent the nuances of running a specialty coffee shop.

One particular irritation I have is around inventory tracking and cost of sales for coffee shops. This is a very niche irritation, I admit, but undermines my confidence in any inventory system that is “designed for coffee shops”. I’ve seen this in huge enterprise systems and small disrupter/start-up systems. I’ve seen it have an impact at scale, then I’ve seen it ignored at scale because it came out in the wash with each unit’s PnL.

Briefly, and at a high level, an inventory system should show you how much you spend on your ingredients, how many and at what price you sold your finished products for and then ultimately what your profit was.

Extending this to specialty coffee shops, you’d want an inventory system:

  • to show you how much your milk and coffee cost you
  • to let you specify that a flat white takes 220ml of milk and 18g of coffee (ideally with some small % wastage/loss)
  • report that your gross margin on a flat white is 75% (e.g.)
  • report that your overall margin on a flat white on a certain day was 70% (because, you know, free ones and discounts)

Pretty much every inventory system can do this.

Now what happens, say, when you sell a flat white with oat milk?

Typically you’d just put an “Oat” modifier on your point of sale, right?

Remember, your inventory system recognises a “flat white” as being made of whole milk and coffee.

When that sale hits your inventory system, your costs are going to include 220ml whole milk, 18g of coffee and now 220ml oat milk as a modifier. Your overall margin is now being falsely reduced.

Now someone wants a decaf flat white with oat milk. Your margin drops again because the system calculates costs for regular coffee as well as the decaf modifier coffee. You now have positive shrink on whole milk and regular coffee (you have more milk in your fridge than you inventory system thinks).

In a busy owner-operated environment, as many specialty shops are, I understand this is rarely going to be the top of the list of worries or frustrations, but it slowly builds up an underlying distrust of your key financial metrics. Great that you’ve got margin reporting on food, but roll it up with your coffee that probably accounts for 50% of revenue and your ability to make evidence based decisions is severely limited.

So, what’s the solution?

I haven’t seen a perfect solution to this problem; certainly not one that comes off the shelf.

Stock take to make up for it Being disciplined and doing a stock take on a regular basis will help keep margins under control, but this only works at the business level - your coffees will still be misrepresented.

Create a menu item for every possible combination

A menu item lives in your inventory system and is usually represented by one button on your point of sale (with optional modifiers).

It’s possible, but not something to be encouraged. Just with a flat white, decaf and oat you’d need 4 buttons. Factor in other m!lks, other drinks and you soon have an untameable point of sale.

Manually import negative modifier sales

On a very strange day of trading, let’s say you only sold 100 decaf oat milk flat whites.

Your inventory system thinks you’ve given out:

  • 22 litres of whole milk
  • 1.8kg of regular coffee
  • 1.8kg of decaf coffee
  • 22 litres of oat milk

You can imagine your margin is going to be all over the place. You didn’t give out any whole milk or regular coffee!

If your system supports it, however, you can tell it that you’ve ALSO sold -100 “whole milk measures” and -100 “regular coffee measures” where these “menu items” have a single milk and coffee ingredient respectively. Given an sympathetic inventory system (some are, so are not), your flat white margin is back to where it should be!

Note that in food service hospitality systems, the concept of negative quantity sales is a little odd. At a dumb level, this suggests you’ve given a food item out then taking it back into your stock. Typically refunds and voids would mean you’ve given out a food item then binned it due to some other issue.

More intelligent inventory systems

The ultimate solution, in my opinion, is a more intelligent inventory system that lets you define the composition of a menu item. All your milk/m!lk options are sat in parallel as options on your flat white, so that they are interchangeable as ingredients on your menu item.

I haven’t seen this done (maybe it does exist?!), but would make cost of sales reporting in specialty coffee shops much happier.

Not restricted to coffee

I can’t see how this is restricted to coffee, either. If I want a hawiian pizza with chicken instead of the ham, does the restaurant’s inventory system record usage of both chicken and ham?

As a percentage of the menu item ingredients I expect this pizza example is more diluted than with specialty coffee (two ingredients forming the total cost of the product), but it would still be a poblem for restaurant operators at scale.

Got a solution?

I’d love to hear about it!