Protein is usually the most expensive part of a meal, so it’s where a tight grocery budget feels the squeeze first. But some of the cheapest foods in the store are also some of the best sources of protein.
To find them, we priced common proteins at Walmart and ALDI and worked out what each one costs for 20 grams of protein, about the amount in three eggs or a small chicken breast. Here are the cheapest protein sources, ranked from the lowest cost up.
Prices are from Walmart’s and ALDI’s websites for stores in Columbus, Ohio, checked in October 2026. Ohio’s grocery prices are within about 1% of the national average, so you may pay more or less depending on where you live, and prices change often. Here’s how we price our recipes.
Cheapest Protein Sources, Ranked
Each price is the lower of the two stores. Protein amounts are typical values from nutrition labels and USDA data, so treat the cost per 20 grams as a close estimate.
| Protein | Price | Per 20g protein |
|---|---|---|
| Dry pinto beans (2 pounds) | $1.95 at ALDI | About 21¢ |
| Chicken drumsticks | $0.89 a pound at ALDI | About 30¢ |
| Peanut butter (16 ounces) | $1.49 at ALDI | About 30¢ |
| Dried lentils (1 pound) | $1.92 at Walmart | About 34¢ |
| Milk (1 gallon) | $2.43 at either store | About 38¢ |
| Large eggs (1 dozen) | $1.66 at ALDI | About 46¢ |
| Ground turkey (1 pound) | $1.98 at Walmart | About 50¢ |
| Old-fashioned oats (42 ounces) | $3.99 at ALDI | About 54¢ |
| Boneless chicken breasts (3 pounds) | $8.99 at ALDI | About 58¢ |
| Shredded cheddar (16 ounces) | $3.29 at ALDI | About 58¢ |
| Plain nonfat Greek yogurt (32 ounces) | $2.97 at Walmart | About 66¢ |
| Cottage cheese (24 ounces) | $2.85 at ALDI | About 73¢ |
| Extra-firm tofu (14 ounces) | $1.49 at ALDI | About 75¢ |
| Chunk light tuna (5-ounce can) | $0.95 at ALDI | About 76¢ |
| Canned black beans (15 ounces) | $0.85 at ALDI | About 81¢ |
| Canned pink salmon (14.75 ounces) | $3.89 at ALDI | About 93¢ |
| Canned chicken breast (12.5 ounces) | $2.59 at ALDI | About $1.15 |
| Ground beef, 85% lean (1 pound) | $6.29 at ALDI | About $1.46 |
Two things stand out. Dried beans cost much less than canned for the same protein, and chicken drumsticks beat every other meat by a wide margin. Ground beef, the protein many families buy most, is the most expensive on the list.
Eggs, Beans or Canned Fish?
- Beans win on price. Dried pinto beans and lentils are the cheapest protein in the store. They take time to cook, but a pot of beans covers several meals.
- Eggs win on convenience. At under 50 cents for 20 grams of protein, eggs cook in minutes and work at any meal. See our guide to cooking eggs 8 ways.
- Canned fish is the shelf-stable middle ground. Tuna costs a little more than eggs per gram of protein, but it needs no cooking and keeps for years, which makes it a good pantry backup.
The cheapest plan uses all three: beans for big batches, eggs for quick meals and a few cans of tuna for nights when there’s no time to cook.
The Best Value for Active People
If you work out or have a physical job and want plenty of protein, focus on the options that are high in protein for their calories. On this list, that’s chicken breasts and drumsticks, eggs, ground turkey, Greek yogurt, cottage cheese, tuna and canned salmon.
Beans, lentils and peanut butter are still great value, but they come with more carbohydrates or fat for the same protein. Peanut butter in particular is very high in calories, which is useful when you need energy and less so when you’re trying not to overeat.
Cheap High-Protein Meals
- Hearty Beef & Lentil Tacos: beef stretched with lentils ($1.46 to $1.63 a serving)
- Savory Turkey & Rice Skillet: ground turkey with rice and spinach ($1.20 to $1.22 a serving)
- Sweet Potato Egg Hash: eggs cooked right in the skillet ($0.76 to $0.86 a serving)
- Easy Veggie Frittata: eggs and cheddar ($0.86 to $0.96 a serving)
- One-Pot Vegetable Lentil Soup: lentils in a thick vegetable soup ($0.79 to $0.80 a serving)
- One-Pot Cheesy Taco Rice: turkey, beans and cheese ($1.21 to $1.23 a serving)
- Hearty Turkey Chili: turkey and two kinds of beans ($1.44 to $1.46 a serving)
- Baked BBQ Chicken Drumsticks with Roasted Potatoes: drumsticks and potatoes on one pan ($1.51 to $1.56 a serving)
- Garlic Chicken & Broccoli Stir-Fry: chicken breast and broccoli ($1.64 to $1.74 a serving)
- Spinach & Feta Egg Muffins: make-ahead egg breakfasts ($0.29 to $0.31 a serving)
- Greek Yogurt Parfait Jars: Greek yogurt for breakfast ($1.31 to $1.34 a serving)
For more ideas, see our 50 cheap meals under $2 a serving.
How to Get More Protein for Less
- Cook dried beans in big batches. Simmer a 2-pound bag, then freeze it in 1½-cup portions, the same as one can.
- Stretch meat with beans or lentils. Swap half the ground beef in tacos, chili or sloppy joes for cooked lentils or beans.
- Buy chicken on the bone. Drumsticks and bone-in thighs cost much less per pound than boneless breasts.
- Choose plain Greek yogurt and cottage cheese. The big plain tubs cost less per ounce than flavored cups and have more protein.
- Keep eggs, peanut butter and canned tuna on hand. They turn a carb-heavy pantry meal into a filling one.
Cheap Protein Questions
What is the cheapest source of protein?
Dried beans, especially pinto beans, followed by chicken drumsticks, peanut butter and dried lentils. All four cost about 20 to 35 cents for 20 grams of protein at Walmart and ALDI prices.
Are eggs or beans cheaper for protein?
Dried beans are cheaper, at about 21 cents for 20 grams of protein compared with about 46 cents for eggs. Canned beans cost more than eggs for the same protein.
Is canned tuna a cheap protein?
It’s a good value, at about 76 cents for 20 grams of protein, and it keeps for years. Eggs, dried beans and drumsticks are cheaper but need cooking.
How much protein do I need?
It depends on your age, size and activity level. A doctor or registered dietitian can give you a number that fits you. The foods on this list make it easier to reach it without spending much.
This post shares general budgeting information, not personal financial advice.










