Sales & Costs

What It Costs to Make a Latte, Line by Line

Mark, founder of Parly·September 2, 2026·6 min read

The drink nobody actually costs

A latte leaves the bar and $6.50 goes into the register. Twelve ounces of milk, twenty grams of coffee, a cup, a lid, and a sleeve leave with it. The first number is on a report by that evening. The second list is the one almost nobody prices.

Search for what a latte costs to make and you get a range wide enough to be useless, because the pages answering it are not costing a drink. They are averaging a category. A 4 oz cortado and a 16 oz iced oat latte are both "a latte" to a benchmark and are not remotely the same object on your shelf. One pours two ounces of milk. The other pours twelve. Averaging them produces a number that describes neither.

So here is one drink, costed to the cent, with every line shown. One 16 oz hot oat latte, the way it comes off my bar, with the pack prices I pay. Your prices will be different. The lines will not be.

The latte, line by line

Hot Oat Milk Latte (16 oz)

Ethiopian beans

$0.57

20g (0.71 oz) oz @ $0.81

Oat milk

$1.80

12 oz oz @ $0.15

16 oz hot cup

$0.24

1 each @ $0.24

Hot lid

$0.11

1 each @ $0.11

Cup sleeve

$0.05

1 each @ $0.05

Total$2.77

Five lines. Four of them are objects you can hold. Here is where each number comes from.

The shot. Twenty grams of Ethiopian, because every espresso drink on my menu is a double. This is the line most owners get wrong, and they get it wrong in the same direction: they cost a single shot because that is what the recipe card in their head says, then pull doubles all day. If your bar pulls doubles, cost doubles. Ten grams of error per drink compounds across every espresso drink you sell.

The milk. Twelve ounces into a 16 oz cup, which is the biggest single line on the drink by a distance. More on that below, because this is where the real money is.

The cup, the lid, the sleeve. Forty cents of paper. Individually trivial, which is why they get left out of most costing exercises, and collectively about 14 percent of the drink. Leave them out and every menu price you set from that number is 14 percent optimistic.

💡 The line people forget

Paper is not overhead. A cup leaves the shelf on a specific sale, so it belongs on that drink's cost line, not in a monthly supplies bucket you look at once a quarter.

Milk is most of the drink

Look at the breakdown again. Milk is $1.80 of a $2.77 drink. Sixty-five percent. Everything else on that ticket, the coffee you obsess over, the cup, the lid, is the other third.

That ratio is the single most useful thing on this page, because it tells you where to spend your attention. Owners spend hours negotiating bean prices and almost none on the milk line. A ten percent bean improvement saves about six cents a drink. A ten percent milk improvement saves eighteen.

It also means your default milk decides your food cost. Oat runs meaningfully higher per ounce than whole in every price list I have seen. If oat is your house default, as it is at my shop, your average latte costs more to make than the same latte across the street where the default is whole, on the same menu at the same price. That is not a problem to fix. It is a fact to price against, and you cannot price against it if you have never put the two numbers side by side. Working out what your own shop actually pours is its own exercise, and it is worth doing before you touch a menu price.

The modifier is not free

Here is the part the SERP full of latte-cost estimates never covers, and it is the part that actually moves your number.

A customer says "make it oat." The receipt reads $6.50 either way. Your cost does not. The swap changes twelve ounces of ingredient on that ticket, and if your price for oat is higher than your price for whole, that ticket just got more expensive to make while earning exactly the same revenue. Sell enough of them and your food cost drifts up with no line item anywhere explaining why.

The register cannot help you here. Square records the sale and, by its own documentation (accessed September 2026), its Recipes beta "cannot be applied to modifiers or multi-variation items." So the modifier that changes two thirds of your drink's cost is the one thing the tool cannot see.

I know exactly how big that blind spot gets, because I ran with it for months. When my milk-choice modifiers were finally counted properly, oat usage in my own numbers went from a reported 41 bottles a day to about 13.5, and whole milk went from reading roughly zero to about 14 a day. Same sales, same drinks. The only thing that changed was whether the swap was counted. Every per-drink cost I had looked at before that was computed with the wrong milk on two thirds of my milk drinks.

Check this before you trust any latte cost

If your costing does not read the milk modifier on the ticket, it is costing the house default on every drink. That is not a rounding error on a latte. It is the largest line on the drink.

What the drink actually leaves you

Now put a price on it. A $6.50 latte that costs $2.77 to make leaves $3.73 on the ticket before anyone is paid to make it. In food cost terms that is about 43 percent, which is higher than the number most owners assume they are running, and it is honest because nothing was left out of the denominator.

Two things follow from that.

The first is that a 20 cent price increase on your pack cost is not a rounding error. Twenty cents of milk across 120 lattes is $24 a day, roughly $8,700 a year, and it arrives silently in an invoice you approve in eleven seconds. Costing a drink once tells you what it costs today. Recosting it when a pack price moves is what keeps the menu honest, which is the whole argument for pricing off recipes instead of the shop across the street.

The second is that volume and cost do not rank the same way. Your best-selling drink is often not the drink earning the most, and the only way to see that is per-drink costs sitting next to per-drink sales counts, which is worked through here. A latte at 43 percent and a drip at half that tell you two different things about which sale you want more of on a Tuesday.

Cost your own latte before the next order

Do it on paper, in about ten minutes, before you touch software.

  1. Write the recipe as it is actually made. Not the menu description. Grams of coffee, ounces of milk, and every piece of paper it leaves in. Ask whoever is on bar, then watch them make one.
  2. Get pack cost and pack size from the last invoice. A case of oat, twelve bottles, 32 ounces each, is 384 ounces. Divide pack cost by that and you have a cost per ounce.
  3. Multiply and add the paper. Cup, lid, sleeve, straw. Each one gets its own line, at each one's own unit cost.
  4. Do it a second time with your other milk. Same drink, whole instead of oat. The gap between the two is what a modifier costs you, and it is the number to price against.
  5. Divide by the menu price. That percentage is your real food cost on your most-sold drink, and it belongs next to the food cost number you use for the whole shop.

Start with the latte, because it is the drink you sell most and the drink with the biggest milk line. When those five rows are filled in and the modifier version sits underneath, you will know something about your menu that no benchmark range was ever going to tell you.