Menu pricing
How to price a cafe menu without guessing
Menu prices in cafes drift. Milk gets more expensive, a seasonal syrup appears, and the 12oz oat latte is still the number you wrote down last year. This is a practical way to price a cafe menu from cost, then check it against the drinks people actually buy.
Price the cup you actually serve
Start with the recipe, not the neighbour’s board. Beans per shot, the milk volume for each size, the cup, the lid and a realistic waste allowance. That is your cost per cup before labour and rent. If oat milk costs more, the oat modifier should cost more. Hiding it inside every drink taxes the customers who drink dairy and undercharges the ones who do not.
Shots, syrups and alternative milks are where cafes leak money, because they are tapped on as “about 50p” forever. Put a number on each modifier from its own cost, then round to a step your till can ring quickly.
Food is not the same margin as coffee
Pastry you buy in usually has a tighter, more obvious margin than a latte. Price the bun from what you pay the baker plus waste, not from the drink menu. Cakes that sit all day need a waste assumption. If you 86 honestly when a tray is gone, you at least stop selling ghost stock.
Use day-parts instead of a permanent discount
A quiet-hour offer beats a lower price all day. If 3pm is empty, say so with a dated offer to members nearby, then put the normal price back. Permanent discounts become the real price, and you cannot easily climb back.
Member prices need a floor
A loyalty program that takes 30% off every visit will grow the stamp count and shrink the margin. Decide the floor first: the price after the reward still has to cover the cup and a contribution to labour. Free tenth drinks work because nine paid drinks carry them. Unlimited member pricing often does not.
Review on a schedule
Check costs when beans, milk or the baker’s invoice moves, and at least every season. Update the POS once so the QR menu and the app follow. Tell the team the new modifier prices before service, not during the first argument with a regular.