Guides

How to price milk alternatives and add-ons: formulas for oat milk, extra shots and syrups

Mays cover card: How to price milk alternatives and add-ons: formulas for oat milk, extra shots and syrups — Cost per drink by size, three upcharge formulas and the price of a free swap

"Is there a charge for oat milk?" Many cafés answer it with a number someone picked on opening day. Then the carton price goes up, the 16-ounce drink uses more than anyone thought, and the swap that was meant to break even is costing money on every cup.

Pricing a swap or an add-on is the same as pricing anything else on the menu: know what it costs, decide what margin you want, and check it when prices change. This guide gives you the formulas and a worked example. All money figures are hypothetical; use your own invoices. For pricing whole menu items, start with our guide to plate costing and menu pricing.

Step 1: Measure what you really use

Recipes say "milk to fill". That isn't a number. For each drink size, measure:

  1. Pour the milk you'd normally steam into a measuring jug, for each size. Do it three times and take the average.
  2. Measure what's left in the pitcher after a normal pour. That's your waste.
  3. Do the same for cold drinks, which often use more milk than hot ones.

The share you actually serve is your yield. If you pour 10 ounces into the pitcher and about 8.5 end up in the cup, your yield is 85%.

Different milks behave differently when steamed, so measure the alternatives separately rather than assuming they match dairy.

Step 2: Cost per drink, by size

Cost per ounce = carton price ÷ ounces in the carton Milk cost per drink = ounces poured × cost per ounce ÷ yield

A worked example, with hypothetical prices: whole milk at $4.00 a gallon (128 oz), so about $0.031 an ounce; an oat milk at $5.00 for a 64 oz carton, so about $0.078 an ounce. Yield 85% for both.

Size

Milk poured

Whole milk cost

Oat milk cost

Difference

8 oz

6 oz

$0.22

$0.55

$0.33

12 oz

9 oz

$0.33

$0.83

$0.50

16 oz

12 oz

$0.44

$1.10

$0.66

The difference grows with the size. A flat upcharge that covers the 8-ounce drink may not cover the 16-ounce one.

Step 3: Choose an upcharge formula

There are three common ways to set the price of a swap. None is the right one for every café; pick one and use it for every swap, so the prices make sense together.

1. Cover the cost.

Upcharge = alternative cost − dairy cost

In the example, $0.50 on a 12 oz drink. The drink keeps the same dollar profit as with dairy, but its cost % goes up.

2. Keep the cost %.

Upcharge = (alternative cost − dairy cost) ÷ your target cost %

With a 25% target, $0.50 ÷ 0.25 = $2.00. That keeps the drink's cost % the same, but few guests will pay $2.00 for a swap. It's useful mainly as the ceiling.

3. Cover the cost plus a set margin.

Upcharge = cost difference on your largest size, rounded up to a price you like

In the example, $0.66 on the 16 oz drink, rounded up to $0.75. One price for every size, and it covers the biggest drink.

Then sense-check it against what cafés near you charge. You don't have to match them, but you should know if you're far off.

Step 4: Price the add-ons the same way

The same two lines work for every add-on:

Add-on cost = amount used × cost per unit ÷ yield Add-on price = add-on cost ÷ target cost %, rounded

Hypothetical examples:

Add-on

How to measure

Cost

Price at a 25–30% target

Extra shot

Grams in one shot × cost per gram of beans

e.g. 9 g × $0.04 = $0.36

about $1.25

Syrup

Pump 10 times into a measuring cup to find ounces per pump; bottle price ÷ ounces in the bottle

e.g. 2 pumps at $0.12 = $0.24

about $0.80–$1.00

Cold foam

Ounces of milk and syrup in one topping

your number

cost ÷ target

Sauce drizzle

Grams or pumps per drink

your number

cost ÷ target

Measure the pump yourself. Pumps vary, and a pump on a 16-ounce drink is often more than one.

If you charge per pump, decide how many pumps are included in each flavored drink by size, and write it on the recipe card, so the second pump isn't a guess.

Step 5: Decide whether a swap should be free

