The non-dairy milk upcharge is officially dead. Starbucks eliminated it in November 2024. Dunkin' followed in March 2025. Dutch Bros dropped theirs in January 2025. For the first time, you can order oat milk, almond milk, soy milk, or coconut milk at any major coffee chain without paying a cent extra.

That removes the only real barrier to switching. But which one should you actually choose? They taste different, froth differently, have wildly different nutritional profiles, and pair better with some drinks than others. This guide ranks all four, explains when each one shines, and tells you exactly which milk to order for every type of coffee drink.

The Rankings: Overall Best to Most Situational

1Oat Milk
The all-rounder · Best frothing · Closest to dairy · Available everywhere
Oat milk wins because it has the fewest weaknesses. The flavor is mild and naturally sweet — slightly oaty but never overpowering. It complements espresso instead of competing with it, which is why baristas overwhelmingly prefer it. The texture is the closest to whole dairy milk of any plant option: creamy, full-bodied, and smooth. It froths beautifully, producing stable microfoam that holds latte art. In iced drinks, it blends seamlessly without separating or getting watery. There's essentially no drink where oat milk is a bad choice — it works in lattes, cold brew, matcha, chai, Refreshers (as a creamer), and everything in between. The one downside: it's the highest in carbohydrates (~16g per cup) among plant milks, which matters if you're keto or low-carb.
2Soy Milk
Best protein · Good frothing · Polarizing flavor · Not available at Dunkin'
Soy milk is the original plant milk in coffee shops, and for good reason: at ~7g of protein per cup, it's the only plant milk that comes close to dairy's 8g. It froths well (second only to oat), produces decent microfoam, and has a neutral-to-slightly-beany flavor that works in most drinks. The issue is polarization — some people detect a distinct "beany" or chalky undertone that they can't get past. If you're one of them, no amount of syrup will fix it. If you're not, soy is an excellent choice, especially for matcha (it pairs better with earthy flavors than oat) and chai (the neutral base lets the spices dominate). Note: Dunkin' removed soy milk in 2014, so it's only available at Starbucks (all four milks) and some independent shops.
3Almond Milk
Lowest calorie · Distinct nutty flavor · Thin texture · Poor frothing
Almond milk is the lightest option: 30–50 calories per cup with a distinct nutty flavor. In the right drink, that nuttiness is a feature — it's great in flavored iced drinks (iced vanilla latte, caramel macchiato) where the almond adds complexity. But in plain lattes or cappuccinos, almond milk's weaknesses show: it's thin, the foam is weak and unstable, and the nutty aftertaste can clash with espresso's bitterness. It also tends to separate in very hot drinks. Best use case: iced drinks with added flavor. Worst use case: hot cappuccinos or plain hot lattes. Available at all three major chains.
4Coconut Milk
Subtle tropical sweetness · Best for fruity drinks · Worst for espresso · Limited availability
Coconut milk is the most niche option. It has a subtle tropical sweetness that pairs beautifully with fruity drinks — it's literally the ingredient that turns a Strawberry Açaí Refresher into the Pink Drink. In Refreshers, smoothies, and tropical-flavored drinks, coconut milk is unbeatable. But in espresso drinks, it can amplify bitterness rather than soften it, and the thin consistency doesn't create any meaningful foam. It also has the least protein of any option (~0g). Available at Starbucks and Dutch Bros, but Dunkin' discontinued it in 2023.

The Complete Comparison Table

AttributeOatSoyAlmondCoconut
Calories/cup12080–10030–5045–60
Protein/cup3g7g1g~0g
Carbs/cup16g4g1–2g1g
Fat/cup5g4g2.5g4.5g
FrothingExcellentGoodPoorVery poor
Flavor impactMild, sweetNeutral to beanyDistinctly nuttySubtly tropical
Starbucks
Dunkin'
Dutch Bros

The Best Milk for Every Drink Type

The "best" milk changes depending on what you're ordering. Here's the match guide:

DrinkBest MilkWhy
Hot latte / cappuccinoOatBest frothing, creamiest texture, closest to dairy
Iced latteOatFull body, doesn't separate, blends smoothly
Matcha latteOat or SoyBoth complement earthy matcha; soy adds protein
Chai tea latteOatNatural sweetness enhances the spice blend
Cold brew (splash)OatRounds bitterness without diluting flavor
Flavored iced drinksAlmondLight body lets syrups shine; nutty note adds depth
Refreshers / Pink DrinkCoconutTropical sweetness built for fruity bases
Protein-focused orderSoy7g protein, closest to dairy's 8g
Lowest calorie optionAlmond30–50 cal/cup, minimal impact on drink calories
The "barista edition" matters. If you're making coffee at home, regular grocery store oat milk and barista-edition oat milk are very different products. Barista editions (Oatly Barista, Minor Figures, Califia Barista Blend) contain added oils — typically rapeseed or sunflower — that allow the milk to stretch, froth, and pour like dairy. Regular oat milk will still taste good in coffee, but it won't froth well and it may separate in hot drinks. At Starbucks, Dunkin', and Dutch Bros, the oat milk they use is already a barista formulation.

Allergy and Dietary Notes

