Comparison

Best Plant Milk: What 27 Nutrition Panels Actually Show

Soy and pea carry six to eight times the protein of a nut milk, and only oat and rice declare added sugars with no sugar in the ingredients. Here is what the panels say.

Written by Elena Ricci, Founder & lead writer Published Updated

Quick answer

There is no single best plant milk; the right one depends on your goal. Across 27 US cartons we read, soy and pea declare 6 to 8 g of protein a cup against 1 g for almond, cashew, walnut and macadamia, with pistachio the highest nut milk at 3 to 4 g. Unsweetened cashew and almond are the lowest in calories at 24 to 31 a cup. Oat and rice are the only cartons declaring added sugars, 2.9 to 7 g a cup, even though neither lists any sugar in its ingredients.

There is no single best plant milk, and the panels show why: the categories differ more from each other than the brands within them do. We read the published Nutrition Facts for 27 US cartons. Soy and pea declare 6 to 8 g of protein a cup. Almond, cashew, walnut and macadamia declare about 1 g. Oat and rice are the only ones carrying an added-sugars line, and neither lists a sugar in its ingredients.

How do the plant milks compare per cup?

Ordered by protein, which is the one number that separates the categories cleanly.

Base Cartons Calories Protein (g) Fat (g) Carbs (g) Total sugars (g) Added sugars (g)
Pea 1 69.6 8.0 4.5 0 0 0
Soy 4 79.2 to 91.2 6.0 to 8.0 2.5 to 4.5 3.0 to 6.0 0 to 2.0 0
Pistachio 2 80 to 100 3 to 4 8 4 1 0
Oat 4 91.2 to 120 2.0 to 3.0 1.5 to 5.0 16.0 to 19.0 3.0 to 7.0 2.9 to 7.0
Cashew 4 24.0 to 45.6 1.0 2.0 to 4.0 1.0 to 2.0 0 0
Almond 4 28.8 to 30.8 1.0 2.5 1.0 0 0
Coconut 3 50.4 to 60.0 1.0 5.0 1.0 0 to 1.0 0
Macadamia 2 40.8 to 69.6 1.0 3.5 to 7.0 1.0 to 4.0 0 0
Walnut 1 40.8 1.0 3.5 2.0 0 0
Rice 2 120 1.0 2.5 23.0 6.0 to 10.0 6.0

Figures are per serving, 237 or 240 ml, as USDA FoodData Central returns them for each branded record, rounded here to one decimal place. The pistachio rows publish only one full panel between them. Full dataset, with every FDC ID and record date: plant-milk-nutrition-panels-2026-11.csv.

Why do oat and rice declare added sugars when no sugar is in the ingredients?

Because the sugar is made from the grain during processing, and FDA counts that as added. It is the sharpest split in the dataset, and the only one you cannot find by reading the ingredients.

Oatly's Original lists its ingredients as "oat base (water, oats)" plus 2% or less of oil, phosphates, calcium salts, sea salt and vitamins. No sugar appears anywhere. Its panel declares 7 g of total sugars a cup and attributes all 7 g to added sugars. The brand's own page explains it plainly: the added sugars are created when the oats are liquefied.

FDA settled the question in guidance. Asked whether sugars created through the controlled hydrolysis of starch in plant-based beverages "(e.g., beverages made from oats and rice)" should be declared as Added Sugars, the answer is one word:

Yes. Sugars created through the controlled hydrolysis of starch or other complex carbohydrates in the production of plant-based beverages (e.g. beverages made from oats and rice) or other foods need to be declared as Added Sugars on the Nutrition Facts label because the sugars created through controlled hydrolysis add empty calories to the diet.

Every oat and rice carton in our set that carries an added-sugars line attributes nearly all its sugar to it: 6.96 g of 7.01, 6.96 of 7.01, 4.08 of 4.01, 2.88 of 3.00, and 6.00 of 6.00. The sixth, a rice drink whose FDC record dates from February 2018, predates the added-sugars line and carries none.

