The Cheapest Protein Per Gram: 52 Foods Ranked by Cost (US Prices)
We priced 52 protein sources against USDA data using US prices and cooked-yield math. Pinto beans win at about $0.011 per gram of protein — every bean beats every cut of chicken, and beef costs 7 to 17 times more.
Part of The Protein Atlas — your complete guide to protein.
Pinto beans are the cheapest protein you can buy: about $0.011 per gram of protein — roughly a penny a gram. Every bean and lentil beats every cut of chicken. Peanut butter and canned tuna beat every cut of beef. And beef? It runs 7 to 17 times the cost of beans, gram for gram.
The cheap-protein conventional wisdom is right about beans — and right about eggs too.
We ranked 52 protein foods by cost per gram of actual protein, using USDA nutrition data and current US prices, with meat and fish corrected for cooked yield.
- Cheapest protein you can buy: dried pinto beans, ~$0.011/g — about a penny per gram.
- Every bean and lentil beats every cut of chicken, including the cheapest meat in the set (drumsticks at ~$0.032/g).
- Peanut butter (~$0.017/g), firm tofu (~$0.028/g), and canned tuna (~$0.025–0.033/g) all beat every cut of beef.
- Beef runs 7 to 17 times the cost of beans. Cheapest ground beef is ~7.3x pinto; sirloin is ~16.4x.
- Eggs are genuinely cheap protein (~$0.030/g) — beaten by beans, peanut butter, low-fat cottage cheese, and oil-packed tuna (tofu is effectively a tie), competitive with the cheapest chicken (drumsticks at ~$0.032, a tie within our threshold), and cheaper than every cut of beef.
Want the cheapest gram of protein? Dried beans for the floor; canned tuna, peanut butter, and eggs for protein you can stock with little or no cooking. Definitely not steak.
Ask the internet for “cheap protein” and you’ll hear the same three answers: eggs, chicken, and “buy in bulk.” Two of those are wrong, and the third is vague enough to be useless.
So we did the boring thing. We took 52 common protein sources, pulled each one’s protein content from the USDA’s FoodData Central, priced each against current US grocery data, and divided. The result is a single number for every food: cost per gram of protein. Not cost per pound. Not cost per serving. Cost per gram of the macronutrient you’re actually buying these foods for.
Most “cheap protein” lists rank by price per pound or per serving, which quietly rewards watery, low-protein foods and punishes concentrated ones. Cost per gram of protein is the only number that answers the real question — if I need 40 grams of protein today, what’s the least I can spend? This is the most rigorously sourced version of that ranking we know of, with every price dated and every assumption written down.
The Cheapest Protein Per Gram, Ranked
Here’s every food we could defensibly price, cheapest first. The number that matters is the last column: dollars per gram of protein.
A few foods cluster so tightly they’re effectively tied — pinto, kidney, chickpeas, and black beans sit within a fraction of a cent of each other, and eggs (~$0.030/g) and chicken drumsticks (~$0.032/g) land within a tie of each other. Treat differences smaller than about $0.005/g as a tie; the ranking is most meaningful in tiers, not exact rungs.
| Rank | Food | $/g protein | Protein / 100g | Yield | Price basis |
|---|---|---|---|---|---|
| 1 | Pinto beans (dried) | $0.011 | 9.0 g | 2.5x dry | Walmart, 5/30/26 |
| 2 | Kidney beans (dried) | $0.012 | 8.7 g | 2.5x dry | Walmart, 5/30/26 |
| 3 | Chickpeas (dried) | $0.014 | 8.9 g | 2.5x dry | Walmart, 5/30/26 |
| 4 | Black beans (dried) | $0.016 | 8.9 g | 2.5x dry | Walmart, 5/30/26 |
| 5 | Peanut butter | $0.017 | 22.2 g | - | Walmart, 5/30/26 |
| 6 | Lentils (dried) | $0.019 | 9.0 g | 2.5x dry | Walmart, 5/30/26 |
| 7 | Cottage cheese (1% low fat) † | $0.025 | 12.4 g | - | Walmart, 5/30/26 |
| 8 | Tuna, canned in oil | $0.025 | 29.1 g | 0.8 | Walmart, 5/30/26 |
| 9 | Tofu (firm) | $0.028 | 17.3 g | - | Walmart, 5/30/26 |
| 10 | Eggs (whole) | $0.030 | 12.6 g | - | BLS, Apr 2026 |
| 11 | Chicken drumstick | $0.032 | 23.4 g | 0.50 | BLS, Apr 2026 |
| 12 | Chicken thigh (skin-on) | $0.032 | 23.3 g | 0.50 | BLS, Apr 2026 |
| 13 | Peas (green, canned) | $0.033 | 5.4 g | - | Walmart, 5/30/26 |
| 14 | Tuna, canned in water | $0.033 | 25.5 g | 0.8 | Walmart, 5/30/26 |
| 15 | Milk (whole) | $0.034 | 3.2 g | - | BLS, Apr 2026 |
| 16 | Egg whites | $0.034 | 10.9 g | - | BLS, Apr 2026 |
| 17 | Greek yogurt (nonfat) | $0.036 | 10.0 g | - | Walmart, 5/30/26 |
| 18 | Whole chicken | $0.036 | 27.3 g | 0.45 | BLS, Apr 2026 |
| 19 | Parmesan cheese † | $0.037 | 35.8 g | - | Walmart, 5/30/26 |
| 20 | Mozzarella † | $0.037 | 22.2 g | - | Walmart, 5/30/26 |
| 21 | Chicken breast (skinless) | $0.041 | 31.0 g | 0.72 | BLS, Apr 2026 |
| 22 | Sardines (canned) † | $0.042 | 24.6 g | - | Walmart, 5/30/26 |
| 23 | Cottage cheese (4%) | $0.044 | 11.1 g | - | Walmart, 5/30/26 |
| 24 | Cheddar cheese | $0.045 | 22.9 g | - | BLS, Apr 2026 |
| 25 | Ground pork | $0.046 | 25.7 g | 0.75 | Walmart, 5/30/26 |
| 26 | Edamame (frozen) | $0.047 | 12.0 g | - | Walmart, 5/30/26 |
| 27 | Tilapia (frozen) † | $0.048 | 26.2 g | 0.78 | Walmart, 5/30/26 |
| 28 | Turkey (ground) † | $0.053 | 27.4 g | 0.75 | Walmart, 5/30/26 |
| 29 | Ricotta (part-skim) † | $0.056 | 11.3 g | - | Walmart, 5/30/26 |
| 30 | Pork chop (lean) | $0.056 | 25.7 g | 0.7 | BLS, Apr 2026 |
| 31 | Salmon (pink fillet) † | $0.060 | 25.4 g | 0.78 | Walmart, 5/30/26 |
| 32 | Italian sausage † | $0.063 | 18.4 g | 0.75 | Walmart, 5/30/26 |
| 33 | Pork tenderloin | $0.065 | 26.2 g | 0.7 | BLS, Apr 2026 |
| 34 | Whey protein isolate † | $0.065 | 58.1 g | - | Walmart, 5/30/26 |
| 35 | Smoked salmon † | $0.065 | 18.3 g | - | Walmart, 5/30/26 |
| 36 | Tempeh † | $0.076 | 20.3 g | - | Walmart, 5/30/26 |
| 37 | Ground beef (85% lean) | $0.078 | 26.1 g | 0.75 | BLS, Apr 2026 |
| 38 | Ham (sliced) † | $0.078 | 16.8 g | - | Walmart, 5/30/26 |
| 39 | Cod (Atlantic, cooked) † | $0.080 | 22.8 g | 0.78 | Walmart, 5/30/26 |
| 40 | Ground chuck | $0.084 | 25.8 g | 0.7 | BLS, Apr 2026 |
| 41 | Turkey breast † | $0.086 | 29.1 g | 0.7 | Walmart, 5/30/26 |
| 42 | Almonds † | $0.088 | 21.2 g | - | Walmart, 5/30/26 |
| 43 | Lamb leg (lean) † | $0.094 | 28.3 g | 0.7 | Walmart, 5/30/26 |
| 44 | Shrimp (cooked) † | $0.105 | 24.0 g | 0.85 | Walmart, 5/30/26 |
| 45 | Beef brisket / stew | $0.111 | 32.4 g | 0.6 | BLS, Apr 2026 |
| 46 | Bacon | $0.117 | 33.9 g | 0.38 | BLS, Apr 2026 |
| 47 | Beef jerky † | $0.122 | 33.2 g | - | Walmart, 5/30/26 |
| 48 | Mahi-mahi (cooked) † | $0.127 | 23.7 g | 0.78 | Walmart, 5/30/26 |
| 49 | Feta cheese † | $0.143 | 14.2 g | - | Walmart, 5/30/26 |
| 50 | Bison (ground) † | $0.156 | 18.7 g | 0.75 | Walmart, 5/30/26 |
| 51 | Beef sirloin (lean) | $0.173 | 26.8 g | 0.7 | BLS, Apr 2026 |
| 52 | Beef tenderloin | $0.175 | 26.5 g | 0.7 | BLS, Apr 2026 |
All 52 foods we priced, cheapest first, with US prices and cooked-yield correction applied to meat and fish (see methodology). Bold rows are the reference points this article leans on: the two cheapest foods (pinto and kidney beans) and the two key beef anchors (cheapest ground beef and top-end sirloin). The “Yield” column shows the cooked-yield factor we applied — bone-in drumsticks and thighs at 0.50 (as-eaten meat and skin), whole chicken at 0.45, boneless meat at 0.72, ground meat at 0.75, bacon at 0.38, dried legumes at 2.5x dry-to-cooked. Rows marked † are priced from our dated Walmart snapshot but weren’t individually re-verified in a live browser session — they’re sourced estimates, good for the overall picture but not as airtight as the rest. Every headline claim in this article rests only on an un-daggered row (a BLS official price or a price we confirmed in-browser). The cheapest tier — beans, peanut butter, canned tuna, eggs — is all verified or BLS.
A few things jump out immediately:
- The top of the list is almost entirely plants and pantry staples. Pinto beans, kidney beans, chickpeas, black beans, peanut butter, and lentils all land in the cheapest tier — under about $0.019 per gram, and every one of them beats every cut of chicken. Low-fat cottage cheese, oil-packed canned tuna, and firm tofu sit just behind them — the cheapest non-legume foods on the list, though tofu’s number moves a lot with firmness (see tofu vs. tempeh for the breakdown).
- Chicken is the cheapest meat, but not the cheapest protein. Drumsticks ($0.032/g) are the cheapest cut, but every bean and lentil still beats them.
- Beef is expensive protein. The cheapest beef in the set — 85% lean ground at ~$0.078/g — costs about seven times what pinto beans cost. Sirloin and tenderloin sit at the very bottom, effectively tied as the priciest common proteins on the list.
The spread from cheapest to priciest is more than 16x. And here’s the quietly interesting part: a lot of that spread is not “plants versus meat.” Much of it is a cut-and-processing story within the same animal. A chicken drumstick ($0.032/g) costs well under what a chicken breast ($0.041/g) does per gram of protein, once you account for the bones you throw away. Ground beef costs less than half what sirloin costs. Same cow, same bird — wildly different protein economics depending on the cut, the bone, and how much water cooks off.
Are Beans Cheaper Than Meat?
Yes — and at the top of the list, it isn’t close.
Here’s the comparison most people get backwards. Per pound, chicken and beans look similar, and a pound of cooked chicken obviously has far more protein than a pound of beans. True — but it’s the wrong unit. Once you normalize to the gram of protein you’re actually buying — and correct chicken for the bone and water you don’t eat — dried pinto beans (~$0.011/g) and kidney beans (~$0.012/g) come in below every cut of chicken, including the cheapest one, drumsticks (~$0.032/g).
Stack beans against the meat people actually eat and the gap widens fast:
| Food | $/g protein | Multiple of pinto beans |
|---|---|---|
| Pinto beans | $0.011 | 1.0x |
| Kidney beans | $0.012 | ~1.1x |
| Chicken breast (skinless) | $0.041 | ~3.7x |
| Ground beef (85% lean) | $0.078 | 7.3x |
| Beef sirloin (lean) | $0.173 | 16.4x |
A gram of protein from sirloin costs more than sixteen times what the same gram costs from pinto beans. Even the cheapest ground beef costs more than seven times as much. That’s the “7 to 17 times” range in plain numbers.
The catch is real and worth stating plainly: beans are a lower-density protein. You get about 9 g of protein per 100 g of cooked beans versus 28–31 g per 100 g of chicken. To hit 40 g of protein from beans you eat roughly 440 g of cooked beans (about two cups) versus ~130 g of chicken. Beans win on price but cost you volume — you eat more food, and that food brings carbohydrate and fiber along with the protein. For a tight grocery budget, that trade is usually worth it. For a cut weight or a high-protein, low-calorie goal, it often isn’t.
There’s a nutrition caveat too: beef protein is “complete” and comes with heme iron, B12, and zinc that beans deliver in smaller amounts or not at all. Beans bring fiber and folate and a fraction of the saturated fat. The point of this ranking isn’t “stop eating meat.” It’s that if your goal is grams of protein per dollar, beans are the most efficient tool in the store — and pairing them with a cheap grain or a little dairy closes most of the amino-acid gap.
Why dried, not canned? We priced dried beans and converted to a cooked basis, because that’s where the savings live. A 16 oz bag of dried beans yields roughly 2.5x its weight once cooked (the beans absorb water), so a one-dollar bag becomes about 1,130 g of cooked beans. Canned beans (~$0.028/g of protein) cost two to three times more per gram of protein for the convenience of skipping the soak-and-simmer. Buy canned and beans still beat beef and eggs, and land in a dead heat with the cheapest chicken.
Is Chicken or Beef Cheaper Protein?
Chicken, decisively. This one is not subtle: every chicken cut in the dataset is cheaper per gram of protein than every cut of beef.
| Chicken | $/g protein | Beef | $/g protein |
|---|---|---|---|
| Drumstick | $0.032 | Ground beef (85%) | $0.078 |
| Thigh (skin-on) | $0.032 | Ground chuck | $0.084 |
| Whole chicken | $0.036 | Brisket / stew | $0.111 |
| Breast (skinless) | $0.041 | Sirloin (lean) | $0.173 |
| — | — | Tenderloin | $0.175 |
Even chicken breast — the cut people assume is “premium” — lands at about $0.041/g, roughly half the cost of ground beef per gram of protein and well under a quarter the cost of sirloin. There’s no cut of beef in our data that competes with any cut of chicken on price per gram of protein.
So if you eat meat and you’re optimizing for cheap protein, the order is clear: bone-in chicken first (drumsticks, then skin-on thighs), then breast, then everything else. Beef is a flavor, iron, and satiety purchase — not a protein-value purchase. (For the deeper nutrient trade-off, see Pork vs Beef and Chicken Breast vs Thigh.)
Eggs Are Actually a Good Deal
Here’s the finding people get wrong in both directions. Eggs are genuinely cheap protein — just not the outright champion.
Eggs land at $0.030 per gram of protein. A large egg is about 6 grams of protein in a 50-gram package, and at roughly $2.25 a dozen that works out to just about the price of chicken drumsticks. The difference is that what you see is what you pay: eggs need no bone trimming, no cooking-yield correction, no soaking. The sticker price is the protein price.
So where do eggs actually sit? They’re competitive with the cheapest chicken — eggs ($0.030/g), drumsticks ($0.032/g), and skin-on thighs ($0.032/g) all land within our tie threshold — and they beat the pricier chicken cuts, with whole chicken ($0.036) and breast ($0.041) costing more. They beat every cut of beef by a wide margin. The foods that clearly undercut eggs are beans and peanut butter; low-fat cottage cheese, oil-packed tuna, and firm tofu land right alongside them. One honesty note: the eggs-versus-drumsticks call is basis-sensitive. We price chicken on an as-eaten meat-plus-skin basis to match the steak rows; price the drumstick meat-only and its cost per gram climbs, making eggs the outright winner.
Why does the “eggs aren’t cheap protein” myth persist in fitness circles? Because the comparison usually pits eggs against uncorrected raw chicken-breast prices, which look cheaper on the package than they are on the plate. Once you account for the water and trim you lose cooking that breast, eggs come out ahead. The honest verdict: eggs are a solid, convenient, complete cheap protein — keep them in the rotation.
The Pantry Beats the Butcher
The single most useful pattern in the data: shelf-stable, concentrated, ready-to-eat foods punch above their weight, and watery or bony fresh cuts punch below it.
Peanut butter and canned tuna both beat every cut of beef. Peanut butter lands at ~$0.017/g — right alongside the cheapest legumes — and canned tuna comes in at ~$0.025–0.033/g, spanning the cottage-cheese and eggs tiers. (Counterintuitively, oil-packed tuna at ~$0.025/g clearly beats water-packed at ~$0.033/g: once you drain the oil, what’s left is notably more protein-dense — 29.1 g vs 25.5 g per 100 g — than the water-packed solids.) Either way, two of the most “throw it in a sandwich” foods in the house are more protein-efficient than any steak — canned tuna sits as a cheap, stock-the-pantry convenience protein, well below the cheapest beef at $0.078/g. Tuna’s just one tin among many; if you want the rest of the shelf ranked the same way, we priced the whole canned-protein aisle by cost per gram.
Bacon, by contrast, is no bargain. It’s easy to assume cooked bacon’s high protein density (about 34 g per 100 g) makes it cheap protein, but once you account for how much fat and water render off — bacon keeps only about 38% of its raw weight — it lands at roughly $0.117/g, more expensive than most beef. The lesson cuts both ways: concentration helps a food’s density, but if you pay for weight you cook away, the per-gram price climbs.
The throughline: how concentrated, shelf-stable, and yield-friendly a food is matters as much as which animal it came from. Tuna and peanut butter win it outright. Bony chicken, watery raw beef and fish, and high-rendering bacon all lose ground once you price the part you actually eat.
Peanut butter and canned tuna both deliver protein for less than the cheapest beef. The pantry beats the butcher.
Cost Efficiency and Calorie Efficiency Are Nearly Inverted
If you’ve read our Protein Per Calorie ranking, you might expect the cheap foods and the lean foods to be the same foods. They’re almost the opposite.
The most calorie-efficient proteins — the most protein per calorie — are lean animal foods: skinless chicken breast, white fish, nonfat Greek yogurt, canned tuna. The most cost-efficient proteins are beans and peanut butter, which are carb-heavy or fat-heavy and therefore calorie-dense relative to their protein.
| Your goal | Best foods | The catch |
|---|---|---|
| Cutting cost | Beans, peanut butter | Calorie-dense; you eat more |
| Cutting calories | Chicken breast, white fish, nonfat dairy | More expensive per gram |
Canned tuna is the rare food that scores well on both axes — cheap and lean. It’s the closest thing in the dataset to a free lunch. (For the protein-while-cutting angle, see Protein for Weight Loss.)
What to Buy This Week
Cost per gram of protein is one input, not the whole decision — volume, calories, convenience, and what you’ll actually enjoy eating all matter. But if cheap protein is the goal, here’s the move:
- Build your base on dried beans (pinto, kidney, black) and lentils — the cheapest protein floor available, around a penny a gram. Cook a big pot, freeze portions.
- Stock peanut butter, firm tofu, low-fat cottage cheese, canned tuna, and eggs for protein you can keep on hand with little or no cooking — all beat every cut of beef, and eggs are competitive with the cheapest chicken.
- Make chicken your default meat — drumsticks and skin-on thighs are cheapest; breast is still about half the cost of ground beef per gram.
- Buy beef because you want beef, not because you want protein. It’s the most expensive common protein on this list by a wide margin.
And the foods to stop thinking of as the cheapest protein: any beef (a flavor and nutrient buy), bacon (a high-yield-loss splurge, not a value cut), and protein powder (mid-pack on cost — you’re paying for the scoop, not the savings).
Want to build meals around the cheap end of this list? Start with our bean- and tuna-based recipes below, and use the Protein Ranker to compare any two foods head to head.
The Bottom Line
Dried beans are the cheapest protein you can buy — about a penny per gram, cheaper than any meat. Canned tuna and peanut butter are the best no-cook values and both beat every cut of beef. Eggs are a genuinely good deal too — a tie with the cheapest chicken and cheaper than the rest. Chicken is the cheapest meat; beef is the budget loser among common proteins, and bacon — once you account for everything that cooks off — is no bargain either. The pattern underneath it all: cheap protein is protein density divided by price once you correct for cooked yield — not plant versus animal.
Frequently Asked Questions
What is the cheapest source of protein per gram? Dried pinto beans, at roughly $0.011 per gram of protein (about a penny per gram), based on a verified Walmart price for dried beans converted to a cooked basis. Kidney and black beans are nearly identical. They’re cheaper per gram of protein than any meat, including the cheapest chicken (drumsticks at about $0.032/g).
Are beans really cheaper than chicken for protein? Yes — dried pinto and kidney beans (~$0.011–$0.012/g of protein) come in below every cut of chicken, including the cheapest, drumsticks (~$0.032/g). The tradeoff is density: beans have about a third the protein per 100 g, so you eat more food to hit the same protein. Canned beans cost more (~$0.028/g) and land about even with the cheapest chicken; the deepest savings are in dried beans.
Is chicken or beef cheaper protein? Chicken, by a large margin. The cheapest chicken (drumsticks) is about $0.032 per gram of protein; the cheapest beef (85% lean ground) is about $0.078 — roughly 2.4x more. Lean sirloin is about $0.173/g. No beef cut competes with any chicken cut on price per gram of protein, once both are corrected for cooked yield.
Are eggs a cheap source of protein? Yes, genuinely. Eggs land at about $0.030 per gram of protein, effectively a tie with the cheapest chicken (drumsticks and skin-on thighs, ~$0.032 on an as-eaten meat-plus-skin basis), and they beat whole chicken, breast, and every cut of beef. Priced meat-only, the drumstick number climbs and eggs win outright — the comparison is basis-sensitive. Beans and peanut butter come in cheaper, while low-fat cottage cheese, oil-packed tuna, and firm tofu land right alongside. The “eggs aren’t cheap protein” claim usually relies on uncorrected raw chicken-breast prices; correct for cooking yield and eggs come out ahead.
Why is peanut butter such a cheap protein? At a 40 oz jar with about 22 g of protein per 100 g, peanut butter works out to roughly $0.017 per gram of protein — cheaper than canned tuna and every cut of beef. The catch is that it’s calorie-dense and mostly fat, so it’s a budget protein, not a lean one.
Is protein powder cheaper than whole-food protein? No. Whey protein isolate lands mid-pack at about $0.065 per gram of protein — cheaper than beef, but far more expensive than beans (~$0.011/g), peanut butter (~$0.017/g), canned tuna (~$0.025–0.033/g), firm tofu (~$0.028/g), eggs (~$0.030/g), or most cuts of chicken. Powder wins on convenience and protein-per-calorie, not on cost. If you are buying powder anyway, price it per gram of protein: our Canadian powder ranking found a 3.9x spread between the cheapest and priciest tubs.
How We Calculated This (Methodology)
Trust is the whole point of a ranking like this, so here’s exactly how every number was produced. Nothing here is estimated where a real source existed. This is a US ranking, based on US prices — a Canadian-price version is planned.
Protein content comes from USDA FoodData Central, expressed as grams of protein per 100 g of food; every value was re-checked against the live FDC entry on July 11, 2026, and each row in our dataset now carries its FDC ID. For foods normally eaten cooked (beans, fish, meat) we used cooked-basis values, because cooking concentrates protein as water cooks off and using raw values would understate density. Bone-in chicken uses the as-eaten meat-and-skin entries (matching the lean-and-fat basis of the steak rows). For as-eaten foods (canned tuna, peanut butter) we used as-sold values. Canned-tuna protein is on a drained-solids basis (25.5 g per 100 g water-packed, 29.1 g oil-packed, both FDC-verified); this is why drained oil-pack tuna ends up notably more protein-dense, and cheaper per gram, than water-pack.
Cooking and edible yield is the correction that matters most — and the one an earlier version of this ranking got wrong. Raw meat is priced as you buy it, but its protein is measured on a cooked basis, so a naive raw calculation overstates how much protein your dollar actually buys. We bridge the gap with yield factors: bone-in drumsticks and thighs drop to roughly 0.50 as-eaten (meat and skin) weight — about 73% of the purchased weight remains after the bone comes out, and roasting keeps roughly 70% of that — a whole chicken (more bone and carcass) to about 0.45, boneless meat to about 0.72 cooking yield, ground meat to about 0.75, and bacon to about 0.38 once the fat and water render off. Dried legumes go the other way, gaining roughly 2.5x from dry to cooked weight as they absorb water. This yield math is exactly why drumsticks, breast, and bacon end up more expensive than a back-of-envelope raw calculation suggests, and why bacon — high protein density notwithstanding — is no value cut.
Prices — fresh meat, eggs, and milk come from the US Bureau of Labor Statistics Average Price Data — the same series used to compute inflation — for US city average, April 2026. These are population-level average retail prices, not one store’s sale tag, which is exactly what you want for a reference ranking. A couple of honesty notes here: the BLS canned-tuna series is discontinued, so tuna uses a retailer price instead; and we proxy chicken thighs from the BLS chicken-legs series and label them as such, since BLS doesn’t break thighs out separately.
Prices — dairy beyond milk, peanut butter, canned goods, and specific legume varieties come from a dated Walmart.com snapshot taken May 30, 2026 (rows marked † in the table). We used these retailer SKUs where we needed a specific variety or package size that the BLS series doesn’t break out. Walmart is the largest US grocer and a reasonable national-floor benchmark.
The dried-to-cooked conversion is the one place the bean math isn’t a straight divide. USDA protein for beans is reported on a cooked basis (~9 g per 100 g cooked), but you buy beans dry. Dried beans roughly 2.5x their weight when cooked as they absorb water, so we took the dry-bag price, scaled the yield by 2.5 to get grams of cooked beans, and divided into the protein those grams contain. This is the single biggest assumption in the bean numbers; if your beans yield differently, the cost shifts proportionally.
Limitations — every ranking has them, and hiding them is how “cheap protein” lists lose credibility:
- It’s a US ranking. Prices, retail availability, and which cuts are common all differ in Canada and elsewhere. A Canadian-price version is on the way; until then, read the tiers (beans < eggs/cheap chicken < most chicken/dairy < beef) rather than the exact rungs.
- Treat differences under about $0.005/g as ties. Eggs ($0.030/g) and chicken drumsticks ($0.032/g) sit inside that band — calling one “cheaper” would be false precision. The story is in the tiers.
- Prices are a point in time. April 2026 BLS and a May 30, 2026 Walmart snapshot. Grocery prices move. The rankings are far more stable than the absolute numbers — beans will beat beef next year too — but don’t treat $0.011 as gospel six months from now.
- Egg whites are derived from the whole-egg price (treating the protein as if it carried the whole egg’s cost), which is a ceiling, not an exact figure — real bottled egg whites may price differently. For the actual cost and calorie split between the two, see eggs vs. egg whites.
- About a dozen foods were omitted because we couldn’t price them cleanly against a national benchmark (specialty items, regional cuts, and a few SKUs where the available price didn’t match the nutrition entry).
- Every headline claim uses only BLS prices or prices we verified in-browser. The surprising findings are surprising and sourced — if a number couldn’t stand up, it didn’t make the headline.
Featured Recipes
All 6 recipes from this article, ready to cook
1. Mediterranean Chickpea Stew
Mediterranean chickpea stew with spinach, feta, and Greek yogurt. 31g protein, one pot, 40 minutes. A filling vegetarian meal perfect for meal prep.
View Recipe2. Lentil Bolognese Pasta
Brown lentils simmer into a rich, meaty sauce with classic soffritto. 31g protein, 535 cal in 60 min. Topped with Parmesan.
View Recipe3. Spicy Black Bean Tacos with Lime Crema
Cumin-spiced black beans with tangy lime crema and cotija. 30g protein, 658 cal, ready in 20 min. Vegetarian comfort.
View Recipe4. 5-Minute Canned Tuna Protein Bowl with Edamame | 45g Protein
One can of tuna, half cup rice, edamame, cucumber, and a soy-sesame drizzle. 45g protein, 404 calories, zero cooking required. Budget meal prep staple.
View Recipe5. Tuna Salad Lettuce Wraps
Lemony tuna salad with crisp celery nestled in fresh butter lettuce cups. 37g protein, 368 cal in just 15 minutes.
View Recipe6. Tuna & Chickpea Cracker Nachos
Creamy tuna and mashed chickpeas piled on crispy crackers with cheese and fresh veggies. 25g protein, 239 cal, no cooking needed.
View Recipe


