Fact-checked · , including U.S. Department of Agriculture, U.S. Bureau of Labor Statistics
Credit: Daily Vitality
Key Takeaways
•On protein per dollar, 2% dairy milk comes out on top at about 26.6 grams per dollar, with whole milk close behind at 24.6. Soy lands at 15.5 and unsweetened almond at 3.1.
•Unsweetened soy milk actually carries the most protein per glass (8.7 grams), but a glass costs roughly 80% more than dairy.
•Calcium in plant milks is almost entirely added. Fortified cartons run 260 to 470 mg a glass; unfortified ones run 7 to 40 mg, so the ingredient list matters more than the plant.
Standing in front of the milk case can feel like a pop quiz. There is the gallon jug you grew up with, and next to it a wall of cartons made from soybeans, almonds and oats, each one promising something a little different. Most comparisons you'll find online stop at a nutrition chart. Very few tell you what a glass actually costs, and almost none show their math.
So we did the math. We took one 8-ounce glass of each milk, pulled the protein, calcium and sugar from USDA's lab-analyzed food records, and priced each glass from the federal government's own national price file. Then we divided one by the other to see how much protein and calcium a dollar buys.
A quick, honest heads-up before the numbers: there is no free public price for oat milk anywhere in the federal data, so oat appears here on nutrition only. We would rather leave a cell blank than fill it with a guess. Everything else on this page can be rebuilt from files anyone can download.
The Verdict, in One Table
Here is what one glass of each milk delivers, and what it costs. A "glass" is 8 fluid ounces, which USDA weighs at 244 grams for every milk on this list. Prices are our estimates in August 2026 dollars.
5 rows · 7 columnsTap a header to sort
Dairy, 2%
8.2 g
307 mg
11.9 g
$0.31
26.6 g
998 mg
Dairy, whole
8.0 g
300 mg
11.7 g
$0.32
24.6 g
926 mg
Soy, unsweetened
8.7 g
246 mg*
1.4 g
$0.56
15.5 g
440 mg
Almond, unsweetened
1.6 g
384 mg*
0 g
$0.52
3.1 g
744 mg
Oat, unsweetened
1.9 g
362 mg*
5.7 g
No public price
Not ranked
Not ranked
*Plant-milk calcium is an average across fortified and unfortified cartons, so no single carton matches it. The section on calcium below splits the two groups.
The winner on protein per dollar is 2% dairy milk. A dollar buys about 26.6 grams of protein, or put the other way, each gram of protein costs about 3.8 cents. Whole milk is a close second at 4.1 cents a gram. Soy comes in at 6.5 cents, and unsweetened almond milk at 32.3 cents.
That almond figure isn't a knock on almond milk. It simply reflects what the carton is: mostly water, with a small amount of almond. If protein is not the reason you're pouring it, the number may not matter to you at all.
The worksheet
Every price in the table comes from the same three steps. We started with the average price per 100 grams from the USDA Economic Research Service's Purchase to Plate price file, which is built from grocery scanner data. We used only rows the agency priced directly from sales, never the ones it filled in by borrowing a price from a similar food.
Those prices are from 2017 and 2018, so step two brings them forward. We multiplied each one by the change in the matching Consumer Price Index series from the Bureau of Labor Statistics, measured from the 2017-18 average to August 2026. Step three multiplies by 2.44 to turn 100 grams into a 244-gram glass.
4 rows · 7 columns
Milk
2017/18 price per 100 g
CPI factor to Aug 2026
Aug 2026 price per 100 g
Price per glass
Protein per 100 g
Protein per $1
Dairy, 2%
$0.092085
1.37074
$0.12622
$0.308
3.36 g
26.6 g
Dairy, whole
$0.098280
1.35105
$0.13278
$0.324
3.27 g
24.6 g
Soy
$0.169213
1.35511
$0.22930
$0.560
3.55 g
15.5 g
Almond, unsweetened
$0.156240
1.35511
$0.21172
$0.517
0.66 g
3.1 g
One nice feature of this setup: protein per dollar is simply protein per 100 grams divided by price per 100 grams. The size of the glass cancels out, so the ranking would be the same whether your glass holds 6 ounces or 12.
Method box: what these prices can and can't say. The price file's newest data is from 2017/18, so every price here is an older national average carried forward with an inflation index, not a shelf tag. Oat milk has no entry in any year of the file, so it has no price and no per-dollar ranking. The soy price covers all regular soy milk, including sweetened and vanilla cartons, because no unsweetened-only price exists. And the government does not track plant-milk inflation separately: it prices soy and almond milk inside its general "Milk" index, which is mostly dairy.
Why Dairy Wins on Protein Per Dollar, and Where Soy Pulls Ahead
The ranking comes down to two numbers moving in opposite directions. On protein, soy and dairy are near twins. On price, they are not.
Start with the protein. USDA's lab-analyzed record for unsweetened soy milk in FoodData Central shows 3.55 grams of protein per 100 grams, which works out to 8.7 grams a glass. Whole dairy milk measures 3.27 grams per 100, or 8.0 grams a glass, and 2% milk sits at 8.2. So on average, a glass of unsweetened soy milk edges out a glass of dairy milk on protein.
It is a small edge, and the samples overlap. USDA's soy cartons ranged from 3.0 to 4.7 grams per 100 grams, while whole milk samples ranged from 2.9 to 3.5. The fair reading is that the two are in the same neighborhood, with soy a touch higher.
Now the price. Our estimate puts a glass of soy milk at about 56 cents and a glass of 2% milk at about 31 cents. That is roughly 1.8 times the cost for about the same protein, which is why 2% milk delivers 1.7 times as much protein per dollar. For soy to tie, its price would need to drop by about 42%.
Almond and oat milk tell a different story. Each carries less than 2 grams of protein a glass on USDA's records, about a fifth of what dairy or soy provides. Even at a lower price than soy, almond milk's protein per dollar is about one-eighth of 2% milk's.
There is a caveat worth naming on the soy number. Our soy protein comes from an unsweetened carton, while the soy price is an average across sweetened and unsweetened ones. If we swap in USDA's record for sweetened soy milk, which is a bit more diluted, soy drops to about 12.1 grams of protein per dollar. The order of the ranking does not change either way.
Whenever we estimate a price, we like to hold it up against a second, independent number. For dairy milk there is a good one.
The Bureau of Labor Statistics publishes an average price for a gallon of whole milk every month. For August 2026, the BLS average price for a gallon of fresh whole milk was $4.229. A gallon holds 16 glasses, so that comes to about 26 cents a glass. The matching series for low-fat and reduced-fat milk was $3.715 a gallon, or about 23 cents a glass.
Our estimates were higher: 32 cents for whole and 31 cents for 2%. That puts our whole-milk figure about 23% above the gallon price, and our 2% figure about 33% above.
We looked into why, and the gap turns out to be built in rather than a mistake in the inflation step. Back in 2017 and 2018, the scanner-based price was already about 25% higher than the gallon price. The reason is what each one measures. The gallon series tracks gallon jugs only. The scanner file averages every container of milk sold, including quarts, half gallons and organic milk, which all cost more per ounce.
That difference is useful in its own right. It suggests the gallon jug is the least expensive way dairy milk is sold, by a comfortable margin. On gallon prices, whole milk reaches about 30 grams of protein per dollar and low-fat milk about 35. So if anything, our table understates dairy's lead for households that buy by the gallon.
Calcium: The Number That Depends on the Ingredient List
Protein in these milks comes from the soybean, the almond, the oat or the cow. Calcium is a different matter. In dairy milk it is there naturally and it barely varies: USDA's whole milk samples ranged only from 116 to 130 mg per 100 grams. In plant milks, nearly all of it is added at the factory, and some cartons skip that step entirely.
You can see this in USDA's own data. Its unsweetened almond milk samples ranged from about 9 mg to 225 mg of calcium per 100 grams. Soy ranged from 11 to 160, and oat from 48 to 300. Those are not small wobbles. They are two different kinds of product averaged into one line.
So we pulled them apart. The table below covers 16 widely sold plain cartons, unsweetened wherever the brand offers one, grouped by whether the ingredient list includes an added calcium salt. Values are per 240 mL serving, as the label states them.
22 rows · 5 columnsTap a header to sort
Soy, fortified
Silk Organic Unsweet
8 g
280 mg
Calcium carbonate
Current label, 2026
365 Unsweetened
7 g
300 mg
Calcium carbonate
USDA record, 2023
O Organics Unsweetened
8 g
340 mg
Tricalcium phosphate
USDA record, 2023
Soy, unfortified
West Life Organic Unsweetened Plain
9 g
about 10 mg
None
Brand page 2026; calcium from 2023 record
Edensoy Unsweetened
12 g
about 40 mg
None
Brand page 2026; calcium from 2023 record
Almond, fortified
Almond Breeze Unsweetened Original
1 g
450 mg
Calcium carbonate
Current label, 2026
Silk Unsweet
1 g
470 mg
Calcium carbonate
Current label, 2026
Califia Farms Unsweetened
1 g
440 mg
Calcium carbonate
Ingredients 2026; values from 2023 record
Great Value Unsweetened Original
1 g
450 mg
Calcium carbonate
USDA record, 2023
Almond, unfortified
MALK Unsweetened
4 g
about 30 mg
None
Ingredients 2026; values from 2023 record
Elmhurst Unsweetened
5 g
about 7 mg
None
Ingredients 2026; values from 2023 record
Oat, fortified
Planet Oat Unsweetened Original
under 1 g
350 mg
Calcium carbonate
Current label, 2026
Oatly Original
3 g
350 mg
Calcium carbonate and calcium phosphates
Current label, 2026
Chobani Oat Zero Sugar
1 g
260 mg
Calcium carbonate
USDA record, 2023
Califia Farms Zero Sugar Oat
1 g
260 mg
Calcium carbonate
USDA record, 2023
Oat, unfortified
Elmhurst Unsweetened Oat
4 g
about 20 mg
None
Ingredients 2026; values from 2023 record
A few patterns jump out. Fortified almond milk carries the most calcium on the label, at 440 to 470 mg a glass, roughly half again as much as dairy milk's 300. Fortified soy and oat cartons land between 260 and 350. The unfortified cartons, the ones with two or three ingredients, carry between 7 and 40 mg.
There is a trade-off hiding in that table, too. The short-ingredient cartons tend to have more of the actual plant in them, so they carry more protein: 4 to 5 grams for the almond milks instead of 1, and 9 to 12 grams for the soy milks instead of 7 or 8. More protein, almost no calcium. Neither choice is wrong. They are simply different products sharing a shelf.
For context on what those milligrams mean, the Daily Value for calcium on U.S. labels is 1,300 mg, according to the National Institutes of Health Office of Dietary Supplements. The same fact sheet notes that calcium absorption from dairy products and fortified foods is about 30%. It does not rank one added form of calcium against another, and neither will we.
One practical wrinkle is worth knowing. Added calcium is a mineral powder suspended in the liquid, and it can drift toward the bottom of the carton as it sits. Researchers have written about this, including a 2006 paper titled The Settling Problem in Calcium-Fortified Soybean Drinks in the Journal of the American Dietetic Association. We could not access the full paper, so we are not quoting figures from it. The takeaway we are comfortable with is modest: the label describes the carton as a whole, which is not necessarily what lands in each pour.
On calcium per dollar, dairy still leads at 926 to 998 mg, but fortified almond milk comes close. A fortified almond carton at 450 mg a glass works out to roughly 870 mg per dollar at our estimated price. Unfortified cartons drop to about 60 to 70 mg per dollar.
Sugar is not part of our ranking, but it is the label line that surprises people most, so it deserves a short stop.
Dairy milk shows 11.7 to 11.9 grams of total sugars a glass on USDA's records. That is lactose, the sugar that occurs naturally in milk, and the added-sugars line on a plain dairy carton reads zero. Unsweetened soy shows about 1.4 grams, and unsweetened almond rounds to zero.
Oat milk is the odd one out. USDA's lab record for unsweetened oat milk measured 2.3 grams of sugars per 100 grams, or 5.7 grams a glass, with no sweetener involved. The explanation is in how oat milk is made. Enzymes are used to break down oat starch so the drink turns smooth and pourable, and that process creates sugars such as maltose along the way.
Here is where the label gets interesting. The Food and Drug Administration's guidance on added sugars says sugars created this way in plant-based beverages, and it names oat and rice drinks specifically, need to be declared as added sugars on the Nutrition Facts panel. That is true even though nothing sweet was poured in.
You can see the rule at work on a real carton. The label for Oatly's Original oat milk lists 7 grams of added sugars per cup, with no sugar or syrup anywhere in the ingredients, and a footnote explaining that the added sugars are created when the oats are liquefied.
Not every oat milk lands in the same place. Planet Oat's Unsweetened Original declares 0 grams of total and added sugars. The difference comes down to how each maker processes the oats, which is another reason the panel on the specific carton tells you more than the word "oat" on the front.
You may have wondered whether a carton made from almonds is even allowed to say "milk." For now, the answer is yes.
In February 2023, the Food and Drug Administration released a draft guidance on labeling plant-based milk alternatives. It says names like "soy milk" and "almond milk" have become established through common use, and that these products may be labeled as a beverage, a drink or a milk.
The draft also suggests something voluntary. When a plant milk uses the word "milk" and has a different nutrient makeup from dairy, the agency recommends a short statement on the package, along the lines of "Contains lower amounts of" a named nutrient "than milk." The comparison point it uses is the USDA Food and Nutrition Service's nutrient criteria for fluid milk substitutes, which include 8 grams of protein and 276 mg of calcium per cup.
Two things are worth holding onto here. First, this is still a draft. As of our check in October 2026, the agency had not issued a final version, and the document itself is marked as not for implementation. Second, those two benchmark numbers make a handy yardstick. On USDA's records, soy is the only plant milk in our comparison that reaches 8 grams of protein, and unfortified cartons of any kind fall far short of 276 mg of calcium.
Federal dietary guidance draws a similar line. The agency notes that fortified soy beverages are the only plant-based milk alternative the Dietary Guidelines for Americans count in the dairy group. That lines up with what the per-glass numbers show: soy behaves like dairy on protein, and almond and oat do not.
Reading a Carton in the Aisle
All of this boils down to a few things you can check in about ten seconds, right there at the shelf.
The first is the protein line. A glass of dairy or soy milk will typically show 7 to 9 grams. Most almond and oat milks show 1 to 3. If protein is part of why you're buying, that single line does most of the sorting for you.
The second is the ingredient list, scanned for the word "calcium." Calcium carbonate and tricalcium phosphate are the two you'll see most often. If neither appears, the carton is unfortified, and the calcium line on the panel will usually be in the low double digits.
The third is the added-sugars line, especially on oat milk. As we saw, it can show several grams even when no sweetener is listed. In the USDA label records we reviewed, "original" soy and almond milks from the largest brands declared about 5 to 7 grams of added sugars a cup, which the unsweetened versions do not carry.
Tip
Shelf tags often print a unit price per fluid ounce or per quart in small type. Multiplying a per-ounce unit price by 8 gives the price of a glass at your own store, which will be more current than any national average, including ours.
And if you are weighing a wider set of options, from pea to coconut to rice, our guide comparing popular milk alternatives covers more of the shelf.
No single milk wins every column. Dairy takes protein per dollar and calcium per dollar. Soy takes protein per glass among the plant milks and comes closest to dairy overall. Fortified almond milk takes label calcium. Oat milk's strengths are not ones this table measures. Knowing which column matters most to you is what turns a wall of cartons back into a simple choice.
About the Author
Ryan May
Senior Editor
Ryan May is a digital publishing leader with more than 25 years of experience turning complex information into clear, useful editorial work. At Daily Vitality, he focuses on evidence-led reporting about nutrition, fitness, healthy aging, and long-term wellbeing, informed by his own interests in cooking, yoga, cycling, and sustainable healthy habits.
On USDA's lab-analyzed records, unsweetened soy milk averages about 8.7 grams per 8-ounce glass, slightly ahead of 2% dairy milk at 8.2 grams and whole milk at 8.0 grams. Unsweetened oat and almond milk average 1.9 and 1.6 grams. The soy and dairy samples overlap, so the two are best thought of as roughly equal.
The federal price file we used has no entry for oat milk in any of its four editions, the newest of which covers 2017/18. We chose not to substitute a price captured from a single retailer, because it would not be comparable to the national averages used for the other milks.
They are estimates. The underlying prices are national averages from 2017 and 2018, carried forward to August 2026 using the federal Consumer Price Index for milk. They show how the milks compare to one another more reliably than they show what you will pay at a particular store.
In the national scanner data, 2% milk averaged slightly less per 100 grams than whole milk, and USDA's records show it with slightly more protein. The price gap is about a penny and a half per glass, so in practice the two are very close.
A fortified carton often does on the label, at 440 to 470 mg per glass compared with about 300 mg for dairy milk. An unfortified carton has very little, typically 7 to 30 mg. The ingredient list shows which kind you have.
They are two mineral salts commonly used to add calcium to plant milks. Most of the cartons we checked use calcium carbonate, and a few use tricalcium phosphate or a mix. The federal fact sheet we relied on gives one absorption figure for fortified foods in general, about 30%, and does not rank the two.
Making oat milk involves using enzymes to break down oat starch, which creates sugars. Federal labeling guidance says sugars created this way in plant-based beverages are to be declared as added sugars, even though no sweetener was added.
The first table uses USDA's lab-analyzed averages per 244-gram glass. The carton table uses each product's own label per 240 mL serving, and labels round to the nearest gram. For plant milks, the USDA calcium average also blends fortified and unfortified cartons, so it will not match any single label.
It would likely change the prices but not the order. Federal gallon prices put dairy milk at about 23 to 26 cents a glass, lower than our estimate, which widens dairy's lead. A lower shelf price on any carton improves its numbers, and a store's unit price tag is the quickest way to check.
Sources
U.S. Department of Agriculture, Economic Research Service. (2023). Purchase to Plate Suite: National Average Prices for NHANES. Retrieved from https://www.ers.usda.gov/
U.S. Bureau of Labor Statistics. (2026). Consumer Price Index for All Urban Consumers: Milk in U.S. City Average (CUUR0000SEFJ01). Retrieved from https://data.bls.gov/
U.S. Bureau of Labor Statistics. (2026). Consumer Price Index for All Urban Consumers: Fresh Whole Milk in U.S. City Average (CUUR0000SS09011). Retrieved from https://data.bls.gov/
Show 27 more sourcesHide additional sources
U.S. Bureau of Labor Statistics. (2026). Consumer Price Index for All Urban Consumers: Fresh Milk Other Than Whole in U.S. City Average (CUUR0000SS09021). Retrieved from https://data.bls.gov/
U.S. Bureau of Labor Statistics. (2026). Average Price: Milk, Fresh, Whole, Fortified, Per Gallon, U.S. City Average (APU0000709112). Retrieved from https://data.bls.gov/
U.S. Bureau of Labor Statistics. (2026). Average Price: Milk, Fresh, Low-Fat, Reduced Fat, Skim, Per Gallon, U.S. City Average (APU0000FJ1101). Retrieved from https://data.bls.gov/
U.S. Bureau of Labor Statistics. (n.d.). Consumer Price Index Entry Level Item Descriptions. Retrieved from https://www.bls.gov/
U.S. Department of Agriculture, Agricultural Research Service. (2019). FoodData Central: Milk, Whole, 3.25% Milkfat, With Added Vitamin D (FDC ID 746782). Retrieved from https://fdc.nal.usda.gov/
U.S. Department of Agriculture, Agricultural Research Service. (2019). FoodData Central: Milk, Reduced Fat, Fluid, 2% Milkfat, With Added Vitamin A and Vitamin D (FDC ID 746778). Retrieved from https://fdc.nal.usda.gov/
U.S. Department of Agriculture, Agricultural Research Service. (2021). FoodData Central: Soy Milk, Unsweetened, Plain, Shelf Stable (FDC ID 1999630). Retrieved from https://fdc.nal.usda.gov/
U.S. Department of Agriculture, Agricultural Research Service. (2022). FoodData Central: Almond Milk, Unsweetened, Plain, Refrigerated (FDC ID 2257045). Retrieved from https://fdc.nal.usda.gov/
U.S. Department of Agriculture, Agricultural Research Service. (2022). FoodData Central: Oat Milk, Unsweetened, Plain, Refrigerated (FDC ID 2257046). Retrieved from https://fdc.nal.usda.gov/
U.S. Department of Agriculture, Agricultural Research Service. (2026). FoodData Central Download Datasets: Foundation, SR Legacy, FNDDS and Branded Foods. Retrieved from https://fdc.nal.usda.gov/
U.S. Food and Drug Administration. (2023). Draft Guidance for Industry: Labeling of Plant-Based Milk Alternatives and Voluntary Nutrient Statements. Retrieved from https://www.fda.gov/
U.S. Food and Drug Administration. (2023). Labeling of Plant-Based Milk Alternatives and Voluntary Nutrient Statements: Guidance for Industry, Draft Guidance (Docket FDA-2023-D-0451). Retrieved from https://www.fda.gov/
U.S. Food and Drug Administration. (2025). Plant-Based Milk and Animal Food Alternatives. Retrieved from https://www.fda.gov/
U.S. Food and Drug Administration. (n.d.). Questions and Answers Related to the Compliance Date, Added Sugars, and Declaration of Quantitative Amounts of Vitamins and Minerals: Guidance for Industry. Retrieved from https://www.fda.gov/
National Institutes of Health, Office of Dietary Supplements. (n.d.). Calcium: Fact Sheet for Health Professionals. Retrieved from https://ods.od.nih.gov/
Heaney, R. P., & Rafferty, K. (2006). The Settling Problem in Calcium-Fortified Soybean Drinks. Journal of the American Dietetic Association. Retrieved from https://www.jandonline.org/
Silk. (2026). Organic Unsweet Soymilk. Retrieved from https://silk.com/