A few things that trip people up when ordering non-dairy at coffee shops:

Coconut is classified as a tree nut by the FDA. If you have a tree nut allergy, coconut milk may not be safe for you. It's a common misconception that coconut is always allergen-free — check with your allergist.

Starbucks sauces contain hidden dairy. The caramel drizzle, white chocolate mocha sauce, and pumpkin spice sauce all contain dairy. If you're vegan or dairy-free, these will compromise your order even if you've switched the milk. The mocha sauce is dairy-free. Most clear syrups (vanilla, caramel, hazelnut, cinnamon dolce) are also dairy-free. Whipped cream, obviously, contains dairy.

Cross-contamination is unavoidable at high-volume coffee shops. Steam wands, pitchers, and blenders handle dairy milk constantly. If you have a severe dairy allergy (not just intolerance or preference), mention it to your barista so they can take extra precautions, but understand that a fully dairy-free environment isn't possible in most café settings.

Soy contains phytoestrogens — this has been a concern for some people, though current research generally considers moderate soy intake safe for most adults. If you have a thyroid condition or hormone-sensitive health concern, consult your doctor about soy consumption.

The Upcharge Elimination Timeline

For context on how recent this change is — and why it matters:

ChainUpcharge EliminatedPrevious Extra CostAvailable Milks
StarbucksNovember 2024~$0.70–$0.90Oat, Almond, Soy, Coconut
Dutch BrosJanuary 2025~$0.50–$0.70Oat, Almond, Coconut
Dunkin'March 2025~$0.60–$0.80Oat, Almond

This was a long-requested change driven by consumer advocacy (including a significant campaign targeting Starbucks), the broader normalization of plant milk, and competitive pressure from independent shops that had already dropped surcharges. The practical impact: if you order a non-dairy latte every weekday, eliminating the $0.80 upcharge saves you roughly $200 per year.

The Best Non-Dairy Drink Orders at Each Chain

Putting it all together — here's a specific recommended order at each major chain that showcases non-dairy milk at its best:

Starbucks: Iced Brown Sugar Oatmilk Shaken Espresso
Grande · ~$5.75 · 255mg caffeine · 120 cal · 100% vegan by default
The #1 barista-recommended drink at Starbucks is vegan by default. Three shots of Blonde Espresso shaken with brown sugar syrup, ice, and oat milk. The oat milk's natural sweetness complements the brown sugar perfectly, and the cinnamon topping ties it together. No dairy needed, no substitutions required. This drink was designed around oat milk from the start.
Say: "Can I get a grande iced brown sugar oatmilk shaken espresso?"
Dunkin': Medium Iced Latte with Oat Milk and Caramel Swirl
Medium · ~$4.29 · ~166mg caffeine
Dunkin's caramel swirl is richer than Starbucks' caramel syrup, and oat milk gives the latte a creamy body that almond milk can't match. This is the upgraded version of Dunkin's classic iced latte — same price, better texture, no dairy. Ask for one swirl instead of two if you want less sweetness.
Say: "Can I get a medium iced latte with oat milk and caramel swirl?"
Dutch Bros: Golden Eagle with Oat Milk
Medium · ~$6.50 · ~200mg caffeine
The Golden Eagle is normally made with half-and-half (breve), which is the richest, most caloric base available. Swapping to oat milk makes it significantly lighter while keeping the vanilla-caramel flavor profile intact. The oat milk's natural sweetness means you can even ask for fewer pumps of syrup. This is how you get the Dutch Bros experience without the breve calorie bomb.
Say: "Can I get a medium iced Golden Eagle with oat milk instead of breve?"

Not sure which milk fits your taste? Sipory factors in your milk preference when recommending drinks — and adjusts for each chain's specific non-dairy options. Set it once, and every recommendation comes with the right milk already built into the order script. For more on ordering at each chain, see our guides for Starbucks, Dunkin', and Dutch Bros.

Frequently Asked Questions

What is the best non-dairy milk for coffee?

Oat milk is the best all-around non-dairy milk for coffee. It has a mild, naturally sweet flavor that complements rather than competes with espresso, froths better than any other plant milk, and creates the closest texture to dairy in lattes and cappuccinos. Barista-edition oat milk (like Oatly Barista) performs even better thanks to added oils that help it stretch and pour like whole milk.

Is non-dairy milk free at Starbucks now?

Yes. Since November 2024, all non-dairy milks at Starbucks (oat, almond, soy, and coconut) are free — no upcharge. Dunkin' followed in March 2025 (oat and almond only), and Dutch Bros eliminated their plant milk upcharge in January 2025. The $0.70–$0.90 surcharge that used to apply at all three chains is gone.

Which non-dairy milk has the most protein?

Soy milk leads with about 7g of protein per cup — closest to dairy's 8g. Oat milk has about 3g, almond milk has about 1g, and coconut milk has essentially 0g. If protein matters, soy is the clear choice among plant milks.

Which non-dairy milk froths the best?

Oat milk froths the best among plant milks, especially barista editions like Oatly Barista or Minor Figures, which contain added oils for better stretching and microfoam. Soy milk is a decent second for frothing. Almond milk froths poorly (thin, unstable foam), and coconut milk barely froths at all.