Protein on a Budget: Cheap High Protein Foods That Work
Cheap high protein foods compared by protein per serving and per 100 kcal, a sample day with about 106 g of protein, and how to hit your target for less.
By PixNutri Editorial Team · Published September 21, 2026 · Last updated September 21, 2026 · 9 min read
The cheapest high protein foods are usually the plain ones: dried or tinned lentils, beans and chickpeas, eggs, milk, tinned tuna and sardines, chicken thighs, cottage cheese, plain yogurt and tofu. Build most meals around two or three of them, add a protein food to every meal, and you can reach 100 g of protein a day without protein bars, shakes or premium cuts. Below you’ll find each food’s protein per serving, a simple way to compare cost on your own shelf, and a sample day with about 106 g of protein.
Not sure what your target is? Our guide to how much protein per day explains the ranges, and the protein calculator gives you a number in grams.
Why protein is where budgets break
Protein foods are usually the most expensive part of the shopping basket, and they’re where healthier choices cost the most extra. A meta-analysis of price studies from 10 countries found that, of all food groups compared, meats and other protein foods had the largest price difference between healthier and less healthy options. Grains, dairy and fats showed much smaller gaps.
That means the protein part of your plan is where a few smart swaps make the biggest difference. For general money-saving habits (meal planning, frozen vegetables, less food waste), see healthy eating on a budget. This article focuses on protein only.
Cheap high protein foods, compared
The numbers below come from USDA FoodData Central, the same data behind our calorie pages. Each food links to its full page with portions and macros.
| Food | Typical serving | Protein | kcal | Protein per 100 kcal |
|---|---|---|---|---|
| Lentils, cooked | 200 g | 18.0 g | 232 | 7.8 g |
| Chickpeas, cooked | 1 cup (164 g) | 14.6 g | 269 | 5.4 g |
| Kidney beans, cooked | 1 cup (177 g) | 15.4 g | 225 | 6.9 g |
| Black beans, cooked | 1 cup (172 g) | 15.3 g | 227 | 6.7 g |
| Eggs | 2 large (100 g) | 12.6 g | 143 | 8.8 g |
| Skim milk | 1 cup (245 g) | 8.3 g | 83 | 10.0 g |
| Canned tuna in water | 1 can (165 g drained) | 32.0 g | 142 | 22.6 g |
| Sardines in oil | 1 can (92 g drained) | 22.6 g | 191 | 11.8 g |
| Chicken thigh, roasted | 1 thigh (116 g meat) | 28.8 g | 208 | 13.9 g |
| Cottage cheese (2% fat) | 200 g | 20.8 g | 162 | 12.8 g |
| Greek yogurt, nonfat | 170 g | 17.3 g | 100 | 17.3 g |
| Firm tofu | 150 g | 26.0 g | 216 | 12.0 g |
| Peanut butter | 2 tbsp (32 g) | 7.1 g | 191 | 3.7 g |
| Oats | 50 g dry | 6.6 g | 190 | 3.5 g |
Can sizes and drained weights vary by brand and country, so check the label on yours.
How to read this table
- Protein per serving tells you how easy it is to reach 20 to 30 g in one meal.
- Protein per 100 kcal tells you how “lean” the protein is. If you are in a calorie deficit, foods near the top of this column (tuna, Greek yogurt, chicken, cottage cheese, tofu) let you hit your protein target without using up many calories.
- Peanut butter and oats are cheap and useful, but they bring a lot of calories per gram of protein. Treat them as helpers, not your main protein source.
Which foods are usually the cheapest?
Prices differ a lot between countries, shops and seasons, so we won’t quote numbers. As a general pattern in most supermarkets:
- Usually the lowest cost per gram of protein: dried lentils, beans and chickpeas, eggs, milk, and own-brand oats. Dried pulses are often cheaper than tinned ones, but tins save time and still tend to be good value.
- Usually low to moderate: tinned beans, tinned tuna and sardines, chicken thighs and legs, cottage cheese, plain yogurt (including own-brand Greek-style), tofu, frozen chicken or fish.
- Usually more expensive per gram of protein: fresh fish fillets, steak and other premium cuts, ready-made protein snacks, protein bars and drinks.
Don’t take our word for it. Work it out on your own shelf with the method below.
Compare cost per 20 g of protein
Pack prices mislead. The fair comparison is how much you pay for the same amount of protein. You need two numbers: the price per kg on the shelf label, and the protein per 100 g on the nutrition label.
Grams of food for 20 g protein = 2,000 ÷ protein per 100 g
Cost of 20 g protein = price per kg × grams of food ÷ 1,000
For the foods above, 20 g of protein takes roughly:
| Food | Amount for 20 g protein |
|---|---|
| Canned tuna in water | about 103 g drained |
| Chicken thigh, roasted | about 80 g cooked meat |
| Firm tofu | about 115 g |
| Cottage cheese | about 190 g |
| Greek yogurt, nonfat | about 195 g |
| Eggs | about 160 g (3 large eggs) |
| Lentils, cooked | about 220 g |
| Skim milk | about 590 g (2.4 cups) |
One detail with dried pulses: the label shows the protein of the dry product, which is much higher per 100 g than cooked. Use the dry numbers with the dry price. As a rough guide, dry lentils about triple in weight when cooked, so 200 g dry gives about 600 g cooked, or about 54 g of protein.
Example with made-up numbers: if tofu costs 8.00 per kg, 115 g costs 8.00 × 115 ÷ 1,000 = 0.92 for 20 g of protein. If chicken thighs cost 7.00 per kg of cooked meat, 80 g costs 0.56. (Example prices, not real ones. Remember that raw meat loses weight when cooked, and bone-in pieces include bone you don’t eat.)
A sample day with about 106 g of protein
This day is built only from the low-cost foods above. It suits someone aiming for roughly 100 g, for example a 70 kg adult eating about 1.4 to 1.5 g per kg while losing weight.
| Meal | What’s in it | Protein | kcal |
|---|---|---|---|
| Breakfast | 50 g oats cooked in 250 g skim milk, 2 boiled eggs | 27.7 g | 418 |
| Lunch | 1 can tuna in water (165 g) with salad, 1 slice whole wheat bread | 36.0 g | 223 |
| Dinner | Lentil and bean chilli: 200 g cooked lentils, 100 g kidney beans | 26.7 g | 359 |
| Snack | 150 g cottage cheese with fruit | 15.6 g | 122 |
| Total | 106.0 g | 1,122 |
The calories cover only the listed foods. Add your vegetables, fruit, cooking oil, sauces and any side of rice or potatoes to get the full day. That leaves plenty of room to adjust to your calorie target.
Each main meal lands at or above 25 g of protein. A review on protein and weight loss (Leidy and colleagues, 2015) suggested about 25 to 30 g per meal as a practical way to get the benefits of a higher-protein diet on appetite and body composition. If you want more ideas for the first meal of the day, see our high protein breakfast ideas.
Cheaper swaps for the same day: use black beans or chickpeas instead of kidney beans, sardines instead of tuna, and plain yogurt instead of cottage cheese. The protein changes a little, but the structure stays the same.
How to hit your protein target on a budget
- Know your number. Most healthy adults need at least 0.8 g per kg per day (EFSA sets 0.83 g/kg for adults). Many active people and dieters aim higher. Use the protein calculator to get yours.
- Anchor each meal with one cheap protein. Eggs or yogurt in the morning, a tin of fish or beans at lunch, pulses, tofu or chicken thighs in the evening.
- Mix plant and animal protein. Half-lentil, half-meat sauces and chillies stretch the meat and add fibre. Harvard’s Nutrition Source notes that swapping red and processed meat for beans, soy, nuts, fish or poultry is linked with lower risk of several diseases.
- Buy the “boring” versions. Plain yogurt rather than flavoured desserts, own-brand tins, whole chicken legs rather than trimmed fillets, dried pulses when you have time to cook.
- Use the freezer. Frozen chicken, fish fillets and tofu keep for weeks, so you can buy on offer without wasting food.
- Cook pulses in batches. One pot of lentils or beans covers several lunches and dinners. See meal prep for beginners for storage tips.
- Skip specialised protein products unless they fit. Protein-labelled snacks are often the most expensive way to buy protein. Protein powder can be reasonable value in some shops, but compare it with the cost-per-20 g method before assuming it’s cheaper than food.
Safety notes
- Kidney disease: if you have kidney disease or have been told to limit protein, talk to your doctor or dietitian before raising your intake.
- Tuna: the NHS advises that if you are pregnant or trying for a baby, you should have no more than 4 medium cans of tuna a week, because tuna contains more mercury than other fish. Sardines count as oily fish; tuna does not.
- Red and processed meat: the NHS recommends that people who eat more than 90 g of red or processed meat a day cut down to 70 g. Cheap processed meats like sausages and ham are not a good way to raise protein.
- Salt: tinned beans and fish can contain added salt. Rinse beans and choose “no added salt” where you can. Our guide on how to read nutrition labels shows what to check.
Tracking protein without paying more
Once you have a few budget meals you like, log them once and reuse them. In PixNutri you can snap a photo of your meal for an AI estimate of calories and macros, scan barcodes on tins and yogurts, and correct the numbers with your own portions. The free plan includes 2 photo scans a day, with extra scans available by watching a short video.
FAQ
What is the cheapest high protein food?
In most shops, dried lentils, beans and chickpeas give the most protein for the money, followed closely by eggs and milk. Tinned fish, chicken thighs, cottage cheese and tofu are often good value too. Check the price per kg on your own shelf.
Can I get enough protein on a budget without meat?
Yes. Lentils, beans, chickpeas, tofu, eggs, milk, yogurt and cottage cheese can cover a high protein target. Pulses bring more calories per gram of protein than tofu or dairy, so combine them if you are also watching calories.
Is protein powder cheaper than food?
Sometimes, per gram of protein, but not always, and prices vary widely. Work it out with the cost per 20 g method. Food also gives you fibre, vitamins and minerals that powder doesn’t.
How do I get 100 g of protein a day cheaply?
Aim for about 25 to 30 g at each of three meals plus a protein snack. The sample day above does this with oats, milk, eggs, tinned tuna, lentils, beans and cottage cheese.
Sources
- USDA FoodData Central (SR Legacy food composition data)
- Rao M, et al. Do healthier foods and diet patterns cost more than less healthy options? A systematic review and meta-analysis. BMJ Open, 2013
- Harvard T.H. Chan School of Public Health, The Nutrition Source. Protein
- EFSA. EFSA sets population reference intakes for protein (2012)
- Leidy HJ et al. The role of protein in weight loss and maintenance. Am J Clin Nutr, 2015
- NHS. Meat in your diet
- NHS. Fish and shellfish
Written by the PixNutri Editorial Team. PixNutri provides general information, not medical advice. Learn how we work: Methodology · Nutrition sources · Editorial policy
Spotted a factual error? Report it to our editorial team. We review every report and update the page if needed.