# How to cost a coffee drink: espresso, milk, syrup, cup and lid, with a cost card

*Guides · Mays Team · June 28, 2026*

![Mays cover card: How to cost a coffee drink: espresso, milk, syrup, cup and lid, with a cost card — Six drinks costed line by line, cup and lid included](https://mays-uploads.s3.us-east-2.amazonaws.com/site/blog__cost-coffee-drink-espresso-milk-cup-lid__cover.1691fa92c5.png)

Ask a café owner what a latte costs to make, and you'll often hear a number for the coffee and the milk. Then the cup, lid and sleeve get added at the end, if they're added at all. On a to-go drink, the packaging can cost close to as much as the milk.

This post shows how to cost a drink line by line, with a worked cost card for six common drinks. Every money figure here is **hypothetical**. Use your own invoices. For costing food plates, see our guide to [plate costing and menu pricing](https://www.mays.app/blog/food-cost-plate-costing-menu-pricing).

## The formulas

Every line on a drink cost card comes from one of three formulas.

> **Cost per unit = pack price ÷ units in the pack**  **Line cost = amount used × cost per unit ÷ yield**  **Drink cost % = drink cost ÷ menu price (before sales tax)**

**Yield** is the share of what you buy that ends up in the cup. It's how you account for waste you can't avoid: shots pulled while dialing in the grinder, milk left in the pitcher, coffee poured out of the urn at the end of its holding time. A yield of 90% means every gram that reaches a guest costs 1 ÷ 0.90 of the invoice price.

## Step 1: Cost the espresso

1. **Find the cost per gram.** Divide the bag price by the grams in the bag. A 5 lb bag holds about 2,268 g. At a hypothetical $60.00, that's about $0.0265 a gram.
2. **Use your recipe's dose,** not a guess. If your [recipe card](https://www.mays.app/blog/coffee-food-consistency-recipes-dial-in) says 18 g for a double shot, use 18 g.
3. **Set a yield for dial-in and waste.** Weigh what goes in the grinder for a week and compare it with what the recipes say. If the gap is 5%, your yield is 95%.

**Hypothetical:** 18 g × $0.0265 ÷ 0.95 = **$0.50 per double shot**.

## Step 2: Cost the milk

Measure what you pour for each size, not what the cup holds. Steam a normal drink into a measuring jug a few times and take the average. The difference between what you pour and what ends up in the cup (milk left in the pitcher) is your yield.

**Hypothetical:** whole milk at $4.00 a gallon (128 oz) is about $0.031 an ounce. With an 85% yield:

| Drink | Milk poured | Milk cost |
| --- | --- | --- |
| 12 oz latte | 9 oz | $0.33 |
| 16 oz latte | 12 oz | $0.44 |
| 16 oz iced latte | 10 oz | $0.37 |

Iced drinks often use less milk, because ice takes up room. Measure them separately.

## Step 3: Cost the flavor

For syrups and sauces, find the cost of one pump: pump ten times into a measuring cup, divide by ten to get ounces per pump, then multiply by the bottle's cost per ounce. **Hypothetical:** $0.12 a pump, two pumps in a 16 oz drink, **$0.24**.

Write the number of pumps per size on the recipe card. A barista who adds a third pump "for good measure" adds 50% to the syrup line.

## Step 4: Cost the packaging

This is the line most cost cards skip. Each to-go drink uses a cup and a lid, and often a sleeve or a straw. Take the case price and divide by the count in the case.

| Item | Hypothetical cost each |
| --- | --- |
| 12 oz hot cup | $0.10 |
| 16 oz hot cup | $0.12 |
| Hot lid | $0.05 |
| Sleeve | $0.04 |
| 16 oz cold cup | $0.13 |
| Cold lid | $0.06 |
| Straw | $0.02 |

A drink served in a mug has no packaging line, but it isn't free: it has dishwashing labor, water and breakage instead. Most cafés cost the to-go version and use that number for both, so the price works however the guest orders.

## The cost card

All figures **hypothetical**.

| Drink | Coffee | Milk | Flavor | Packaging | **Drink cost** | Menu price | **Cost %** |
| --- | --- | --- | --- | --- | --- | --- | --- |
| Double espresso (for here) | $0.50 | – | – | – | **$0.50** | $3.25 | **15.4%** |
| 12 oz latte (to go) | $0.50 | $0.33 | – | $0.19 | **$1.02** | $5.00 | **20.4%** |
| 16 oz latte (to go) | $0.50 | $0.44 | – | $0.21 | **$1.15** | $5.75 | **20.0%** |
| 16 oz vanilla latte (to go) | $0.50 | $0.44 | $0.24 | $0.21 | **$1.39** | $6.50 | **21.4%** |
| 16 oz iced latte | $0.50 | $0.37 | – | $0.21 | **$1.08** | $6.00 | **18.0%** |
| 12 oz drip coffee (to go) | $0.65 | – | – | $0.19 | **$0.84** | $3.00 | **28.0%** |

How the drip line works: 22 g of coffee per 12 oz cup × $0.0265 = $0.58, then ÷ 0.90, because about 10% of each batch is poured away when it passes its holding time. That's **$0.65**. Drip has the highest cost % on this card even though its total cost is the lowest. Batch waste is the reason, and it's the line to watch.

Notice what packaging does: on the 12 oz latte it's $0.19 of $1.02, almost a fifth of the cost.

## Step 5: Price from a target

Once you know the cost, you can work out a price from the cost % you're aiming for:

> **Price = drink cost ÷ target cost %**

**Hypothetical:** a 16 oz vanilla latte at $1.39 with a 22% target is $1.39 ÷ 0.22 = $6.32. Round to a price that fits your board, $6.50 here.

Then compare with what cafés near you charge. Our guide to [raising menu prices](https://www.mays.app/blog/raising-menu-prices-cafe) covers how to change prices without losing regulars.

Cost % isn't the whole story, either. A drink at 28% that sells all morning may bring in more dollars than one at 18% that sells five a day. Look at dollars per drink as well as the percentage.

## Step 6: Check it against what you actually use

A cost card is a theory. Once a month, compare it with the real numbers:

- **Beans:** pounds bought (adjusted for the change in stock) against shots sold × dose. A big gap means dial-in waste, remakes, staff drinks or a dose that's crept up.
- **Milk:** gallons used against drinks sold × ounces poured.
- **Cups and lids:** cups used against drinks sold. More cups than drinks usually means double-cupping, spills or cups given away for water.

If the gap is steady, adjust the yield on the card. If it's growing, find out why.

## The cost card template

| Drink and size | Ingredient or item | Amount | Unit | Cost per unit | Yield % | Line cost |
| --- | --- | --- | --- | --- | --- | --- |
|  | Espresso |  | g |  |  |  |
|  | Milk |  | oz |  |  |  |
|  | Syrup |  | pumps |  |  |  |
|  | Cup | 1 | each |  | 100 |  |
|  | Lid | 1 | each |  | 100 |  |
|  | Sleeve or straw | 1 | each |  | 100 |  |
|  | **Drink cost** |  |  |  |  |  |
|  | **Menu price (before tax)** |  |  |  |  |  |
|  | **Cost %** |  |  |  |  |  |

One card per drink and size. A 12 oz and a 16 oz latte are two cards.

## When to review the card

- **When a supplier price changes** for beans, milk or packaging.
- **When you change a recipe,** such as a new dose or a new cup size.
- **When you change suppliers** for cups and lids.
- **At least once a quarter,** even if nothing seems to have changed.

## Your drink costing checklist

- \[ \] Cost per gram of each coffee you use
- \[ \] Dose per drink from the recipe card, with a yield for dial-in waste
- \[ \] Milk measured by size, hot and iced, with a yield
- \[ \] Syrup cost per pump and pumps per size written down
- \[ \] Cup, lid, sleeve and straw costed from the case price
- \[ \] A cost card for each drink and size
- \[ \] Prices checked against a target cost %, and dollars per drink
- \[ \] A monthly check of beans, milk and cups against sales
- \[ \] A review date in the calendar

## Where Mays fits

- **One recipe per drink and size.** In **Inventory → Recipes**, a recipe is one serving. Add the espresso, milk and syrup, and the cup, lid and sleeve too: any inventory item can be an ingredient. Set **Qty**, **Unit** and **Yield %** on each line and the **Serving price $**. See [Recipes and plate costing](https://www.mays.app/help/inventory/recipes-and-costing).
- **Cost and cost % worked out for you.** Each line is costed from the cheapest active vendor price for the item, divided by the pack size and the yield. The recipe shows its **Cost** and **Cost %**, and the recipes list shows a cost % above 35% in red.
- **A drinks target.** Put the drinks in a **Drinks** menu list with a **Target cost %** and compare it with the list's **Actual %**. See [Menu lists and modifiers](https://www.mays.app/help/inventory/menu-lists-and-modifiers).
- **Prices that follow your invoices.** Add cups and lids as items with their case size and vendor price. A new price on a posted invoice shows up in every recipe that uses the item. See [Inventory items](https://www.mays.app/help/inventory/inventory-items) and [Vendor invoices](https://www.mays.app/help/inventory/vendor-invoices).

What Mays doesn't do: there are no sub-recipes on the web, so a house syrup or cold brew concentrate can't be costed once and used in several drinks. Add its ingredients to each drink, or cost it as an item.

## Cost the cup, not just the coffee

Coffee, milk, flavor and packaging, each with an honest yield. Put it on a card, price from a target, and check the card against what you actually buy each month. The latte that feels like a bargain to make may be the one that needs a new price.

[**Start your free trial**](https://go.mays.app/register): 30 days, every module, no card needed. Or [book a walkthrough](https://www.mays.app/book?from=blog-cost-coffee-drink-espresso-milk-cup-lid) and we'll cost your drinks menu with you.

## Related help articles

- Inventory: [Recipes and plate costing](https://www.mays.app/help/inventory/recipes-and-costing) — A recipe lists what goes into one menu item. Mays prices each ingredient from your vendor prices and shows the plate's cost, cost % and margin.
- Inventory: [Menu lists and modifiers](https://www.mays.app/help/inventory/menu-lists-and-modifiers) — Group recipes into menu lists, such as Drinks or Food, and compare each list's food cost % with a target. Modifiers cost the add-ons you sell, like an extra shot.
- Inventory: [Inventory items](https://www.mays.app/help/inventory/inventory-items) — Items are what you count, order and cost, like a carton of oat milk or a pound of espresso. Each has a count unit, other units such as a case, and vendor prices.
- Inventory: [Vendor invoices](https://www.mays.app/help/inventory/vendor-invoices) — Record what vendors delivered and charged. Scan or photograph an invoice, upload its PDF, share it from your phone or email it in, and the AI drafts it; check the lines next to the document, then post it to add the stock and update your prices.

Canonical: https://www.mays.app/blog/cost-coffee-drink-espresso-milk-cup-lid
