Ranking
The cheapest sources of protein, ranked by cost per gram
Which foods give you the most protein per dollar? A ranked table by $/gram of protein, plus the leanest options for cutting, computed from real grocery prices.
This page ranks 16 common supermarket protein foods by a single number: US dollars per 10 grams of protein. The cheapest is dry oats at $0.089. The most expensive is 90/10 ground beef at $0.550. That is a spread of about 6.2x (0.550 divided by 0.089) across foods you can buy in the same trip to the same store.
The shape of the ranking matters more than the headline, because the gaps are not evenly spaced. Oats is an outlier: the jump from oats at $0.089 to the next cheapest food, peanut butter at $0.220, is 2.5x on its own. Everything from peanut butter down to ground beef sits inside a band that is also only about 2.5x wide. And the middle of the table is crowded: cottage cheese ($0.273), whey ($0.312), edamame ($0.333), Greek yogurt ($0.350), milk ($0.353) and eggs ($0.357) are all within 31% of each other, which for most shoppers means the choice between them is not really a cost decision at all.
Two warnings before the table. First, cost per gram of protein has a twin metric that moves in the opposite direction: calories per gram of protein. Oats is 23.0 kcal per gram of protein, canned tuna is 4.5. Cheap protein is usually calorie-dense protein, and this guide treats that as the central trade-off, not a footnote. Second, these prices are maintained, representative US grocery estimates joined to public nutrition data. They are not live prices, not tied to any store or brand, and you should check them against your own receipts. The relative ranking holds up far better than any absolute figure.
Ranking foods by cost per gram of protein, not per serving, makes the cheap sources obvious. Longer bar = better value:
- 1Oats (dry)$0.0089
- 2Soybeans (dried, raw)$0.0096
- 3Wheat flour (all-purpose)$0.0117
- 4Vital wheat gluten$0.0133
- 5Peanuts (raw)$0.0172
- 6Split peas (cooked)$0.0217
- 7Peanut butter$0.0220
- 8Lentils (cooked)$0.0222
Cheap protein is often carb- or fat-dense. If you're cutting, the leanest sources (most protein per calorie) matter more: Canned tuna (in water), Turkey breast (raw), Egg whites (liquid), Tilapia (raw), Vital wheat gluten.
Want the cheapest way to hit your exact protein target under a calorie cap? Use the cheapest-protein planner: it computes the grams, the daily and weekly cost, and warns you if the cheapest source blows your calorie budget.
Want it done for you as a full week of cheap high-protein meals?
Get a cheap high-protein meal plan →About these numbers. Costs are computed from public nutrition data joined to maintained, representative US grocery prices, not live per-store pricing. Your shelf prices will differ. The ranking between foods is far more stable than the absolute dollars, so treat the order as the signal and re-run your own numbers in the planner. Meat and fish figures are raw weight, and cooking drives water off, so cooked cost per gram of protein runs higher.
The full ranking, cheapest to most expensive
All figures are US dollars per 10 grams of protein. Oats (dry) $0.089. Peanut butter $0.220. Lentils (cooked) $0.222. Tofu (firm) $0.235. Black beans (cooked) $0.247. Cottage cheese (lowfat) $0.273. Whey protein $0.312. Edamame $0.333. Greek yogurt (nonfat) $0.350. Milk (2%) $0.353. Eggs $0.357. Chicken breast (raw) $0.400. Canned tuna in water $0.423. Turkey breast (raw) $0.438. Tilapia (raw) $0.475. Ground beef 90/10 (raw) $0.550.
Multiply any of those by 10 to get the cost of 100 grams of protein from that food alone. Oats: $0.89. Tofu: $2.35. Cottage cheese: $2.73. Greek yogurt: $3.50. Chicken breast: $4.00. Ground beef: $5.50. That single conversion is the most useful thing on this page, because it turns an abstract ranking into a number you can put against a weekly grocery budget.
The structural pattern is clean. The five cheapest foods in the table (oats, peanut butter, lentils, tofu, black beans) are all plant foods. The five most expensive (chicken breast, canned tuna, turkey breast, tilapia, ground beef) are all animal muscle. Dairy, eggs and whey fill the middle.
How the number is calculated
The method is deliberately boring: take the price of one reference serving, divide by the grams of protein in that serving, then multiply by 10. For oats that is $0.15 divided by 16.9 g of protein, times 10, which gives $0.089. For ground beef it is $1.10 divided by 20 g, times 10, which gives $0.550. Nothing is weighted, adjusted or smoothed.
The reference serving is 100 grams of the food exactly as it is listed, with one exception. Whey protein is a 30 gram scoop containing 24 g of protein at $0.75, so its figure is 0.75 divided by 24, times 10, or $0.312. Quoting whey per 100 g would make it look artificially expensive against the rest of the table, which is why the scoop is stated explicitly.
The listed state also matters. Lentils and black beans are cooked weight, so the water they absorbed is already priced in, and they still land at $0.222 and $0.247. Chicken, turkey, tilapia and ground beef are raw weight. Canned tuna is drained and ready to eat. Those are not the same measurement basis, which is the subject of a later section.
One thing the metric does not do: it counts grams of protein and nothing else. It does not score amino acid profile, digestibility, micronutrients, satiety, cooking time or whether you will actually eat the food. Treat it as a cost filter, not a verdict.
Why the cheap end is cheap
The cheap end is dominated by bulk dry commodities and minimally processed plant staples. Oats at $0.15 per 100 g is dry matter: no water weight, no refrigeration, no processing beyond rolling. You are paying for a shelf-stable agricultural commodity with almost nothing added, and 16.9 g of protein comes along with 389 kcal of starch.
To hit 100 g of protein from oats you would need 592 g of dry oats (100 divided by 16.9, times 100) for $0.89. That is a large amount of oats and 2,300 kcal, but it is under a dollar. The same 100 g of protein from tofu takes 588 g of tofu at $2.35, and from cooked lentils it takes 1,111 g at $2.22.
Peanut butter at $0.220 is the same logic applied to an oilseed: a dense, shelf-stable bulk crop pressed into a jar. Tofu at $0.235 and black beans at $0.247 are soy and legume protein that skipped the step of being fed to an animal first, which is the single biggest reason the plant end of this table is cheap. Every gram of protein in chicken or beef was built from plant protein an animal already ate.
Why the expensive end costs more
The top five are lean animal muscle, and the price climbs with the difficulty of producing it. Chicken breast is $0.400, turkey breast $0.438, tilapia $0.475, ground beef 90/10 $0.550. Beef costs 1.4x chicken per gram of protein (0.550 divided by 0.400) and 6.2x oats.
Canned tuna at $0.423 is the one genuinely processed item near the top, and it is instructive: it costs 5.8% more per gram of protein than raw chicken breast, and that premium buys you a can, a shelf life measured in years, and zero cooking. If you value that convenience at more than about two cents per 10 g of protein, tuna is the better buy of the two.
Ground beef is worth calling out as the worst cell in the table on both axes at once among the meats. At $0.550 it is the most expensive, and at 8.8 kcal per gram of protein it is the least lean of the animal options, because that 10% fat contributes calories but no protein. Turkey breast at $0.438 and 4.6 kcal per gram of protein is cheaper and leaner.
The calorie trap in the cheap end
This is where a naive reading of the ranking goes wrong. Oats is 23.0 kcal per gram of protein and peanut butter is 23.5. Canned tuna is 4.5. That is a factor of five, running in the opposite direction to price.
Put concrete numbers on it. One hundred grams of protein from oats costs $0.89 and brings 2,300 kcal (23.0 times 100). One hundred grams of protein from canned tuna costs $4.23 (385 g of tuna at $1.10 per 100 g) and brings 446 kcal. The extra $3.34 buys you 1,854 fewer calories for the same protein.
So the decision rule is straightforward. If calories are not the binding constraint on your day, the cheap dense foods are simply the correct answer and the top of the ranking stands as written. If you have a calorie ceiling you are already working to, calories are a second currency, and the honest price of oat protein includes 2,300 kcal of your budget. Neither answer is universal, which is why this page publishes both columns.
The six foods that nothing else beats on both counts
Rank the table on both axes at once and ask a simple question: for each food, is there another food that is both cheaper per gram of protein and leaner per gram of protein? If yes, that food is beaten outright and you can ignore it on cost grounds. Only six foods survive.
The survivors are oats ($0.089, 23.0 kcal per g protein), cooked lentils ($0.222, 12.9), firm tofu ($0.235, 8.5), lowfat cottage cheese ($0.273, 7.6), whey protein ($0.312, 5.0) and canned tuna ($0.423, 4.5). Each one is the cheapest way to buy protein at its particular calorie cost. Together they form a ladder: as you demand leaner protein, the price rises from $0.089 to $0.423.
The other ten are beaten. Peanut butter ($0.220, 23.5) loses to oats on both. Black beans ($0.247, 14.8), edamame ($0.333, 10.1), milk ($0.353, 14.7), eggs ($0.357, 11.3) and ground beef ($0.550, 8.8) all lose to tofu or lentils on both. Greek yogurt ($0.350, 5.9) and chicken breast ($0.400, 5.3) both lose to whey ($0.312, 5.0). Turkey ($0.438, 4.6) and tilapia ($0.475, 4.8) both lose to canned tuna ($0.423, 4.5).
Read that carefully, because being beaten on two numbers does not make a food useless. Whey beats chicken breast on this arithmetic, but chicken is dinner and whey is not. Eggs lose to tofu on both columns and are still eggs. The list tells you where the pure cost efficiency sits, and cottage cheese at $0.273 with 7.6 kcal per gram of protein is the standout: it is the cheapest food in the table that is also genuinely lean.
Raw weights, cooked plates, and how far to trust these prices
Chicken breast, turkey breast, tilapia and ground beef are listed at raw weight. Cooking drives off water, so 100 g raw lands on the plate weighing noticeably less. If you portion by cooked weight and assume the raw row applies, you understate what that plate cost you: a 100 g cooked serving of chicken started as meaningfully more than 100 g raw, so it cost more than $0.90. How much more depends on the cut and how hard you cook it, so weigh raw if you want the ranking to hold.
This caveat is large enough to reorder the table locally. Chicken breast at $0.400 and canned tuna at $0.423 are only 5.8% apart, but chicken is measured raw and tuna is measured drained and ready. On a plate-ready basis that gap narrows and can close entirely. Comparisons within the raw group (chicken against turkey against tilapia against beef) are unaffected, because all four are measured the same way.
On the prices themselves: these are maintained, representative US grocery estimates joined to public nutrition data. They are not live, not real-time, and not specific to any store, region or brand. What travels well is the ranking and the ratios. Store-brand oats will still be roughly an order of magnitude cheaper per gram of protein than 90/10 beef wherever you shop, even if both absolute prices differ from the numbers here. Before you rebuild your cart, check three items against your own store, and if your prices differ by a consistent factor across all three, the ranking still stands.
FAQ
- What is the single cheapest source of protein?
- Dry oats, at $0.089 per 10 grams of protein, which works out to $0.89 for 100 grams of protein. It is more than twice as cheap as the next food in the table, peanut butter at $0.220. The catch is calorie density: oats carries 23.0 kcal for every gram of protein, so that 100 grams of protein arrives with roughly 2,300 calories.
- Is whey protein powder expensive compared with real food?
- No. At $0.312 per 10 grams of protein (a 30 gram scoop with 24 grams of protein at $0.75), whey ranks seventh cheapest of the 16 foods listed. It is cheaper per gram of protein than Greek yogurt ($0.350), milk ($0.353), eggs ($0.357) and every meat and fish in the table. It is also the leanest non-seafood option at 5.0 kcal per gram of protein.
- Are plant proteins always cheaper than animal proteins?
- In this dataset the five cheapest foods are all plant based and the five most expensive are all animal muscle, so the general pattern holds. But it is not absolute: lowfat cottage cheese at $0.273 per 10 grams of protein is cheaper than edamame at $0.333, and whey at $0.312 also beats edamame. Dairy occupies a middle band that overlaps with the more expensive plant options.
- What is the cheapest lean source of protein?
- Lowfat cottage cheese, at $0.273 per 10 grams of protein and 7.6 kcal per gram of protein. If you want leaner still, whey protein is $0.312 at 5.0 kcal per gram of protein, and canned tuna in water is $0.423 at 4.5, the leanest in the table. Nothing in the dataset is both cheaper and leaner than any of these three.
- Why is chicken breast listed raw, and does that change the ranking?
- Chicken, turkey, tilapia and ground beef are all priced per 100 grams of raw weight, so they are directly comparable with each other. They are not directly comparable with canned tuna, which is listed drained and ready to eat. Since raw chicken at $0.400 and canned tuna at $0.423 are only 5.8% apart, accounting for cooking loss can close that gap, so weigh meat raw if you want these figures to be accurate.
- Are these prices accurate for my local store?
- They are maintained, representative US grocery estimates joined to public nutrition data, not live or store-specific prices, and no brand is assumed. Your actual shelf prices will differ by region, store format and week. The relative ranking is far more stable than the absolute numbers, so check two or three items you buy regularly, and if they all differ by a similar factor the order in this guide still applies to your cart.