Food swap calculator
The expensive part of a diet is usually not giving food up — it's choosing the heavier version of the same food. Pick a food and a portion below; you'll see every alternative at the same weight, what each one saves, and what that saving is worth over a year.
Suggested swap
Potato chips → Popcorn — air-popped
At the same portion — 30 g
This is the lightest food in its group — there is no lower-calorie alternative.
- What you're eating now161 kcal
- After the swap116 kcal
- Every day for a year16,315 kcal
- In kilos — at most2.1 kg
In FitDex you scan a barcode and save the product's own label — the real package values instead of the generic averages on this page.
Alternatives at the same portion
Sorted by calories, lowest first, so the top row saves the most. The marked rows cut calories without cutting protein or fibre per 100 calories — the swaps you pay nothing for.
| Food | At this portion | Difference | Protein | Fibre |
|---|---|---|---|---|
| Strained yogurt — fat-free | 18 kcal | — | 3.1 g | 0.0 g |
| Yogurt — whole milk | 18 kcal | — | 1.1 g | 0.0 g |
| Curd cheese | 24 kcal | — | 3.3 g | 0.0 g |
| Egg — boiled | 47 kcal | — | 3.8 g | 0.0 g |
| White cheese (feta type) | 79 kcal | — | 4.3 g | 0.0 g |
| Cream cheese | 105 kcal | — | 1.9 g | 0.0 g |
| Cheddar cheese | 121 kcal | — | 6.9 g | 0.0 g |
| Wholemeal bread | 74 kcal | — | 3.9 g | 2.1 g |
| Rye bread | 78 kcal | — | 2.5 g | 1.7 g |
| White bread | 80 kcal | — | 2.7 g | 0.8 g |
| Corn flakes | 107 kcal | — | 2.3 g | 1.0 g |
| Rolled oats — dry | 117 kcal | — | 5.1 g | 3.2 g |
| Bulgur pilaf — cooked | 25 kcal | — | 0.9 g | 1.3 g |
| Potato — boiled | 26 kcal | — | 0.6 g | 0.5 g |
| Quinoa — cooked | 36 kcal | — | 1.3 g | 0.8 g |
| Brown rice — cooked | 37 kcal | — | 0.8 g | 0.5 g |
| Wholemeal pasta — cooked | 37 kcal | — | 1.6 g | 1.3 g |
| White rice — cooked | 39 kcal | — | 0.8 g | 0.1 g |
| Pasta — cooked | 47 kcal | — | 1.7 g | 0.5 g |
| French fries | 94 kcal | — | 1.0 g | 1.1 g |
| Tofu | 23 kcal | — | 2.4 g | 0.1 g |
| Shrimp — cooked | 30 kcal | — | 7.2 g | 0.0 g |
| Lentils — cooked | 35 kcal | — | 2.7 g | 2.4 g |
| Tuna — in water | 35 kcal | — | 7.8 g | 0.0 g |
| Anchovy | 39 kcal | — | 6.1 g | 0.0 g |
| Turkey breast — cooked | 41 kcal | — | 9.0 g | 0.0 g |
| White beans — cooked | 42 kcal | — | 2.9 g | 1.9 g |
| Chickpeas — cooked | 49 kcal | — | 2.7 g | 2.3 g |
| Chicken breast — skinless, cooked | 50 kcal | — | 9.3 g | 0.0 g |
| Salmon — cooked | 62 kcal | — | 6.6 g | 0.0 g |
| Chicken thigh — skinless, cooked | 63 kcal | — | 7.8 g | 0.0 g |
| Ground beef — 10% fat, cooked | 65 kcal | — | 7.8 g | 0.0 g |
| Ground beef — 20% fat, cooked | 76 kcal | — | 7.7 g | 0.0 g |
| Cucumber | 5 kcal | — | 0.2 g | 0.1 g |
| Tomato | 5 kcal | — | 0.3 g | 0.4 g |
| Spinach — boiled | 7 kcal | — | 0.9 g | 0.7 g |
| Watermelon | 9 kcal | — | 0.2 g | 0.1 g |
| Strawberry | 10 kcal | — | 0.2 g | 0.6 g |
| Broccoli — boiled | 11 kcal | — | 0.7 g | 1.0 g |
| Carrot | 12 kcal | — | 0.3 g | 0.8 g |
| Orange | 14 kcal | — | 0.3 g | 0.7 g |
| Apple | 16 kcal | — | 0.1 g | 0.7 g |
| Grapes | 21 kcal | — | 0.2 g | 0.3 g |
| Banana | 27 kcal | — | 0.3 g | 0.8 g |
| Avocado | 48 kcal | — | 0.6 g | 2.0 g |
| Vanilla ice cream | 62 kcal | −99 | 1.1 g | 0.2 g |
| Dried dates | 85 kcal | −76 | 0.8 g | 2.4 g |
| Raisins | 90 kcal | −71 | 0.9 g | 1.1 g |
| Popcorn — air-popped | 116 kcal | −45 | 3.9 g | 4.5 g |
| Sweet biscuits | 144 kcal | −17 | 1.6 g | 0.4 g |
| Milk chocolate | 161 kcal | −0 | 2.3 g | 1.0 g |
| Potato chips | 161 kcal | — | 2.1 g | 1.4 g |
| Almonds | 174 kcal | +13 | 6.3 g | 3.8 g |
| Peanuts — salted | 176 kcal | +15 | 7.2 g | 2.4 g |
| Dark chocolate — 70% and above | 179 kcal | +19 | 2.3 g | 3.3 g |
| Hazelnuts | 188 kcal | +28 | 4.5 g | 2.9 g |
| Walnuts | 196 kcal | +35 | 4.5 g | 2.0 g |
| Water | 0 kcal | — | 0.0 g | 0.0 g |
| Cola — sugar-free | 0 kcal | — | 0.0 g | 0.0 g |
| Tea — unsweetened | 0 kcal | — | 0.0 g | 0.0 g |
| Turkish coffee — unsweetened | 1 kcal | — | 0.0 g | 0.0 g |
| Almond milk — unsweetened | 5 kcal | — | 0.2 g | 0.1 g |
| Milk — skimmed | 10 kcal | — | 1.0 g | 0.0 g |
| Ayran (salted yogurt drink) | 11 kcal | — | 0.5 g | 0.0 g |
| Cola | 13 kcal | — | 0.0 g | 0.0 g |
| Beer | 13 kcal | — | 0.1 g | 0.0 g |
| Orange juice | 14 kcal | — | 0.2 g | 0.1 g |
| Milk — semi-skimmed (2%) | 15 kcal | — | 1.0 g | 0.0 g |
| Milk — whole | 18 kcal | — | 1.0 g | 0.0 g |
| Red wine — dry | 26 kcal | — | 0.0 g | 0.0 g |
| Mustard | 20 kcal | — | 1.3 g | 1.0 g |
| Ketchup | 30 kcal | — | 0.4 g | 0.1 g |
| Jam | 83 kcal | — | 0.1 g | 0.3 g |
| Honey | 91 kcal | — | 0.1 g | 0.1 g |
| Granulated sugar | 116 kcal | — | 0.0 g | 0.0 g |
| Tahini | 179 kcal | — | 5.1 g | 2.8 g |
| Mayonnaise | 204 kcal | — | 0.3 g | 0.0 g |
| Butter | 215 kcal | — | 0.3 g | 0.0 g |
| Olive oil | 265 kcal | — | 0.0 g | 0.0 g |
| Sunflower oil | 265 kcal | — | 0.0 g | 0.0 g |
What you get per 100 calories
This ratio does not depend on the portion: numerator and denominator scale by the same factor, so it is identical at 30 grams and at 300. This is where you see whether a swap is genuinely worth it.
| Food | Protein / 100 kcal | Fibre / 100 kcal |
|---|---|---|
| Shrimp — cooked | 24.2 g | 0.0 g |
| Tuna — in water | 22.4 g | 0.0 g |
| Turkey breast — cooked | 22.2 g | 0.0 g |
| Chicken breast — skinless, cooked | 18.8 g | 0.0 g |
| Strained yogurt — fat-free | 17.3 g | 0.0 g |
| Anchovy | 15.6 g | 0.0 g |
| Curd cheese | 13.6 g | 0.0 g |
| Spinach — boiled | 13.0 g | 10.4 g |
| Chicken thigh — skinless, cooked | 12.4 g | 0.0 g |
| Ground beef — 10% fat, cooked | 12.0 g | 0.0 g |
| Salmon — cooked | 10.7 g | 0.0 g |
| Tofu | 10.7 g | 0.4 g |
| Ground beef — 20% fat, cooked | 10.2 g | 0.0 g |
| Milk — skimmed | 10.0 g | 0.0 g |
| Egg — boiled | 8.1 g | 0.0 g |
How is it calculated?
All values are composition figures per 100 grams, scaled in proportion to the weight you enter. A 40-gram slice of feta is therefore 264 × 0.40 = 106 kcal.
The comparison runs on the SAME WEIGHT, not on 100 grams. This is the first thing that separates the table from its competitors: at 100 grams there are 614 calories between mayonnaise and mustard, but nobody eats 100 grams of mayonnaise. At a real 15-gram serving the gap falls to 92 calories — still worth knowing, but now the right size.
Alternatives only come from the same GROUP. Replacing bread with cucumber is arithmetically a saving and nutritionally meaningless as a meal; for a swap to work, the replacement has to do the same job.
Marked rows clear an extra bar: they are lower in calories than the reference AND their protein and fibre per 100 calories has not dropped. That ratio is independent of portion, since numerator and denominator scale by the same factor. A swap that cuts calories by halving protein does not get the mark.
The annual effect is the daily saving times 365. The weight equivalent uses the 7,700 kcal = 1 kg shortcut, and it is an UPPER BOUND: as weight falls, so does your daily need, so the real loss stays under that figure. The actual curve lives in the weight-loss timeline tool.
Values come from standard composition tables such as USDA SR Legacy, not from branded products. A 10-15% spread between two products with the same name is normal; cooking method and added fat easily double it. The table points you in a direction — it doesn't replace reading a label.
How to read your result
Small, repeated swaps beat large, one-off ones. Dropping the 20 grams of sugar beside one daily coffee is 28,000 calories a year; one skipped dinner a month is nothing. That's why the table shows the annual figure. The size of a decision lives in its repetition, not in the single instance.
The savings order doesn't change with portion — only its scale does. Which food inside a group is lighter depends on the per-100-gram value, and because that value is fixed, enlarging the portion enlarges every row by the same factor and leaves the answer to "which should I pick" exactly where it was. The answer to "how much does it matter" moves.
An unmarked row isn't bad. It just isn't free. Choosing tofu over chicken breast saves 107 calories at a 120-gram portion while dropping protein per 100 calories from 18.8 grams to 10.7, which means anyone making that swap has to find the missing protein somewhere else in the day. The mark tells you which swaps cost you nothing in return.
The drinks group behaves unlike the others, and the biggest win is there. With solid food, cutting calories usually means giving something up; with liquids satiety is close to zero anyway, so replacing a 330 ml cola with water erases 139 calories a day at no loss of fullness.
Fats and sauces produce big numbers at small weights, and that's where the illusion lives. Ten grams of olive oil is 88 calories — the amount actually drizzled "lightly" over a salad is usually 30 grams, so 265 calories, more than the salad itself. In this group, measuring pays better than swapping.
Frequently asked questions
Why do I enter my own portion instead of using 100 grams?
Because 100 grams isn't the amount you decide about. At 100 grams there are 783 calories between olive oil and ketchup; the number is correct and useless, since nobody pours 100 grams of olive oil. At real portions (10 grams of oil, 20 of ketchup) the gap falls to 68 calories and the decision changes completely. The whole table recalculates from the weight you enter.
What do the marked rows mean?
Swaps that cut calories without cutting protein and fibre density. The test is grams per 100 calories: in white bread 100 calories carry 3.4 grams of protein and 1.0 gram of fibre, in wholemeal bread 5.3 and 2.8 — fewer calories and denser, so it's marked. Tofu instead of chicken breast, by contrast, cuts calories but nearly halves protein density, so it gets no mark.
Why is the annual weight figure labelled "at most"?
Because the 7,700 kcal = 1 kg shortcut is day-one arithmetic. As weight falls you carry less mass, so the calorie cost of living the same day falls too; the gap narrows, the loss slows and eventually stops. A 100-calorie daily swap is worth not 4.7 kilos after a year but something close to it and below it. The full curve is computed in the weight-loss timeline tool.
Why isn't the brand I'm looking for in the list?
Deliberately. Brand values differ by country and even by batch, and recipes change without notice; a brand figure written into a fixed list is wrong six months later. The 80 entries here are generic foods from standard composition tables — categories like "white bread" or "whole milk". The label on the packet in your hand is always more accurate, and the barcode scanner in the FitDex app exists for exactly that.
Related tools
- Calorie calculatorEnter your height, weight, age and activity level to see your daily calorie needs, basal metabolic rate and macro split in seconds. The same formula as the FitDex app.
- Macro calculatorTurn your daily calorie target into grams of protein, carbohydrate and fat. We publish the ratio we use and why we chose it, instead of offering preset templates with no explanation.
- Weight loss timelineSee how many weeks it takes to reach your goal weight — under both a fixed calorie intake and one you re-adjust each week. The two dates aren't the same, and we explain why.
- Calories burned calculatorWork out the calories you burn across 27 activities, scaled to your weight and duration. What sets it apart: it subtracts your resting burn, so you see the extra the exercise actually bought you.
This tool is for information only and is not a substitute for medical diagnosis or treatment. Talk to a healthcare professional before making a lasting change to how you eat.