Every budget bulking article gives you the same thing: recipes. Twelve meals, a shopping list, some photos of chicken and rice.
Nobody gives you the math.
And the math is the whole game. If you're trying to eat 3,500 calories a day on $70 a week, you need to know that a dollar of oats hands you roughly 1,800 calories while a dollar of chicken breast hands you about 250. That's a 7x difference. Build your cart around the wrong end of that spread and you'll run out of money on the 20th, quietly drop to two meals a day for the last week and a half, and then wonder why the scale hasn't moved in two months.
I've watched this happen to a lot of guys. The bulk doesn't die because of bad training or bad discipline. It dies because of arithmetic.
So this post is the ranking. Twenty-five foods, each scored on the two numbers that actually decide whether a broke lifter eats enough: calories per dollar and grams of protein per dollar. Then how to combine them, because neither number alone builds a good diet.
- Calories per dollar and protein per dollar are different rankings, and you need to shop both
- Oils, oats, rice, pasta and peanut butter deliver 1,000-4,000 calories per dollar
- Eggs, milk, canned fish, chicken thighs and dry lentils are the protein-per-dollar winners
- Chicken breast, Greek yogurt and lean beef are the expensive middle — use them, don't build on them
- A 70/30 split of cheap calories to cheap protein hits 3,500 calories for roughly $9-11 a day
- Buying in bulk and cooking dry beans and lentils yourself cuts costs by 40-70%
How These Numbers Work
Two columns matter, and they rank foods completely differently.
Calories per dollar is your fuel efficiency. It answers: how much energy does this dollar buy? High scores here come from fat and refined carbs — oil, sugar, flour, oats, rice. These are what keep a bulk affordable.
Protein per dollar is your building efficiency. It answers: how many grams of protein does this dollar buy? High scores here come from eggs, dairy, legumes, and cheap cuts of meat.
Very few foods win both. Peanut butter is one. Whole milk is close. Almost everything else is a specialist — either a calorie engine or a protein source, rarely both.
All numbers use rough US supermarket prices as of 2026, buying the largest reasonable package size. Your local prices will differ — sometimes a lot. The ranking is what matters and it's remarkably stable across countries. Oats always beat chicken breast on calories. Eggs always beat steak on protein per dollar. Use my numbers as a starting map, then check a few of your own.
One more thing before the list. I'm using price per pound as the input, so if you see a food listed at a per-lb price that's wildly off from your store, just scale the result. The formula is simple: calories per 3.5 oz × 10 ÷ price per 2.2 lb, and you've got your calories per dollar.
Tier 1: The Calorie Engines (1,000+ cal/$)
These are the foods that make a big bulk financially possible. Almost none of them bring meaningful protein. That's fine — that's not their job.
| Food | Cal/$ | Protein g/$ | Why it wins |
|---|---|---|---|
| Vegetable oil | ~4,000 | 0 | Pure fat, 9 cal/g, dirt cheap in bulk |
| White sugar | ~2,200 | 0 | Use sparingly, but it's fuel |
| White rice (bulk) | ~2,000 | 40 | The base of half the world's diet for a reason |
| Rolled oats (bulk) | ~1,800 | 65 | Best all-round budget carb |
| Dry pasta | ~1,700 | 60 | Cheap, storable, fast |
| All-purpose flour | ~1,700 | 50 | Pancakes, flatbread, thickening |
| Potatoes | ~1,400 | 35 | Fills you up, but volume is a problem |
| Peanut butter | ~1,300 | 55 | The one food that wins both columns |
| Bananas | ~1,100 | 12 | Cheapest fruit calories by a mile |
| Dry lentils | ~1,000 | 75 | Also a top-5 protein source |
Oil is the cheat code nobody uses
Vegetable oil sits at the top of every calorie-per-dollar list ever made, and almost nobody exploits it deliberately. One tablespoon is 120 calories. Add a tablespoon to your rice, another to your eggs, another stirred into a shake, and you've added 360 calories to your day for about 12 cents.
That's not a typo. Twelve cents.
The trick is that you don't taste it much when it's cooked into things. Olive oil for flavor where flavor matters, plain canola or sunflower for everything else. If you're stuck at 2,900 calories and can't force down more food, this is the first lever to pull — it adds zero chewing.
Cook everything in twice the oil you think you need. Two extra tablespoons a day is 240 calories, roughly 2 lb of extra weight gained per month, and it costs you about $2.40 for the entire month.
Oats and rice: the twin foundations
Buy oats in a 10 lb sack, not a canister. Buy rice in a 20 lb bag if you have anywhere to store it. The bulk price is routinely half what you'd pay for the small package, and neither goes bad for a year.
A 3.5 oz serving of dry oats is 380 calories and costs around 20 cents. Three of those a day is 1,140 calories for 60 cents. Add milk and peanut butter and you're at 1,800 calories from breakfast alone, for under $2.
Rice is the same story in savory form. 5.3 oz dry rice is 540 calories and costs about 25 cents. That's your lunch and dinner base sorted for the price of a stick of gum.
The potato problem
Potatoes look great on paper at 1,400 cal/$. In practice they're a trap for hardgainers, because they're mostly water. To get 540 calories from potatoes you'd need to eat roughly 1.5 lb of them. To get 540 from rice you eat 5.3 oz dry, which cooks up to a normal-sized bowl.
If you have a big appetite, potatoes are cheap and great. If you're a skinny guy who gets full after half a plate, they'll fill your stomach without filling your calorie target. Know which one you are.
Tier 2: The Protein Workhorses (60+ g protein/$)
Now the other ranking. These are the foods that let you hit 180-200g of protein a day without your grocery bill doubling.
| Food | Protein g/$ | Cal/$ | Notes |
|---|---|---|---|
| Dry soybeans | ~140 | 1,100 | Cheapest protein on earth, needs prep |
| Dry lentils | ~75 | 1,000 | No soaking required |
| Dry black beans | ~70 | 900 | Soak overnight, cook in bulk |
| Eggs | ~65 | 800 | Complete protein, zero prep skill needed |
| Whole milk | ~60 | 700 | Drinkable calories, easy to overconsume |
| Chicken thighs (bone-in) | ~55 | 500 | Best meat value, period |
| Canned sardines | ~50 | 450 | Omega-3s included free |
| Tofu | ~48 | 350 | Cheap where it's popular, pricey where it isn't |
| Whey protein (bulk tub) | ~45 | 200 | Convenience, not value |
| Canned tuna | ~42 | 180 | Very lean, so calories are low |
| Cottage cheese | ~40 | 260 | Slow protein, good before bed |
Eggs are the correct default
At roughly 65g of protein per dollar with 800 cal/$ attached, eggs are the single most useful food on this list for a broke lifter. Six eggs is 36g of protein and 470 calories for about 90 cents. No cooking skill required. No thawing. No seasoning knowledge.
If you're doing one thing after reading this post, buy a 2.2 lb tray of eggs — the flat of 30, not the carton of 12 — and eat six every morning.
Chicken thighs beat chicken breast, badly
This one annoys people, so here's the arithmetic. Bone-in chicken thighs run around a third to a half the per-lb price of boneless skinless breast in most markets. They're fattier, which means more calories per dollar too. They're more forgiving to cook — you basically can't dry them out. And the protein difference per 3.5 oz of cooked meat is maybe 3-4 grams.
Chicken breast is a fine food that lands somewhere around 250 cal/$ and 55g protein/$ at typical prices — respectable protein value, terrible calorie value. On a bulk, where you're chasing both numbers, thighs win.
Don't build your entire protein intake on one food, no matter how good the ratio looks. Six months of nothing but lentils and eggs will wreck your appetite and your micronutrient profile. Rotate at least four or five protein sources across the week.
Dry legumes are a 70% discount on canned
A can of black beans costs roughly three times what the same amount of dry beans costs. You're paying for water and a tin. Buy a 2.2 lb bag of dry beans, soak them overnight, simmer for an hour, portion into containers, freeze. That's about 20 minutes of actual work for two weeks of protein.
Lentils skip the soaking entirely — they cook in 20-25 minutes from dry. They're the lowest-effort entry point if you've never cooked legumes.
For a full week-by-week shopping breakdown built around exactly these foods, check the under-$75-a-week bulking grocery list — it turns this ranking into an actual cart.
Tier 3: The Expensive Middle
These aren't bad foods. They're just foods that people over-buy because fitness content told them to, and they blow up a tight budget.
| Food | Cal/$ | Protein g/$ | Verdict |
|---|---|---|---|
| Chicken breast | ~250 | 55 | Fine, not special |
| Greek yogurt | ~230 | 30 | Expensive per gram of protein |
| Ground beef (80/20) | ~400 | 30 | Good calories, mediocre protein value |
| Salmon | ~180 | 22 | Buy for the omega-3s, not the macros |
| Steak | ~150 | 18 | A treat, not a staple |
| Almonds | ~600 | 22 | Great fat, poor value vs. peanuts |
| Protein bars | ~120 | 15 | Worst value in the entire supermarket |
| Bacon | ~350 | 12 | Flavor tool only |
Greek yogurt is the one that surprises people. It's marketed as the high-protein food, and it is high-protein — per calorie. But per dollar, it's roughly half as efficient as eggs and a third as efficient as dry lentils. A 2.2 lb tub gives you about 100g of protein for $5-6. The same $5-6 in eggs gives you close to 350g.
Use Greek yogurt because you like it and it's convenient. Don't use it because you think it's the efficient choice.
Protein bars deserve a special mention as the worst purchase available to a bulking lifter. Around 15g of protein per dollar and 120 calories per dollar. You're paying convenience-store margins for a candy bar with whey in it. A 2.2 lb bag of rice and a bulk tub of whey do the same job for a tenth of the price.
The 70/30 Rule: Combining the Two Rankings
Here's how you actually use all this.
Don't try to optimize every food for both numbers. Instead, split your budget: roughly 70% goes to Tier 1 calorie engines, 30% goes to Tier 2 protein workhorses. The cheap carbs and fats do the heavy lifting on total calories; the protein foods handle the anabolic side.
Here's what that looks like as a real day at 3,500 calories and around 190g of protein:
| Meal | Foods | Calories | Protein | Cost |
|---|---|---|---|---|
| Breakfast | 100g oats, 500ml whole milk, 2 tbsp peanut butter, 1 banana | 1,050 | 38g | $1.60 |
| Lunch | 150g dry rice, 200g chicken thigh, 1 tbsp oil, mixed frozen veg | 1,000 | 48g | $2.90 |
| Snack | 6 eggs, 2 slices toast | 620 | 42g | $1.30 |
| Dinner | 150g dry pasta, 200g lentils, 1 tbsp oil, canned tomatoes | 1,050 | 45g | $1.80 |
| Before bed | 500ml whole milk, 1 scoop whey | 430 | 41g | $1.40 |
| Total | 4,150 | 214g | $9.00 |
That's actually overshooting — trim the portions to taste and you land at 3,500 calories for around $7.50-8.00 a day, or roughly $55 a week. That's not a theoretical number. That's a cart you can push through a store this afternoon.
Weigh your dry goods, not your cooked ones. 5.3 oz of dry rice is always 540 calories. Cooked rice varies wildly depending on how much water it absorbed, and guessing there is how people accidentally under-eat by 400 calories a day for months.
If you want these combinations turned into food that doesn't taste like punishment, the 12 bulking meals under $5 post covers the cooking side.
Where the Money Actually Leaks
Knowing the rankings isn't enough if you're throwing money away on the mechanics of shopping. Four leaks account for most of it.
Package size
The single biggest multiplier. Bulk bags of rice, oats, flour, pasta and dry legumes routinely cost 40-60% less per lb than the standard shelf size. Same product, same brand sometimes. You're paying for the packaging and the convenience of a smaller commitment.
Storage is the only real objection, and a 5 gallon bucket with a lid solves it for about $8.
Buying protein as a convenience product
Pre-cooked chicken strips, ready-made egg-white cartons, protein puddings, shake bottles from the fridge aisle. Every one of these charges you two to four times the raw-ingredient price for work you can do in 20 minutes on a Sunday.
Meat cuts and marketing
Boneless costs more than bone-in. Skinless costs more than skin-on. "Lean" costs more than regular, which is backwards for a bulk since you want the fat calories. Ground beef at 80/20 is both cheaper and more calorie-dense than 93/7. You're being charged extra to remove calories you're trying to eat.
Waste
The quietest leak. Produce that rots, leftovers that get forgotten, portions cooked too large and thrown out. Frozen vegetables solve most of it — same nutrition, half the price, zero spoilage. Buy fresh only what you'll eat in three days.
Frozen fruit and vegetables are frozen within hours of harvest, which often means better micronutrient retention than fresh produce that spent a week in transit. This isn't a compromise choice for broke people. It's just the smarter purchase.
Building Your Own Ranking in 10 Minutes
My prices aren't your prices. Here's how to build the version that's actually true for your store.
Take a photo of the shelf tags for your ten most-used foods. Most stores print a unit price — price per lb — right on the tag, which does half the work for you.
Then for each one:
- Look up calories per 3.5 oz (the package tells you)
- Multiply by 10 to get calories per 2.2 lb
- Divide by the price per 2.2 lb
- That's your calories per dollar
Same process with protein grams instead of calories for the second column.
Do this once, write the results in your phone's notes app, and you'll never have to think about it again. You'll walk into a store and know instantly whether a "deal" is actually a deal.
The thing that surprises most people doing this for the first time is how much the ranking changes by region. Tofu is a top-5 protein value in parts of Asia and a mid-tier one in the US Midwest. Lamb is cheap in New Zealand and absurd in Canada. Eggs swing 3x depending on the year. Your local ranking is the only one that matters.
Common Mistakes
1. Optimizing only for protein per dollar. You end up eating 220g of protein and 2,400 calories, feeling stuffed, and not gaining. Protein doesn't build muscle without a calorie surplus behind it.
2. Optimizing only for calories per dollar. The all-rice-and-oil diet is cheap and you will gain weight on it. Most of that weight won't be muscle.
3. Ignoring the effort cost. Dry soybeans are the cheapest protein on the planet and almost nobody sticks with them, because the prep is genuinely annoying. A food you don't eat has infinite cost per gram. Pick things you'll actually cook.
4. Buying bulk without storage. A 20 lb bag of rice that gets weevils in month three saved you nothing. Airtight containers, cool dark place, or don't buy the big bag.
5. Treating the ranking as a diet. This is a shopping tool, not a meal plan. You still need vegetables, you still need variety, you still need to enjoy your food enough to keep eating it for six months.
6. Skipping the tracking. You can shop perfectly and still under-eat. Weigh yourself daily, take the weekly average, and expect 0.25-0.5% of bodyweight per week — for a 154 lb guy that's about 0.5-0.75 lb per week. If the average isn't moving after two weeks, add 250 calories, which at these prices costs you about 30 cents.
For more on structuring high-protein eating when money is tight, the budget high-protein bulking guide goes deeper on the protein side specifically.
Where FuelTheGains Fits
Here's the gap this post doesn't close. You now know the rankings. You still have to turn them into a number of grams, at a specific meal, on a specific day, that adds up to your surplus — and then re-do that math every time your weight moves or your budget changes.
That's the part where most people quit. Not the shopping. The daily arithmetic.
That's what we built FuelTheGains for. You put in your stats, your target, and what you can actually spend, and it gives you the meal plan and the shopping list — built around exactly these kinds of cost-efficient foods, with the portions already calculated. When your weight stalls, it adjusts the numbers for you.
You could do all of it manually with a spreadsheet and this article. Plenty of guys do. But if you'd rather spend that hour a week lifting instead of calculating, that's the point of it.
The Bottom Line
Budget bulking isn't about willpower or clever recipes. It's about knowing that a dollar of oats gives you 1,800 calories and a dollar of protein bars gives you 120, and shopping accordingly.
Load your cart with Tier 1 for the calories, Tier 2 for the protein, treat Tier 3 as optional flavor, and you can run a genuine 3,500-calorie bulk for under $60 a week.
Spend ten minutes building your own local version of this ranking. It's the highest-return ten minutes available to a broke lifter — and it means your bulk survives past the 20th of the month.
