Should you charge extra for oat milk?

Two cafés on the same high street. One charges 40p for oat, the other charges nothing and puts "all milks, same price" on a little card by the till. Both owners are certain they've got it right.
They can't both be, and the annoying truth is that neither has done the maths. The surcharge is a vibe. The no-surcharge is a vibe. It's one of the most-argued questions in café operations and almost nobody arguing it can tell you what oat actually costs them per cup.
So let's settle it the boring way, with the number.
First, the only figure that matters
Forget what the café down the road does. The question you need answered is your per-drink delta: how much more does a cup made with oat cost you than the same cup made with dairy?
Everything else follows from that one number. Get it, and the surcharge question mostly answers itself.
Realistic UK wholesale in 2026 sits roughly here. Dairy runs around £1.10 to £1.45 a litre. Barista-grade oat is higher, often £1.60 to £2.20 a litre, with the best-known brands at the top of that. Soy tends to sit a little below oat. Almond is broadly in the oat range, coconut similar.
Say your oat costs £1.90 a litre and your dairy costs £1.25. A flat white with 150ml of milk works out at about 19p of dairy or 29p of oat. That's a raw ingredient delta of 10p.
But 10p isn't the real number, because oat doesn't behave like dairy on the bar. It splits more readily, so baristas over-pour to be safe, leftover oat in the pitcher gets binned rather than topped into the next drink, and the wand needs a firmer rinse between cups. All the ways that milk waste quietly compounds the cost of every drink hit oat harder than dairy.
Put that in and the honest effective delta on a flat white is closer to 15p. On a 300ml latte or a large iced drink, where the milk volume roughly doubles, you're looking at 25 to 30p. This is the same waste logic behind the full P&L breakdown of what a flat white really costs to make: the recipe number is never the true number once the bar gets busy.
The three honest options
Once you know your delta, there are only three defensible things to do with it. Not one right answer for everyone, but three clear choices, each with a cost you can see.
Let's use a worked example throughout. A café doing 250 milk drinks a day, of which 35% go out with oat (about where a lot of independents sit now), so roughly 88 oat drinks daily at an effective delta of 15p.
Option 1: charge a visible surcharge
The classic move. A line on the menu, 30 to 50p for plant milk, rung up per drink.
At 40p against a 15p cost, each oat drink recovers its delta and contributes about 25p on top. Across 88 drinks that's roughly £22 a day of genuine contribution, before you touch the base price of the drink.
The catch is capture. On a busy bar, a chunk of surcharges never make it onto the till because the customer adds "oat please" while paying and the order's already on the screen. If you go this route you have to make the till ask for milk type, not offer it as an optional extra, or you'll bleed a fifth of the money you just decided to charge for.
Option 2: absorb it
Charge nothing, all milks the same price. The simplest thing to explain and the friendliest at the counter.
It is not free. In our example you're eating 88 drinks at 15p, which is £13.20 a day, about £4,800 a year at one site. That's a real line, and it grows every year as oat share creeps up.
Absorbing is a perfectly good decision. It's only a bad one if you've made it by accident. If you've looked at £4,800 and decided the goodwill is worth it, fine. If you've never seen the number, you're funding a marketing position you didn't know you had.
Option 3: blend it into the base price
The quiet middle path, and the one most operators never consider. Instead of surcharging oat drinkers or eating the cost, you spread it across every milk drink.
Take the same £13.20 a day of oat cost and divide it across all 250 milk drinks, not just the 88 oat ones. That's about 5p per drink. Add 5p to the base price of every latte, flat white and cappuccino and you're covered in aggregate, with no surcharge on the menu at all.
The oat drinker pays a touch under true cost, the dairy drinker chips in a few pence, and nobody feels singled out. The downside is honesty about who's subsidising whom, and the need to revisit the blend as your oat share moves.
The customer perception bit, which is real
Here's where the maths stops being the whole story. A surcharge is a number to you and a message to the customer.
To some people a plant milk surcharge reads as fair. You cost more to serve, you pay a bit more, done. To others, increasingly the younger customers who drink oat by default rather than by choice, it reads as a penalty for a preference. That's why several of the big chains quietly dropped their non-dairy surcharge a while back and made a point of saying so.
You don't have their volume to absorb it painlessly. But the perception is the same on your high street as on theirs, and a surcharge that feels punitive can cost you more in quiet lost custom than it ever recovers at the till.
This is the honest tension. Option 1 protects margin most cleanly and risks goodwill most. Option 2 protects goodwill most and costs margin most. Option 3 splits the difference and asks your dairy customers to carry a little of it. There's no free choice here, only a choice you make on purpose.
How to actually decide: your own sales mix
The right answer is different for the two cafés at the top, and the thing that separates them isn't taste or ethics. It's their oat share.
Pull it from your till. What percentage of your milk drinks actually go out with a plant alternative? Not your guess, the real figure from your POS. This is exactly the kind of thing MenuBrik surfaces from your sales mix, but you can get a rough version yourself by counting oat cartons used against milk drinks sold for a week.
Then:
- Under 20% oat share. Blending into the base price is the easy win. The uplift per drink is tiny, nobody notices, and you skip the surcharge argument entirely. Absorbing is also cheap enough to be a genuine goodwill play.
- 20% to 35%. The grey zone. Any of the three can be defended. Blend if your crowd is price-sensitive and surcharge-averse, surcharge if your team can reliably ring it up, absorb if margin is comfortable and you want the friendliest possible counter.
- Over 35% oat share. Absorbing quietly becomes a four-figure annual cost you should at least be choosing on purpose, and blending starts loading real money onto your dairy customers. This is where a modest, consistently-applied surcharge, or a clear-eyed decision to fund the cost, earns its place.
Whichever you land on, oat is only one of a whole row of modifiers doing this to your margin. Syrups, extra shots, decaf swaps and takeaway packaging all follow the same logic, and the hidden cost of "free" extras walks through the wider set with the same input-first approach.
The takeaway
There is no universally correct answer to the oat milk question. A tight surcharge, a deliberate absorb, and a quiet blend into the base price are all honest choices, and the best one depends on your oat share, your margin headroom and the crowd you serve.
But there is one wrong answer, and it's the one most cafés are living with: not knowing your per-drink delta at all. You cannot choose between three options when you can't see what any of them costs.
So work out your number first. Cost your own oat and dairy drinks build, side by side, waste included, and get the delta on paper. Once you can see it, the surcharge debate stops being an argument about vibes and becomes a decision you can actually make.
Ed O'Brien has run Hunters Cake Company for 17 years across cafés in Witney, Burford, and a bakery in Carterton, Oxfordshire. He's building Brikly - modular tools that give independent café owners the same data the big chains have, without the big chain price tag.