bocco
Blog Get the app
Nutrition

Protein-to-calorie ratio: the foods that rank highest (and lowest)

By Artem Grebenkin, founder of Bocco · · 7 min read

Protein per 100 calories: best vs. worst

Shrimp24g
Egg whites21g
Chicken breast19g
Lentils8g
Cheddar cheese6g
Peanut butter4g
Grams of protein per 100 calories — rounded, commonly-cited USDA-sourced values.

The short version: protein-to-calorie ratio is just grams of protein per 100 calories — divide protein by calories, multiply by 100. By that measure, cooked shrimp and egg whites top most lists at 21-24g per 100 calories, with lean fish, poultry, and turkey close behind at 19-22g. The surprise is what ranks near the bottom: almonds, peanut butter, cheddar cheese, and bacon are all marketed as "high protein," but their fat content drags them down to 4-7g per 100 calories — closer to a fat source than a protein source by this specific math.

Here's the full table, why the "high protein" foods at the bottom aren't actually a problem, and how to run this number yourself on anything in your fridge.

What the ratio actually measures (and the formula)

Protein-to-calorie ratio answers one narrow question: for every 100 calories a food costs you, how much protein do you get back? It's not a measure of overall nutrition, or whether a food is "good" or "bad" — it's a planning number for a specific job, the same way miles-per-gallon tells you about fuel efficiency and nothing about how comfortable the seats are.

The formula:

(protein grams ÷ calories) × 100 = protein per 100 calories

A food with 20g of protein and 200 calories scores 10. A food with 20g of protein and 100 calories scores 20 — twice as protein-efficient, even though both foods hand you the same 20g. That's the whole idea: total protein grams tell you what you got, but the ratio tells you what it cost you in calories to get it.

The full ranked table: best to worst

Figures below are rounded, commonly-cited values from USDA FoodData Central, the federal nutrient database.1 Cooking method, cut, and brand shift the exact numbers a little — treat these as planning numbers, not lab-precision ones.

Food (cooked, per 100g)CaloriesProteinProtein per 100 kcal
Shrimp9924g24g
Canned tuna in water, drained10023g23g
White fish (cod)10523g22g
Turkey breast, skinless13530g22g
Egg whites5211g21g
Chicken breast, skinless16531g19g
Nonfat Greek yogurt5910g17g
90/10 ground beef17620g11g
Tofu, firm14415g10g
Edamame12112g10g
Lentils1169g8g
Bacon, pan-fried54137g7g
Cheddar cheese40325g6g
Almonds57921g4g
Peanut butter58825g4g

The gap between the top and bottom of this list is roughly sixfold — shrimp delivers six times more protein per calorie than peanut butter, despite peanut butter's reputation as a protein food. That gap is entirely about fat: fat carries 9 calories per gram against protein's 4, so a food doesn't need much fat before it starts diluting the ratio hard. Chasing a high ratio isn't just a numbers game, either — sports-nutrition research links adequate protein intake to better satiety and lean-mass retention while eating in a deficit, which is exactly the situation a protein-dense food is built for.2

Why some "high-protein" foods rank surprisingly low

Peanut butter, almonds, cheddar, and bacon all genuinely contain a lot of protein per serving — two tablespoons of peanut butter really does have around 7g. The problem for the ratio isn't the protein; it's everything riding alongside it. Almonds are roughly 50% fat by weight. Bacon renders most of its calories from rendered fat, not the meat itself. Cheddar is a dairy fat product that happens to also carry protein.

None of that makes these foods bad. It means the label "high protein" is doing less work than people assume, because almost anything with a meaningful amount of protein also has some fat riding along — and food marketing rarely mentions the denominator. A protein bar that boasts "20g of protein!" on the front can still be a 300-calorie bar, which puts it well below chicken breast on this exact measure, even though nobody printed that on the wrapper.

How to calculate the ratio for any food yourself

You don't need this article's table for foods that aren't on it — every packaged food already gives you both numbers on the label.

  1. Find the grams of protein per serving.
  2. Find the calories per serving.
  3. Divide protein by calories, multiply by 100.

Try it on a granola bar: 4g protein, 190 calories → (4 ÷ 190) × 100 ≈ 2.1g per 100 kcal — lower than almost everything in the table above, which tells you plainly that a granola bar is a carb-and-fat snack that happens to contain a little protein, not a protein food. Compare that to a cup of low-fat cottage cheese: roughly 25g protein, 180 calories → (25 ÷ 180) × 100 ≈ 13.9g per 100 kcal — a real protein source by this measure.

A low ratio isn't a red flag

I almost left this section out of Bocco's own nutrition breakdown for exactly this reason — the first time I showed a beta tester a low protein-per-calorie number next to their peanut butter toast, they asked if the app was telling them to stop eating it. It wasn't, and I want to be honest about that limit here, because it's tempting to read a table like this as a hierarchy of good and bad foods. Olive oil scores 0 — it has no protein at all — and it's still one of the better fats you can cook with. Avocado scores low too, and it's doing real work for fiber and healthy fats that this specific number was never built to capture.

The ratio is useful for exactly one job: figuring out which foods let you hit a protein target without spending your whole calorie budget getting there. It's not a scoring system for your whole diet, and a food doesn't need to defend itself against it.

Bocco estimating protein grams and calories from a photo of a meal
Bocco reads a meal photo and returns protein grams alongside calories, so you can see the ratio without doing the math yourself.

This is the exact math Bocco runs in the background every time it estimates a meal — protein grams and total calories together, not protein in isolation. If a portion estimate looks off, you correct it in a sentence ("that was a larger cut of chicken") and both numbers recalculate honestly, so the ratio you're seeing stays real instead of drifting.

Frequently asked questions

What is a good protein-to-calorie ratio?

Above roughly 15g of protein per 100 calories is protein-dense by most standards; the leanest picks — shrimp, egg whites, white fish — reach 20-24g.

Which food has the best protein-to-calorie ratio?

Cooked shrimp and egg whites top most lists at 21-24g of protein per 100 calories, with lean fish and poultry close behind.

Do nuts have a good protein-to-calorie ratio?

No — almonds and peanuts pack real protein but also a lot of fat, so they land around 3.5-4.5g per 100 calories, closer to a fat source than a protein source by this measure.

Is ground beef a good protein-to-calorie-ratio food?

Leaner cuts (90/10) do reasonably well at around 11g per 100 kcal; fattier cuts and processed meats like bacon and salami drop into the 5-7g range because of the added fat calories.

How do I calculate the protein-to-calorie ratio for any food?

Divide the grams of protein by the calories, then multiply by 100 — the nutrition label already gives you both numbers.

Does a low protein-to-calorie ratio mean I should avoid a food?

No. Olive oil and avocado both score low and are still worth eating — the ratio is a planning number for hitting a protein target, not a verdict on whether a food belongs in your diet.

Sources: 1 USDA FoodData Central · 2 Jäger R, Kerksick CM, Campbell BI, et al., "International Society of Sports Nutrition Position Stand: protein and exercise," Journal of the International Society of Sports Nutrition, 2017.

← Back to the blog

This article is for general information only and isn’t medical advice. For guidance about your own health, talk to a doctor or registered dietitian.