Two honest limits. The guidance is nonbinding, and it says so on every page. And the figures on either side of those ratios come from USDA's per-serving values, which are computed from per-100 g data and carry rounding artifacts, which is why one carton's added sugars lands a hundredth of a gram above its total sugars.

Nothing else in the set declares an added sugar. Soy is a bean rather than a starch, so the four soy cartons declare 0 to 2 g of total sugars and no added sugars at all. Every nut carton declares zero sugar of any kind.

Which plant milk has the most protein?

Soy and pea, by a margin no nut milk comes near. The pea carton declares 8.0 g a cup and the four soy cartons 6.0 to 8.0 g. Every almond, cashew, walnut and macadamia carton we read declares about 1 g. That is a six to eightfold gap, and it is the single largest difference between plant milk categories.

The peer-reviewed picture agrees. A 2022 study in Frontiers in Nutrition measured protein per 100 ml at 3.78 g for soy against 3.26 g for cow's milk, with 1.02 g for almond, 0.46 g for oat, 0.32 g for coconut and 0.17 g for rice. Soy was the only plant milk to match cow's-milk protein quantity, though its protein scored lower on digestibility and amino-acid quality, so the match is in grams rather than in quality.

If protein is why you are buying milk, the answer is soy or pea. Nut milks are not protein drinks.

Where does pistachio milk fit?

Between the two groups, and it is the highest-protein nut milk in the set. Three Trees' unsweetened organic carton declares 4 g of protein a cup and Elmhurst's declares 3 g, against about 1 g for every almond, cashew, walnut and macadamia carton we read. Pistachio costs more calories for it, at 80 to 100 a cup.

One thing to be straight about: the Three Trees carton is a blend. Its ingredients run "filtered water, organic pistachios, organic almonds, French grey salt", so the almonds are doing some of that work. Elmhurst's single-nut carton, which lists only water, pistachios and salt, publishes calories and protein and nothing else.

That thin disclosure is itself the pattern. Our pistachio milk nutrition panel study found only two of the US pistachio brands publishing a full panel at all, and our label study found the purest carton divides out to roughly 6% pistachio. Harvard Health makes the same point from the other side: pistachio milk runs a little higher in protein than most plant milks, but commercial versions hold little actual pistachio, so you miss most of the whole nut's thiamin, manganese and B6. For the head-to-head detail see pistachio milk vs oat milk, vs soy and vs almond milk.

Which is the lowest-calorie plant milk?

Unsweetened cashew and almond. The lowest carton in the set is a Harris Teeter unsweetened cashewmilk at 24 calories a cup, and the four almond cartons sit at 28.8 to 30.8. Rice is the highest at 120, with oat close behind at 91.2 to 120.

The ranking tracks fat and carbohydrate rather than anything nutritional. Almond and cashew are mostly water with a little nut in them, which is why they are both the lowest in calories and the lowest in protein. If you use milk to lighten coffee, that is a fine trade. If you are leaning on it for nutrition, it is not.

Does coconut milk count as a high-fat choice?

On saturated fat, yes, and it is the one place where a plant milk stands clearly apart. The three coconut cartons declare about 5 g of fat a cup, of which 4.5 to 5.0 g is saturated. That is 90% to 100% of the fat.

Every nut carton in the set sits under 15%. Three Trees' pistachio declares 1 g saturated of 8 g total, the Forager cashew 0.5 g of 3.5, and the Lechia macadamia 1.0 g of 7.0. Coconut is not a nut and its fat does not behave like one, which the category name hides. Compare the two directly in pistachio milk vs coconut milk.

Why does fortification matter more than the base ingredient?

Because the spread within a category is wider than the spread between categories. Calcium a cup across our set runs from 0 mg to 451 mg. The Forager unsweetened cashewmilk declares none, and a Wegmans organic almondmilk declares 19 mg, while several fortified cartons declare 451 mg. Two almond cartons in the same table differ more than twenty-fold.

