Cheap protein without meat
Protein is usually the most expensive part of a meal, so it is where the largest savings are. The plant options are genuinely cheaper — but the gap is narrower than the usual advice implies, and the convenient versions give most of it back.
The number that matters is cost per gram of protein, not cost per pound. Here is roughly where things land at typical prices.
The cheap end
Dried beans and lentils
The cheapest protein available anywhere, by a wide margin. A pound of dried beans is $1.50 to $2.50, contains around 100 g of protein, and triples in weight when cooked — so roughly 2 cents per gram of protein, or a third to a quarter of the cheapest meat.
The catch is time, not money: they need soaking and an hour or two of simmering. A pressure cooker removes most of that. What genuinely erodes the saving is buying them tinned, which costs three to five times as much per gram of protein — still cheap in absolute terms, but no longer in a different league.
Lentils need no soaking and cook in twenty-five minutes, which makes them the practical entry point.
Eggs
A dozen large eggs is about 72 g of protein. At $3 a dozen that is about 4 cents per gram — competitive with dried beans, with none of the cooking time, and a complete protein with all the essential amino acids.
Eggs are $0.99/dozen and chicken thighs are $1.33/lb. Eggs are the benchmark everything else is measured against, and they are also the item most exposed to sudden supply shocks — see what to do when a staple price spikes.
Milk and plain yoghurt
Around 5 to 7 cents per gram, and worth mentioning because it is protein people forget to count. Plain yoghurt in a large tub is far cheaper per gram than the same yoghurt in small flavoured pots, which are mostly sugar and packaging.
The middle
Peanut butter and peanuts
About 5 cents per gram, cheap and shelf-stable, though it comes with a lot of fat and calories alongside the protein, which matters if you are counting those.
Cottage cheese
Around 6 to 8 cents per gram and unusually protein-dense for a dairy product. It has become fashionable, which has not helped the price.
Tofu
Roughly 8 to 12 cents per gram — cheaper than most meat, but not dramatically, and considerably dearer than the dried beans it is made from. Its case is convenience and texture rather than economy.
Where the plant options stop winning
Meat substitutes
Plant-based burgers, sausages, and grounds typically run 15 to 25 cents per gram of protein — more than chicken thighs, often more than ground beef. They are bought for other reasons, and those reasons may be good ones, but cost is not among them.
Protein powders and bars
Powder is 10 to 20 cents per gram; bars are 20 to 40. Both are convenience products competing with eggs at 4 cents.
Nuts other than peanuts
Almonds, cashews, and walnuts are 20 to 40 cents per gram of protein. They are a fat source that contains some protein rather than a protein source.
The honest comparison against meat
Chicken thighs and leg quarters sit around 8 to 12 cents per gram, and eggs beat them comfortably. But dried beans at 2 cents beat everything, which raises the obvious question of why anyone buys anything else.
Three real answers. Beans are an incomplete protein on their own, so they want pairing with a grain — the reason rice and beans, dal and rice, and beans and cornbread exist in so many cuisines independently. They take time. And a meal built entirely on them gets monotonous faster than most people expect.
The practical version is not replacement but dilution: keep the meat and use less of it, with beans or lentils carrying the volume. A chilli that is half beans and half beef costs close to half as much as an all-beef one and few people notice. That is a larger and more durable saving than switching protein sources entirely, because it survives contact with what people actually want to eat.
For the meat side of the same arithmetic, see protein per dollar and every beef cut ranked by what you actually get.
Questions or a correction? Get in touch. More on our data sources in About.