nutrition

Which Foods Are Complete Proteins?

Eggs score 1.13 on DIAAS, milk 1.14, beef 1.11, chicken 1.08. Peanut butter scores 0.43 and beans 0.59. Here's what those numbers mean.

Published

Eggs score 1.13 on DIAAS. Dairy scores 1.14, beef 1.11, chicken 1.08, and fish 1.00. Anything at or above 1.00 has no amino acid running short, which is what people mean by complete protein. Peanut butter scores 0.43, beans 0.57 to 0.59, and wheat 0.45.

Those are the numbers. Here’s what to do with them.

FoodDIAAS scoreLimiting amino acidProtein per dollar
Milk, cheese, yogurt, cottage cheese1.14none26.3 to 30.1 g
Eggs1.13none34.4 g
Ground beef1.11none11.5 g
Chicken1.08none24.5 to 50.3 g
Canned tuna1.00none22.4 g
Soy (tofu, TVP)0.90none listed13.6 to 22.5 g
Chickpeas0.83tryptophan56.7 g
Lentils0.63sulfur amino acids56.0 to 77.7 g
White rice0.60lysine48.0 g
Beans (pinto, black, navy)0.57 to 0.59sulfur amino acids75.9 to 97.9 g
Rolled oats0.54lysine46.6 g
Wheat flour, bread, pasta0.45lysine35.8 to 96.0 g
Peanut butter0.43lysine50.7 g

Source: USDA FoodData Central + US store prices, July 2026. Full methodology at /methodology/.

What does a complete protein actually mean?

Your body needs nine essential amino acids it can’t make on its own. A protein source is called complete when it supplies all nine in useful amounts. Incomplete doesn’t mean missing one entirely, it usually means one of them shows up in short supply relative to the others, and that one is called the limiting amino acid.

DIAAS is the modern scale for this. It accounts for how much of each amino acid a food delivers and how much of it you actually absorb, then reports a number where 1.00 means nothing is limiting. It’s a better measure than the older scoring systems and it’s what we used when we re-ranked cheap proteins in protein per dollar adjusted for quality.

One thing to keep in proportion: a score of 0.59 doesn’t mean beans are worthless protein. It means a gram of bean protein does about 59 percent of the job a gram of egg protein does. That’s a discount, not a disqualification.

Why are eggs a complete protein?

Because nothing in the egg runs short, and almost all of it gets absorbed. That combination is what lands eggs at 1.13, above the reference line.

It’s the reason eggs turn up as the benchmark in nutrition writing, and it’s genuinely earned. What it doesn’t make eggs is protein-dense: at 12.56 grams per 100 grams they sit 36th of the 49 foods we priced, well behind dry lentils and peanuts. Quality and density are different questions and eggs win only one of them. The amounts are in how much protein is in two eggs and the density ranking is in foods highest in protein per 100 grams.

Dairy actually edges eggs out at 1.14, which covers milk, mozzarella, cheddar, cottage cheese, and Greek yogurt alike. Nobody puts that on a poster, but it’s what the numbers say.

Is peanut butter a complete protein?

No, and it’s the lowest score in the set at 0.43, limited by lysine. Same story for wheat at 0.45 and oats at 0.54, because cereal grains and peanuts share that particular gap.

This does not make peanut butter a bad buy. It carries 22.21 grams of protein per 100 grams and returns 50.7 grams per dollar, tenth of 49 foods. It’s just doing less per gram than the raw number suggests, which is why it drops to 21.8 quality-adjusted grams per dollar once the score is applied. The full peanut butter picture is in how much protein is in peanut butter.

The lysine gap is also why peanut butter on white bread is two lysine-limited foods stacked on each other. Perfectly fine lunch. Just not the amino acid coverage it looks like.

What about beans and lentils?

Beans score 0.57 to 0.59, lentils 0.63, chickpeas 0.83. They’re limited by the sulfur amino acids, which is the opposite gap from the grains.

That opposition is the entire trick. Legumes and grains complement each other’s amino acid profiles, so beans with rice, lentils with bread, or dal with rice covers ground that neither does alone. It’s not a modern hack, it’s most of the world’s traditional cooking, and we priced it out properly in the cheapest complete protein pairs and beans and rice as a complete protein meal.

Soy is the plant exception at 0.90, which is why tofu, tempeh, and TVP get described as complete. It’s the one legume that doesn’t need a partner grain to hold up its end.

Does the pairing have to happen in the same meal?

The old advice was to combine at every sitting, and that’s been relaxed a lot. The pairing doesn’t need to land in one bowl, which is a relief for anyone who eats lentil soup for lunch and toast for breakfast.

What matters more is variety across the day. If most days include some dairy, eggs, fish or meat, or a decent mix of legumes and grains, the amino acid question mostly sorts itself. Where this genuinely deserves attention is a fully plant-based week built on one crop, and even then the fix is a second crop rather than anything you buy in a tub. The plant-side breakdown is in plant-based protein sources.

Here’s the part I find most useful. The cheapest proteins in the store are the incomplete ones, and after the quality adjustment they still win. Pinto beans go from 97.9 grams per dollar to 57.8 and stay first. Chicken breast sits at 24.5 either way. Being incomplete costs beans a lot on paper and almost nothing on the receipt, which is the practical version of this whole page and the shopping version lives in high protein on a budget.

#complete protein foods #are eggs a complete protein #diaas score #protein quality #grocery data

Frequently Asked Questions

Which foods are complete proteins?
In our 25-food quality dataset, the ones scoring at or above 1.00 on DIAAS are eggs at 1.13, milk and other dairy at 1.14, beef at 1.11, chicken at 1.08, and fish at 1.00. Soy scores 0.90, which is the closest a plant food gets, and it's usually described as complete too.
Why are eggs considered a complete protein?
Because egg protein supplies every essential amino acid in amounts that clear the reference pattern, so nothing in it runs short. That shows up as a DIAAS score of 1.13, above the 1.00 line. Eggs are also highly digestible, which is the other half of what the score measures.
Is peanut butter a complete protein?
No. Peanut butter scores 0.43 on DIAAS, the lowest figure in our quality dataset, and it's limited by lysine. It still carries 22.21 grams of protein per 100 grams and returns 50.7 grams per dollar, so it's a useful food. It just isn't carrying a full amino acid profile on its own.
Do beans count as complete protein?
Not by themselves. Common beans score 0.57 to 0.59 on DIAAS and are limited by the sulfur amino acids, while chickpeas do best of the pulses at 0.83. Legumes and grains complement each other's amino acid profiles, which is why beans with rice or bread is the classic pairing.
Do you have to eat complete proteins at every meal?
The pairing doesn't have to happen in the same bowl. What matters more is the range of protein sources across a day than the timing within it. If most days include some dairy, eggs, fish or meat, or a mix of legumes and grains, the amino acid question tends to look after itself.
Free Meal Plan

Get the Free 7-Day High-Fiber Meal Plan

A printable week of meals that keep you full, with a grocery list included. Subscribe and it's yours, plus our best recipes and kitchen tips every week.
No spam, only interesting things. Unsubscribe anytime.

Disclaimer: The information in this article is for educational purposes only and does not constitute professional medical or nutritional advice. Always consult a qualified healthcare provider before making dietary changes.