Both of the low ones are short, plain-ingredient products, which is the honest tension: the carton with the fewest additives is also the carton with no added calcium. A US market survey in the Journal of the Academy of Nutrition and Dietetics found only about 76% of oat, 69% of soy and 66% of almond products fortified with both calcium and vitamin D, so roughly a third are not. Harvard's guidance is to choose unsweetened, fortified products and keep added sugar under about 10 g a serving. The label decides this, not the category name.

Which plant milk is best for fiber?

Oat, though the gap is smaller than its reputation. The four oat cartons declare 1.92 g of fiber a cup. Soy runs 0 to 1.92 g, the Lechia macadamia declares 2.88 g from added inulin, and almond, cashew, coconut, walnut and rice declare essentially none.

Oat fiber includes beta-glucan, the soluble fiber shown to lower LDL cholesterol, which cow's milk has none of. UF/IFAS flags the limit directly: it may be difficult to consume enough beta-glucan from oat milk to get that effect, so oat milk is not a cholesterol treatment.

What do they cost?

Price is the one criterion the category names do not predict. We read 33 plant milk cartons off five US brands' own stores on 2 November 2026, all the same 32 fl oz size: oat from Mooala at $6.34 a liter, almond, cashew, walnut, hazelnut and oat from Elmhurst at $7.39, and pistachio at $9.50. Pistachio is the dearest in that index, at half again the cheapest oat.

The price does not follow the ingredient either. Elmhurst sells 17 cartons at one size in two price tiers, and walnut and hazelnut, neither a cheap nut, sit in the lower tier beside oat. The full index and method are in what pistachio milk costs.

A note on children and infants

Plant milks are not a like-for-like replacement for breast milk or infant formula. Per the NHS, rice drinks should not be given to children under five because of their arsenic content, a caution echoed by FDA's work on inorganic arsenic in rice products. The NHS says unsweetened, calcium-fortified soya, oat or almond drinks are acceptable from age one, and for toddlers soy or oat are generally preferred over nut milks for protein. If a young child relies on a plant milk, discuss it with a health visitor or pediatrician first.

So match the milk to the job: soy or pea for protein, cashew or almond for fewest calories, oat for fiber and foam, and unsweetened and fortified in every case. To go deeper on a single pairing, browse the pistachio milk comparisons or the best pistachio milk brands.

Methodology

What we included. Twenty-seven cartons of plant milk sold in the United States, covering ten bases: pea, soy, pistachio, oat, cashew, almond, coconut, macadamia, walnut and rice. Twenty-five rows are branded records in USDA FoodData Central, read through the FoodData Central API on 9 November 2026. Each row records its FDC ID and the date USDA last modified that record, which runs from February 2018 to June 2023.

Which version of each product. The plainest one the brand sells: the carton labeled unsweetened where one exists. Oat and rice have no unsweetened version in the set, so those rows are the "original" carton, which is the plainest sold.

How the figures were derived. FoodData Central returns branded nutrients per 100 g and a per-serving set computed from them. We publish the per-serving set as returned, which is why values carry decimals that a printed panel rounds away. We did no conversion and no estimation of our own.

Validation. We checked the method against a brand's own published panel. USDA's record for Oatly Original gives 120 calories, 4.99 g fat, 0.504 g saturated fat, 101 mg sodium, 16.0 g carbohydrate, 1.92 g fiber, 7.01 g total sugars, 6.96 g added sugars, 3.00 g protein and 350 mg calcium. Oatly's own page prints 120, 5, 0.5, 100, 16, 2, 7, 7, 3 and 350. Every figure agrees to the panel's rounding.

What we excluded. Flavored, sweetened, barista, creamer and protein-fortified versions, except one unsweetened vanilla cashewmilk whose panel is identical to its plain sibling and which is flagged in the label_descriptor column. Blends of two bases were excluded, which is why no hemp row appears: the only unsweetened hemp records we found were a coconut-hemp blend, a sweetened original, and a record carrying no brand owner and no modification date.

We also excluded one FoodData Central pistachio record outright. It declares 2 calories a serving alongside 3.5 g of fat, which is impossible, since the fat alone accounts for about 31. It carries no brand owner and no modification date. Branded records are submitted by the label owner and are not audited, so a few are wrong on their face.

