Ask ten café owners what their cost of goods should be and you will get ten answers, most of them a guess. It matters more than almost any other number on your P&L, because COGS and labour together typically consume the majority of every dollar you take, and it is the one line you can move this month without touching your prices.
The short version: most well-run coffee shops keep COGS between 28% and 32% of revenue, inside a wider normal range of 25-35%. This guide covers how to calculate it properly, why your current number is probably wrong, what a cup actually costs, and the five levers worth pulling before you raise a single price.
What COGS actually means for a café
Cost of goods sold is what it cost you to produce the things you sold in a period. For a coffee shop that means coffee beans, milk and alternative milks, syrups, tea, food and pastries, retail bags of beans, and — this is the one people skip — the cups, lids, sleeves, napkins, and bags that leave the building with the order.
It does not include rent, wages, utilities, your POS subscription, or marketing. Those are operating expenses. Keeping the line clean matters, because the moment you start folding overhead into COGS you can no longer compare yourself to a benchmark or to last quarter.
The formula every restaurant accountant uses is the same one you should use:
COGS = beginning inventory + purchases − ending inventory
Then: COGS % = (COGS ÷ net sales) × 100.
Note what that formula requires: a count, at the start and the end of the period. Purchases alone are not COGS. A month where you bought two extra cases of oat milk that are still sitting in the back room will look terrible on a purchases-only basis, and a month where you ran your stock down will look artificially great. Neither is real.
The benchmark: what’s actually normal
Published restaurant benchmarks put food cost in a 25-40% band depending on format, with a common target of 28-35%; quick-service concepts sit at the lower end and full-service or fine dining at the higher end. Coffee-specific guidance narrows that further — most café operators aim to hold total COGS to 25-35% of revenue, with 28-32% treated as the healthy zone.
Where you land inside that band is mostly determined by your sales mix, not by how well you buy:
| Category | Typical COGS % of that category’s sales | Why |
|---|---|---|
| Espresso and brewed drinks | ~20-30% | A few grams of coffee, some milk, and a cup against a $5-6 retail price |
| Tea and hot chocolate | ~15-25% | Lowest ingredient cost per cup of anything you sell |
| Pastries and food (bought in) | ~30-40% | You are paying a wholesale bakery price, then marking up once |
| Retail whole bean and merch | ~40-60% | Standard wholesale-to-retail markup; margin is thin unless you roast |
Category ranges are directional, drawn from the published café and restaurant benchmarks in Sources. Your own numbers will differ by market and supplier.
This is why a shop selling almost nothing but drinks can genuinely run 24% COGS, and why adding a strong food program can push a blended number to 34% while increasing total gross profit dollars. Percentage is a diagnostic, not a goal. A 34% COGS on $60,000 of monthly sales leaves you more money than 27% on $35,000.
A worked example (illustrative)
Take a café doing $48,000 in net monthly sales. All numbers below are illustrative — plug in your own.
- Beginning inventory (counted, 1st of month): $9,400
- Purchases during the month (all supplier invoices, including disposables): $14,800
- Ending inventory (counted, last day): $9,900
COGS = $9,400 + $14,800 − $9,900 = $14,300
COGS % = $14,300 ÷ $48,000 = 29.8%
That is a healthy number. Now watch what a single bad habit does to it. Suppose the same shop is comping about 12 staff drinks a day at an average ingredient cost of $1.10, and wasting roughly a litre and a half of milk a day on failed steaming and the last-call brew dump:
- Staff drinks: 12 × $1.10 × 30 = $396
- Milk waste: 1.5 L × ~$2.20 × 30 = $99
That is $495 a month of COGS producing zero revenue — about 1.0 point of COGS percentage, or roughly $5,900 a year. Neither of those line items shows up anywhere on your P&L as a problem. They just quietly live inside the 29.8%.
Where the money actually goes in a $5.75 latte
A rough anatomy of a 12oz latte, using mid-range Canadian wholesale inputs. Again, illustrative — your bean price and dairy contract will move these.
| Input | Cost |
|---|---|
| 18g espresso (at ~$26/kg wholesale) | $0.47 |
| 300ml whole milk (at ~$2.20/L) | $0.66 |
| 12oz cup, lid, sleeve | $0.38 |
| Total ingredient + packaging cost | $1.51 |
| Retail price | $5.75 |
| COGS on this item | ~26% |
Two things fall out of that table immediately. First, milk is usually your single largest drink input — bigger than coffee — which is why dairy pricing and waste discipline move your COGS more than switching bean suppliers. Second, an oat milk substitution at roughly double the dairy cost adds about $0.66 to that cup. If you are absorbing that instead of charging for it, every alt-milk latte you sell runs several points worse than the table above. Most shops charge $0.75-$1.00 for the substitution for exactly this reason.
Why your current COGS number is probably wrong
The four most common ways café owners get this number wrong:
- No physical count. Using purchases as a proxy for COGS. This is the big one, and it makes month-to-month comparison meaningless.
- Disposables left out. Cups, lids, sleeves, and bags are typically 25-45 cents per takeaway order. On 4,000 orders a month that is well over $1,000 that belongs in COGS.
- Comps and staff drinks untracked. If they are rung in as $0 sales, the ingredient cost is in COGS and the revenue is not — which is correct, but you can no longer see the size of it. Ring comps through a dedicated discount so the report shows the dollars.
- Retail and drinks blended without thought. A 50% COGS bag of beans and a 25% COGS latte in one bucket produces an average that describes neither.
Fix the counting first. A benchmark is useless against a number you do not trust.
How to track COGS in Square
Square can carry part of this for you. You can store a unit cost against each item in your item library, and Square Dashboard has a Cost of Goods Sold report under Reports → Inventory reports, which shows COGS against revenue, profit, and margin, calculated on a first-in, first-out basis. It is worth being straight about the limitation: this reporting is tied to Square’s inventory and retail tooling and to your plan, and it is only as accurate as the unit costs you enter and maintain. A café that sells prepared drinks made from bulk inputs will find item-level unit costs harder to keep current than a retailer selling packaged goods.
The pragmatic setup most cafés land on:
- Track retail items (bags of beans, merch, bottled drinks) with real unit costs in Square, where item-level COGS works cleanly.
- Track prepared drinks and food at the category level, using invoices plus a monthly count, in a simple spreadsheet.
- Use Square’s sales reports for the revenue side and your category mix, so you know why the percentage moved and not just that it did.
- Count on the same day each month, before opening, always with the same person doing it.
Ten minutes of counting on the first of the month is what turns COGS from a vibe into a number.
Five levers before you raise prices
In rough order of return on effort:
1. Charge properly for alternative milks. The single most common margin leak in specialty coffee. If oat costs you $0.66 more per drink and you charge nothing, you are paying for the privilege of selling your most popular latte.
2. Kill waste at the two known points. Brewed coffee dumped at end of day, and steamed milk over-poured. Both are measurable in a week with a jug and a notepad. Switching your last brew cycle to a smaller batch and portioning milk to the pitcher line are free fixes.
3. Re-mix the menu, don’t just re-price it. Your highest-margin items should be the easiest ones to order. That is a menu design problem, and it is the whole subject of menu engineering for cafés — stars, plowhorses, puzzles and dogs, and what to do with each.
4. Sell out of the low-margin categories deliberately. Food waste is worse than food discount. Moving day-old pastries at a discount before close beats binning them, and there is a whole playbook for selling end-of-day surplus without wrecking margin.
5. Only then, price. When you do move prices, move them where the customer is least sensitive and the margin gain is largest, and do it deliberately rather than across the board — see how to price your café menu for online ordering.
COGS is one of two numbers that decide whether a café makes money. The other is labour, and the same discipline applies there — benchmarks, a real calculation, and a system that tracks it weekly rather than annually. We covered that side in café labour cost percentage and Square Shifts.
Where ordering channels fit into this
One quiet effect of order-ahead worth knowing: mobile orders are typically pre-portioned by the customer, ring in at a slightly higher average ticket, and produce far fewer remakes than a misheard counter order during a rush. Remakes are pure COGS with no revenue attached. They rarely appear in anyone’s cost analysis, but at a busy café they are real money — and they scale with queue pressure, which is exactly what cutting morning rush wait times addresses.
That is the operational argument for a channel you control. Tany builds branded iOS and Android ordering apps on top of your existing Square POS — order-ahead pickup, loyalty, and eGift cards, live in about a day, at $99 CAD/month per location with 0% commission on orders. The relevant point for this article is narrower than the pitch: a percentage commission is a cost that scales against your gross margin exactly like COGS does, and it is worth accounting for in the same conversation.
The takeaway
Target 28-32%. Calculate it properly with a real count. Include your disposables. Split retail from drinks before you benchmark. And when the number drifts, look at milk, waste, comps, and mix before you look at your price list — in that order.
Sources
- How to Calculate Food Cost Percentage — Toast
- Restaurant Cost of Goods Sold (COGS): The Ultimate Guide — 7shifts
- Track Your Food Cost Percentage to Drive Revenue — US Foods
- 21 Restaurant Metrics and How to Calculate Them — TouchBistro
- Track cost of goods sold — Square Support
- Set and update unit costs — Square Support