The guide
The best high-satiety foods on low carb and keto
Cutting carbs settles one question and leaves the harder one wide open. Every dish in this guide is keto-legal — and they score from 38 to 89. Here is what decides which end you land on.
Dr. Andreas Eenfeldt, MD · · 11 min read

If you have cut carbohydrate, you have already done the hard part. Most of the food engineered to be eaten past fullness is built on flour and sugar, and you removed it. Appetite does get easier in ketosis, too — pooled across studies, people in ketosis report less hunger and less desire to eat than they did before, which is the reverse of what normally happens while losing weight.
But that is one question answered, not all of them. “Low carb” is a filter. It tells you what is off the plate. It says nothing about whether what is left will keep you full for what it costs you — and that turns out to vary enormously.
Here is what I mean. Nine dinners from this site, every one of them legal on a strict day. The carbohydrate is held down throughout. Watch what happens to the other number.
Every one of these is low-carb
Carbs
Satiety
Satiety
Egg salad1.4 g net carbs · 179 kcal38
Scrambled eggs1.1 g net carbs · 204 kcal39
Deviled eggs1.3 g net carbs · 190 kcal39
Garlic butter baked salmon0.9 g net carbs · 273 kcal45
Butter chicken4 g net carbs · 159 kcal48
Air fryer chicken wings0.9 g net carbs · 234 kcal50
Baked pork chops0.9 g net carbs · 251 kcal59
Chicken and broccoli stir-fry4.3 g net carbs · 97 kcal75
Slow cooker turkey breast1.9 g net carbs · 114 kcal89
Nothing in that table is a bad dinner and nothing in it broke the rules. The garlic butter salmon is a genuinely good meal. It is also 273 calories a serving against 97 for the stir-fry, and you would need to eat nearly three servings of the stir-fry to match it. That is the entire subject of this article.
Carbohydrate is one axis. Fullness per calorie is a different one, and cutting carbs does not automatically move you along it.
The number, in ten seconds
Every food and recipe on this site carries a satiety score from 0 to 100: how full it keeps you for the calories it brings. High means you can eat a satisfying amount of it without much cost. Low means it is easy to eat past what you meant to.
It is not a health score and not a virtue score. Olive oil scores 18 and is excellent food. The number answers one question: how much fullness does this buy me per calorie? If you want the mechanism, how to feel full on fewer calories has it, and the formula is published in full.
Why two keto dinners differ by fifty points
Three things open the gap, and on a low-carb plate they tend to arrive together.
Fat gets added. Not eaten — added, on top of food that already had some. A tablespoon of butter is 100 calories that change the weight of the meal not at all, and water is one of the three routes the score reads: pooled across 38 trials, cutting the calorie density of a diet had people eating 223 fewer calories a day while eating the same weight of food. Added fat runs that route backwards.
Protein gets diluted. Appetite chases protein and keeps eating until it finds enough — across 38 feeding trials, the lower the share of protein in a diet, the more total energy people ate, and it made no difference whether carbohydrate or fat was doing the diluting. On a normal diet, starch dilutes the protein. On keto, fat does. The mechanism does not care which.
The vegetables go missing. Usually not on purpose. They get crowded out by a plate that is already rich, and with them goes the cheapest fullness available to anyone: asparagus is 20 calories per 100 grams and 1.8 grams of net carbohydrate.
Eight ways low-carb eating stops working
Roughly in order of how much they cost. None of them is a moral failure, and none of the foods involved is banned here.
The confusion underneath this one is that fat is filling, and people are not wrong to notice it. Ted Naiman, a primary-care physician who has spent years arguing for protein inside the low-carb world, put the whole problem in one sentence:
Fat is definitely satiating, it's just not high satiety per calorie. So if I eat an entire stick of butter, I have a ridiculous amount of satiety. Like I won't be hungry for the rest of my life, but it's also 3000 calories. So I'm literally getting fatter at the same time.
Disclosure, because it matters here: Naiman helped create the satiety-per-calorie framework this site is built on, and we have worked together. So do not take the point on his authority — take it on Phinney, Volek and Diet Doctor above, none of whom have anything to do with me, and who say the same thing.
92Jack Link'sBeef Jerky OriginalMostly protein — but the marinade carries sugar
78QuestNacho Cheese Protein ChipsProtein and fiber, in a fried chip
61QuestChocolate Chip Cookie DoughA 60 g bar is 190 kcal
42WhispsParmesan Cheese Crisps652 kcal per 100 g of pure cheese
Forty-two to ninety-two, on the same shelf. The jerky is mostly protein; the cheese crisps are 652 calories per 100 grams of concentrated cheese, which is what a cheese crisp is. And the category's most famous product, MCT oil, scores 18 — 850 calories per 100 grams of pure fat, sold as a weight-loss aid.
Worth knowing how the number on the front is produced, too, because “net carbs” has no legal definition anywhere in US food law. It is arithmetic the manufacturer does: total carbohydrate, minus the fiber, minus the sugar alcohols. Two things are wrong with that. Total carbohydrate was never measured in the first place — the regulation has it “calculated by subtraction of the sum of the crude protein, total fat, moisture, and ash from the total weight of the food”, so it is a leftover. And the sugar alcohols being subtracted are not free: the same regulation makes the manufacturer count maltitol at 2.1 calories a gram in the calorie line, barely half a step below sugar, while nothing stops them subtracting all of it from the carb claim on the front. Erythritol at zero calories a gram is a fair subtraction. Maltitol is not.
None of which makes these products bad. It means the number on the front is a marketing figure and the panel on the back is the fact. Turn it over, read the calories, and treat “1 g net carbs” as a claim rather than a measurement.
What to put on the plate
Everything below fits a low-carb day, and most of it fits a strict one. Ranked inside each aisle, so the number reads as mileage rather than as a verdict: this is how far each option takes you.

