A donut isn't morally inferior to broccoli. It just delivers four times the calories in a third of the volume with a quarter of the fullness. Once you see food through that lens — density and satiety — the "junk vs healthy" question becomes a math problem you can actually solve.
In this article
Why "healthy vs junk" labels fail
Coconut oil is sold as a health food and is 100% saturated fat. Granola is marketed as wholesome and routinely hits 500 kcal per cup. A grilled chicken Caesar wrap from a "healthy" café often beats a McDonald's quarter pounder on calories. The labels we use don't track the data.
Meanwhile, a frozen pizza isn't "junk" if it's the difference between cooking a hot meal at 9pm and ordering DoorDash for the third time this week. A protein bar isn't "real food" but it can be the cleanest 200 kcal of your day if the alternative is skipping protein entirely.
Foods aren't good or bad. Meals are well-built or poorly-built, and they're built from foods with specific properties. Once you know the properties, you can make the call.
The three metrics that actually matter
1. Calorie density (kcal per gram)
How many calories per unit weight. Foods at the top of this list pack a lot of energy into a small volume — they're easy to overeat because your stomach doesn't notice them filling up. Foods at the bottom are the opposite.
| Food | kcal per 100g | Bucket |
|---|---|---|
| Oil (any) | 880 | Very high |
| Butter | 717 | Very high |
| Nuts | 560–650 | Very high |
| Chocolate | 550 | Very high |
| Potato chips | 540 | Very high |
| Pastries / cookies | 400–500 | High |
| Bread | 270 | Medium |
| Lean chicken breast | 165 | Medium |
| Cooked rice / pasta | 130 | Medium |
| Greek yogurt | 95 | Low |
| Fresh fruit | 50–80 | Low |
| Most vegetables | 20–40 | Very low |
The 30× gap between vegetables and oil is the entire story of why a salad bowl can be 300 kcal or 900 kcal depending on dressing.
2. Nutrient density (nutrients per calorie)
How much protein, fibre, vitamins, and minerals you get per 100 kcal. High-nutrient-density foods give you a lot of micronutrients for the calorie cost.
| Food (100 kcal) | Protein | Fibre | Notable micros |
|---|---|---|---|
| Spinach (~333g cooked) | 13g | 10g | Iron, folate, vit K, magnesium |
| Egg (~1.5 large) | 9g | 0g | Choline, vit D, B12, selenium |
| Salmon (~50g) | 10g | 0g | Omega-3, vit D, B12 |
| Greek yogurt (~100g) | 10g | 0g | Calcium, B12, probiotic |
| Whole wheat bread (~38g) | 4g | 2g | Iron, B vitamins |
| Cola (~250ml) | 0g | 0g | None |
| Potato chips (~18g) | 1g | 1g | Sodium (high) |
| Candy (~25g) | 0g | 0g | None |
"Empty calories" is the polite term for the bottom of this table — calories that come with nothing else. Not the end of the world, but if 30% of your daily calories come from foods like these, you're underfeeding the rest of your body even if your weight is fine.
3. Satiety (how full it keeps you)
This is the one most people miss. The Satiety Index, developed by Susanna Holt at the University of Sydney, ranked foods by how full they kept people 2 hours after eating them, controlling for calories. The rough ranking:
- Most filling per calorie: boiled potatoes, fish, oatmeal, eggs, beans, fresh fruit, lean meat
- Middle: whole-grain bread, pasta, rice, cheese
- Least filling per calorie: croissants, cake, donuts, candy bars, ice cream
This is why you can eat 300 kcal of donut and want another donut, but eat 300 kcal of oatmeal and feel done. The calorie count is the same; the satiety isn't.
Nutritious vs junk: side-by-side
Same calorie ballpark, very different food. Look at the volume and the macros — that's where the gap shows up.
| Calorie target | Nutritious option | Junk option |
|---|---|---|
| ~200 kcal snack | 1 cup Greek yogurt + ½ cup berries (200 kcal, 18g protein) | 1 small bag chips (200 kcal, 2g protein) |
| ~500 kcal breakfast | 3-egg omelette + 1 slice toast + 1 apple (490 kcal, 25g protein, 7g fibre) | 2 glazed donuts (520 kcal, 5g protein, 1g fibre) |
| ~600 kcal lunch | Chicken bowl: 4 oz chicken, 1 cup rice, 1.5 cups veg, salsa, ¼ avocado (610 kcal, 40g protein) | Fast-food cheeseburger combo, no drink (640 kcal, 22g protein) |
| ~150 kcal drink | Unsweetened iced coffee + splash of milk (15 kcal — saves you 135) | Sweetened latte (150 kcal, 0g protein, 20g sugar) |
Processed vs ultra-processed food
"Processed" isn't the dividing line. Almost everything you eat is processed — chopping a carrot is processing. The category worth flagging is ultra-processed food, defined by the NOVA classification system:
| Group | Examples | Treat as |
|---|---|---|
| NOVA 1 — Unprocessed | Fruit, vegetables, meat, eggs, plain yogurt | Build meals around these |
| NOVA 2 — Culinary ingredients | Oil, butter, salt, sugar, flour | Use to cook NOVA 1 foods |
| NOVA 3 — Processed | Canned beans, frozen veg, cheese, bread, smoked fish | Fine. Mostly time-savers. |
| NOVA 4 — Ultra-processed | Soda, packaged snacks, instant noodles, breakfast cereal, frozen pizza, most "diet" foods | Budget consciously |
The 2023 BMJ review of ultra-processed food found consistent associations with weight gain, type 2 diabetes, cardiovascular disease, and depression — even after controlling for calories. The mechanism isn't fully nailed down, but the leading candidates are low satiety (you eat more), refined-carb load (insulin spikes), and lack of fibre. Practically: aim to keep ultra-processed foods under ~20% of daily calories if you can.
10 easy swaps that move the needle
Ranked by impact-to-effort. None require giving up anything entirely.
| Swap | Calories saved | Effort |
|---|---|---|
| Sweetened drinks → sparkling water or unsweetened tea | ~150–250/drink | Easy |
| Cream/sugar in coffee → splash of milk | ~80–150/coffee | Easy |
| Chips/crackers → popcorn (air-popped) | ~150/serving | Easy |
| Granola → plain oats with fruit | ~200/bowl | Medium |
| Salad dressing → halve it, use lemon | ~100/salad | Easy |
| Restaurant rice bowl → ask for half rice + extra veg | ~150/meal | Easy |
| Flavoured yogurt → plain Greek + fresh fruit | ~80/cup | Easy |
| Crisps/snack bag → handful of nuts + apple | ~100/snack | Easy |
| Ice cream → frozen banana blended | ~200/serving | Medium |
| Late-night cereal → cottage cheese + berries | ~250/snack | Medium |
The 80/20 reality check
You don't have to be perfect. You have to be consistent.
If 80% of your calories come from nutrient-dense, satiating foods (produce, lean protein, whole grains, dairy or alternatives), the other 20% can be whatever you actually want — pizza, ice cream, the donut from the meeting. The 20% does not undo the 80%, and trying to eliminate it entirely is the fastest way to give up on the 80%.
How to track without moralising food
Calorie tracking can either teach you what's in your food or turn into a guilt machine. The difference is what you do with the numbers.
Track outcomes, not behaviour
Don't grade yourself on whether today's food was "clean." Look at the week's protein average, the week's fibre average, the weight trend. If those are moving in the right direction, individual meals don't matter.
Log the donut
The instinct to skip logging "bad" food is exactly backwards. Logging the donut tells you it cost 280 kcal and you have 1,700 kcal left for the day, which is plenty. Skipping it tells you nothing and makes the next decision worse.
Notice satiety, not just calories
After a meal, rate your fullness 2 hours later. The meals that keep you full for 3+ hours per 500 kcal are the ones to repeat. The ones that leave you hunting for snacks 90 minutes later are the ones to redesign — usually by adding 20g protein or 10g fibre, not by cutting calories.
Frequently asked questions
What is the difference between nutritious food and junk food?
Nutritious foods deliver a lot of nutrients (protein, fibre, vitamins, minerals) per calorie. Junk foods deliver a lot of calories per gram, mostly from refined sugar and fat, with very few accompanying nutrients. The honest distinction isn't "good vs bad" — it's nutrient density per calorie and how full the food keeps you afterwards.
Can you lose weight eating junk food?
Yes — weight loss is driven by a calorie deficit regardless of food choice. The "Twinkie diet" experiment (Mark Haub, Kansas State, 2010) demonstrated this: a professor lost 27 lbs eating mostly snack cakes under a calorie cap. The problem isn't that junk food makes weight loss impossible — it's that calorie-dense, low-satiety foods make it much harder to stay in a deficit because hunger fights back.
Is all processed food junk food?
No. Greek yogurt, canned beans, frozen vegetables, tofu, whole-grain bread, and protein powder are all processed and all nutritious. The term that matters is ultra-processed food (NOVA group 4) — items reformulated with added sugars, refined oils, emulsifiers, and flavour enhancers that you wouldn't recognise as kitchen ingredients.
What are the most calorie-dense junk foods?
By calorie density per gram: oil and butter (~720–880 kcal/100g), nuts and chocolate (~550–650 kcal/100g), chips and crackers (~500 kcal/100g), and pastries (~400–500 kcal/100g). Compare these to vegetables (~25 kcal/100g) and fresh fruit (~50–80 kcal/100g). The 5–20× density gap is the entire reason junk food adds up so fast.
What is the single best swap to eat more nutritiously?
Swap one sweetened drink (soda, sweetened latte, juice) for water, sparkling water, or unsweetened tea. That single swap typically removes 150–250 kcal per drink with no satiety penalty — sweetened drinks don't trigger fullness signals, so the calories don't translate to eating less later. For most people, it's the highest-leverage change available.
Track without the guilt spiral
Coach Ivy logs your meals from a photo — donuts and broccoli get the same neutral treatment. Just the numbers, plus a cute coach who keeps it kind. Free on iPhone.
Download Coach Ivy Free