Some cafés make plant milks free, as a welcome to guests who can't or don't drink dairy. That's a reasonable choice, as long as you know what it costs:

Monthly cost of a free swap = swaps a day × cost difference × days open

With hypothetical numbers: 40 oat swaps a day × $0.50 × 30 days = $600 a month. If that's worth it to you, build it into the base price of your milk drinks instead of losing it silently. Our guide to raising menu prices covers how.

A middle way some cafés use: one free swap (often the most requested milk) and an upcharge for the rest.

Step 6: Allergens and the swap

Plant milks bring their own allergens. Under the Food Code's definition, major food allergens include milk, soybeans and "tree nuts (such as almonds, pecans, or walnuts)" (FDA Food Code 2022, §1-201.10(B)). So an almond milk swap swaps one major allergen for another, and a soy milk swap does the same.

The Food Code also says "The PERMIT HOLDER shall notify CONSUMERS by written notification of the presence of MAJOR FOOD ALLERGENS as an ingredient in unPACKAGED FOOD items that are served or sold to the CONSUMER" (§3-602.12(C)). Check how your state or county applies it. In practice:

  • List each milk's allergens on the menu board or a card at the register, from the carton's label.
  • Keep separate pitchers for dairy and each alternative, labelled.
  • Purge and wipe the steam wand between milks.
  • Treat "I'm allergic" differently from "I prefer oat". An allergy follows your allergy procedure, every time.
  • Read the carton when you change brands. Ingredients and "may contain" statements change.

Step 7: Put it on the menu board clearly

  • One line, near the drinks: "Oat, almond or soy +$0.75. Extra shot +$1.25. Syrup +$1.00."
  • Same price on the board, the POS and any online menu. Check all three whenever you change one.
  • Teach the team one answer to "Is there a charge for oat milk?" so nobody makes up a discount at the register.

Step 8: Review it when costs change

Re-run the numbers when a carton or bean price changes, when you change suppliers, or at least once a quarter. Keep a one-page sheet:

Item

Unit cost

Amount per drink (by size)

Cost per drink

Price

Cost %

Last checked

Oat milk swap







Almond milk swap







Extra shot







Syrup (per pump)







Your milk and add-on pricing checklist

  • [ ] Milk measured for each size, hot and cold, with a yield
  • [ ] Cost per drink for dairy and each alternative, by size
  • [ ] One upcharge formula, used for every swap
  • [ ] The largest size covered by the upcharge
  • [ ] Add-ons costed from measured amounts, pumps included
  • [ ] Free swaps costed per month and built into prices if you keep them
  • [ ] Allergens for each milk listed, separate pitchers, wand purged
  • [ ] The same prices on the board, the POS and online
  • [ ] A review date in the calendar

Where Mays fits

  • Cost every swap and add-on. On Inventory → Modifiers, build each one (Oat milk swap, Extra shot) with its ingredients and a Serving price $, and Mays shows its Cost and Cost % from your vendor prices. Use 0 for a free swap: it still shows the cost. See Menu lists and modifiers.
  • See the effect on the whole drinks menu. Put your drinks and modifiers in a Drinks menu list with a Target cost %. A free swap adds cost but no price, so it raises the list's Actual %.
  • Costs follow your invoices. A new price on a posted vendor invoice shows up in every recipe and modifier that uses the item. See Recipes and plate costing and Vendor invoices.
  • Sales come out of stock. Map your POS modifiers on the Modifiers tab of Inventory → POS, and each night a modifier's ingredients come out of stock once for every drink it was added to. See POS mapping and automatic depletion.

What Mays doesn't do: a modifier only adds ingredients. An oat milk swap takes out the oat milk, but the drink's own recipe still takes out its dairy, so dairy usage reads high on drinks with a swap.

Price the swap like a menu item

A swap or an add-on is a small menu item with its own cost. Measure it, pick one formula, and check it when the carton price changes, and the question at the counter has an answer you can stand behind.

Start your free trial: 30 days, every module, no card needed. Or book a walkthrough and we'll cost your modifiers with you.