The two pistachio rows come from elsewhere, and are marked as such in the source column. FoodData Central holds no usable unsweetened pistachio milk record, so those rows are carried from our own pistachio milk nutrition panel study of August 2026, where they were read off the printed panel.

Limitations. This is what manufacturers published, not what we measured in a lab. Branded records carry the label as submitted, so a record modified in 2018 may not match the carton on a shelf today, and the added-sugars line only became mandatory for large manufacturers in January 2020, which is why one 2018 rice record has none. Serving size is 240 ml on 25 rows and 237 ml on two, a difference of about 1.3% that we did not normalize away. Sample sizes per base are small, one to four cartons, so the ranges show the spread we found rather than the spread that exists. Store brands are over-represented, because they submit records to FoodData Central more consistently than national brands do.

Reuse and citation

This dataset is published under CC BY 4.0. Use it, including commercially, with attribution.

Suggested citation: Ricci, E. (2026). Plant milk nutrition panels: 27 US cartons compared. pistachiomilk.org. https://pistachiomilk.org/best-plant-milk/

Version history

  • v1.2 (9 November 2026). Rebuilt around the 27-carton panel dataset. Replaced the previous approximation table, whose figures were representative rather than measured, with per-serving values read from USDA FoodData Central. Added the added-sugars finding for oat and rice, the saturated-fat finding for coconut and the calcium fortification range. CSV, methodology and this history added.
  • v1.1 (2 November 2026). Added the brand-direct price section from the plant milk price index.
  • v1.0 (22 June 2026). First version, built on extension and peer-reviewed summary figures.

Allergy note

Almond, cashew, pistachio, walnut and macadamia milks are tree-nut products and are unsuitable for anyone with a tree-nut allergy. Soy milk is one of the major food allergens and should be avoided by anyone with a soy allergy. Oat, rice, pea and coconut milks are typically free of nuts and dairy, but check the label, since shared production lines and added ingredients vary by brand. One cashewmilk in our set lists almond butter in its ingredients. Most plant milks here are dairy-free and vegan, which makes them useful swaps for lactose intolerance, but dairy-free does not mean allergen-free.

Frequently asked questions

Which plant milk has the most protein?
Soy and pea. Across the 27 cartons we read, the four soy cartons declare 6.0 to 8.0 g of protein a cup and the one pea carton declares 8.0 g. Every almond, cashew, walnut and macadamia carton in the set declares about 1 g. Pistachio sits between them at 3 to 4 g, which makes it the highest-protein nut milk we measured.
Why does oat milk declare added sugars when its only ingredients are water and oats?
Because FDA says those sugars count. Oat drinks are made by breaking oat starch down into simpler sugars with enzymes, and FDA guidance answers the question directly: sugars created through the controlled hydrolysis of starch in plant-based beverages made from oats and rice must be declared as Added Sugars. Oatly's own product page says the added sugars are created when the oats are liquefied. Every oat and rice carton in our set that carries an added-sugars line attributes nearly all its sugar to it.
Which is the lowest-calorie plant milk?
Unsweetened cashew and almond. The lowest carton in our set is an unsweetened cashewmilk at 24 calories a cup, and the four almond cartons run 28.8 to 30.8. The trade is protein: both declare about 1 g a cup against 8 g for soy.
Is a plant milk automatically fortified with calcium?
No, and the gap is larger than the category names suggest. Within our set, calcium a cup runs from 0 mg on one unsweetened cashewmilk and 19 mg on one organic almondmilk up to 451 mg on several fortified cartons. Two cartons of the same nut can differ more than twenty-fold. The label decides this, not the ingredient.
Is plant milk safe for babies and toddlers?
Plant milks are not a like-for-like replacement for breast milk or formula in infants. The NHS says rice drinks should not be given to children under five because of arsenic, and that unsweetened, calcium-fortified soya, oat or almond drinks are acceptable from age one. For toddlers, soy or oat are preferred over nut milks for protein.