Protein, and how it was cut
A low-carb plate is already built around protein, so the ranking here is almost entirely a question of how much fat came attached. Seafood does best because it carries the most protein for the fewest calories.
100Atlantic codProtein and water, and nothing else
100ShrimpFrozen, and ready in four minutes
100Canned tunaA tin is 20 g of protein
97Chicken breastThe reliable default
95Pork tenderloinThe lean cut most people walk past
88Sockeye salmonOily fish, and still comfortably green
Fattier cuts are not disqualified, they are just more expensive per unit of fullness. Ribeye scores 35 and a trimmed porterhouse scores 80 — same animal, same zero carbohydrate, 254 calories per 100 grams against 145. Sardines, the low-carb darling, land at 67: good food, and still a third below the tinned tuna beside them, because 208 calories per 100 grams is what the oil costs.

The vegetables that barely count
The highest scores on this site live here, and every one of these is under 5 grams of net carbohydrate per 100 grams. A large pile costs almost nothing against a strict daily budget — which makes this the one place you are allowed to stop measuring and just eat.
It is also the part of the plate that protein-first thinking is most often assumed to be against, and is not. Naiman calls protein the most satiating macronutrient by far, and then says the quiet part out loud: “anything that has larger weight and volume for fewer calories is going to have higher satiety per calorie... green things like leafy green vegetables... have a ridiculously high satiety per calorie.”
100Asparagus20 kcal per 100 g, 1.8 g net carbs
100SpinachWilts to nothing, counts for nothing
99CauliflowerRice it, mash it, roast it
98MushroomsBrown them properly and they eat like meat
97Kale0.3 g net carbs per 100 g
94BroccoliThe one that fills a plate
The trap is what goes on them. Roasted broccoli in a tablespoon of oil roughly doubles the calories of the broccoli; roasted broccoli in three tablespoons is an oil dish with broccoli in it. Roast them on a hot tray with a light brush and finish with lemon, salt and chili instead.

Dairy, strained
The biggest single upgrade available in a low-carb fridge. Straining removes the watery whey, which roughly doubles the protein for the same calories — and takes some of the lactose out with it, so strained dairy is lower in carbohydrate than the milk it came from.
94FageTotal 0%5 g carbs in a 170 g pot
91Siggi'sPlain 0%Skyr, so it is strained twice
91ChobaniGreek Plain Non-Fat6 g carbs in a 150 g pot
91Nonfat Greek yogurt3.6 g net carbs per 100 g
91Cottage cheese (1%)2.7 g net carbs, 12 g protein
69Cottage cheeseFull fat, and still solidly green
Be honest about the pot on a strict day: a 170 g pot of plain Greek yogurt is about 6 grams of carbohydrate, a real slice of a 20-gram budget. It is also 17 grams of protein for 104 calories, which is the best trade in the fridge. Flavored pots vary enormously — the number on the pot beats any rule. And if you want the same job done for almost no carbohydrate at all, egg white scores 97 and beats every pot above.
And here is the same aisle walked from the wet end to the dry end, which is the clearest picture of what concentration costs:
91Nonfat Greek yogurt61 kcal per 100 g
91Cottage cheese (1%)72 kcal
28Cheddar cheese408 kcal
15Butter717 kcal

The fats, priced
This section exists so nothing above can be read as telling you to eat low-fat. Fat is not the enemy and these are not bad foods. What the numbers do is separate fat that arrives inside a food from fat you add on top — and the gap between an olive and a spoon of oil is most of this article.
62Black olives81 kcal per 100 g — the cheap fatty snack
53EggFat arriving inside a whole food
35AvocadoGood food, 223 kcal per 100 g
28Cheddar cheeseGrate it over food, don't graze on it
18Olive oilA tablespoon is 120 kcal
15ButterNothing here but fat
Olive oil scoring 18 is not a verdict on olive oil, which is excellent food with genuine evidence behind it. It is a statement that pure fat cannot fill you up per calorie, because there is nothing in it but calories. Use it. Just know what a generous pour costs.
When the plate is missing its starch
The stand-ins that genuinely work do so because they are mostly water and fiber, not because they are clever.
100PalminiHearts of Palm Linguine1.3 g net carbs a cup
100Green GiantRiced CauliflowerThe one substitution nobody argues with
91QuornPiecesZero net carbs, 15 g protein
Dinners that hold both lines
Low in carbohydrate and high in satiety per calorie, which the table at the top showed is not automatic. Every one is scored from its ingredients, the same way a food is.
89Slow cooker turkey breast2 g net carbs a serving
75Cottage cheese taco shellsThe shell is the protein
75Chicken and broccoli stir-fryHalf a kilo of broccoli, fifteen minutes
74Golumpki soupCabbage rolls, deconstructed
72Cottage cheese chicken parmBreaded without the bread
72Viral cucumber saladThe side that costs nothing
62Cauliflower fried rice5 g net carbs a bowl
59Zucchini lasagnaPlanks instead of sheets
54Crustless quicheBreakfast for the week
If you take medication, read this first
This is the part of a low-carb article that is usually a single line of small print, and it should not be. Carbohydrate restriction is a potent metabolic intervention. If you are medicated, the dose that was right last week can be wrong this week.
What this can't tell you
Where to start
One change, not eight. If you only take a single thing from this page, take this: put a large pile of non-starchy vegetables under the protein you were going to eat anyway, and pour half as much fat over the top. The carbohydrate stays where you want it. The rest of the plate starts working for you instead of against you.





