MacroThriftMacroThrift

Playbook

How to eat high-protein on a tight grocery budget

The staples, swaps, and per-day math to hit 150g of protein a day without wrecking your grocery bill - computed from real prices.

the math · 150g protein/day
$1.33/day
$9.32/week · cheapest source: Oats (dry)

Two columns in this dataset decide almost everything about a high-protein grocery budget: cost per 10 g of protein, and calories per gram of protein. The cheapest food here is dry oats at $0.089 per 10 g of protein. The most expensive is 90/10 ground beef at $0.550, which is 6.2 times more. If price were the only constraint, this guide could stop there.

It cannot, because of the second column. Oats cost 23.0 kcal for every gram of protein they deliver. Chicken breast costs 5.3. Run a 150 g daily protein target through both. From oats alone you need about 888 g of dry oats (150 divided by 16.9, times the 100 g row), which is $1.33 and 3,453 kcal. From raw chicken breast alone you need about 667 g, which is $6.00 and 800 kcal. Cheap protein is not scarce. Cheap protein that fits inside a calorie budget is the actual problem.

We use 150 g a day as the worked example because it is a common target. Substitute whatever target you have already chosen and every figure below scales linearly. One honesty note first: these prices are maintained, representative US grocery estimates joined to public nutrition data. They are not live prices and not specific to your store. The ranking between foods is far more stable than the absolute dollar figures, so treat the order as reliable and the totals as a starting point to check against your own receipts.

Build around cheap staples and the bill collapses to a few dollars a day. The budget-protein shortlist:

The trick is balancing cost against calories: the cheapest sources are often carb- or fat-dense. Use the cheapest-protein planner to hit your exact target under a calorie cap.

Want it planned into a week of meals for you?

Get a cheap high-protein meal plan →

About these numbers. Costs are computed from public nutrition data joined to maintained, representative US grocery prices, not live per-store pricing. Your shelf prices will differ. The ranking between foods is far more stable than the absolute dollars, so treat the order as the signal and re-run your own numbers in the planner. Meat and fish figures are raw weight, and cooking drives water off, so cooked cost per gram of protein runs higher.

The two numbers, and the ceiling they create

Cost per 10 g of protein tells you what a gram of protein costs in dollars. Calories per gram of protein tells you what it costs in room. You need both, because the second sets a hard ceiling the first cannot buy its way past.

Here is that ceiling as a rule you can apply in the aisle. If your calorie budget is 2,000 and your target is 150 g of protein, the absolute maximum blended calorie cost you can afford is 2,000 divided by 150, or 13.3 kcal per gram of protein, and that leaves exactly zero calories for vegetables, fruit, cooking oil, or anything you eat for pleasure. Reserve 600 kcal for those and the working ceiling drops to 1,400 divided by 150, about 9.3 kcal per gram of protein.

Sort the sixteen foods against 9.3 and nine pass: canned tuna 4.5, turkey breast 4.6, tilapia 4.8, whey 5.0, chicken breast 5.3, Greek yogurt 5.9, cottage cheese 7.6, tofu 8.5, ground beef 8.8. Seven fail: edamame 10.1, eggs 11.3, lentils 12.9, milk 14.7, black beans 14.8, oats 23.0, peanut butter 23.5.

Now overlay the price ranking. The six cheapest per 10 g of protein are oats ($0.089), peanut butter ($0.220), lentils ($0.222), tofu ($0.235), black beans ($0.247) and cottage cheese ($0.273). Only two of those six, tofu and cottage cheese, also clear the 9.3 ceiling. That single overlap is the whole game.

What 150 g of protein costs from one food

Running the target through each food one at a time is the fastest way to see the trade. Oats: 888 g dry, $1.33, 3,453 kcal. Lentils: 1,667 g cooked, $3.33, 1,933 kcal. Tofu: 882 g, $3.53, 1,271 kcal. Black beans: 1,685 g cooked, $3.71, 2,224 kcal. Cottage cheese: 1,364 g, $4.09, 1,145 kcal. Whey: 6.25 scoops of 30 g, $4.69, 750 kcal. Greek yogurt: 1,500 g, $5.25, 885 kcal. Eggs: about 24 large, $5.36, 1,702 kcal. Chicken breast: 667 g raw, $6.00, 800 kcal. Canned tuna: 577 g, $6.35, 669 kcal. Ground beef 90/10: 750 g raw, $8.25, 1,320 kcal.

The dollar spread from the cheapest to the most expensive of those is $6.92 a day. The calorie spread is 2,784 kcal, and it runs in almost exactly the opposite direction.

None of these is a plan. A single-food day is a math result that tells you where a food sits on both axes, not something to eat. The volumes alone rule most of them out: 1.4 kg of cottage cheese, 1.7 kg of cooked lentils, or 24 eggs in one day is not a shopping decision, it is a stunt.

A realistic mixed day, priced to the cent

Blend instead. Here is a day built from seven lines of the table, each a straight multiple of its 100 g row: 100 g dry oats (16.9 g protein, 389 kcal, $0.15), 200 g milk (6.8 g, 100 kcal, $0.24), 200 g nonfat Greek yogurt (20 g, 118 kcal, $0.70), 200 g lowfat cottage cheese (22 g, 168 kcal, $0.60), 300 g cooked lentils (27 g, 348 kcal, $0.60), 100 g eggs or about two large (12.6 g, 143 kcal, $0.45), and 200 g raw chicken breast (45 g, 240 kcal, $1.80).

That totals 150.3 g of protein, 1,506 kcal, and $4.54. The blended rate is $4.54 divided by 15.03 units of 10 g, or $0.302 per 10 g of protein. Against a 2,000 kcal day it leaves roughly 494 kcal for everything this table does not price.

The blended rate is the lever worth watching, because your daily bill is simply 15 times it at a 150 g target. Shave one cent off the blend and you save $0.15 a day, about $1.05 a week, roughly $55 a year. That is the correct unit for judging whether a swap is worth the trip.

The swap table, in dollars per 10 g of protein

Every swap below is one row's rate minus another's. To convert to money, multiply the delta by the number of 10 g units that slot supplies. A 30 g protein slot is 3 units, so a $0.10 delta is $0.30 a day and $2.10 a week.

Ground beef 90/10 to tofu saves $0.315 per 10 g, the largest delta in the set: $0.945 a day on a 30 g slot, $6.62 a week. It costs you almost nothing in calorie efficiency (8.8 down to 8.5 kcal per gram of protein), which makes it the single best swap available here.

Ground beef to chicken breast saves $0.150 ($3.15 a week on a 30 g slot). Peanut butter to oats saves $0.131 ($2.75 a week) and the calorie cost is effectively identical (23.5 versus 23.0), so it is a pure price win in the same role. Canned tuna to whey saves $0.111 ($2.33 a week) for half a kcal per gram of protein. Eggs to cottage cheese saves $0.084 ($1.76 a week) and improves calorie efficiency from 11.3 to 7.6, so it wins on both axes at once. Tilapia to chicken saves $0.075. Greek yogurt to cottage cheese saves $0.077 and costs 1.7 kcal per gram of protein, about 34 kcal on a 20 g slot.

Decision rule: ignore anything under about $0.05 per 10 g. Turkey breast to chicken breast is $0.038, or $0.80 a week on a 30 g slot. That is inside the error bar of any representative price estimate, so it is noise, not a saving.

Three tiers: base, lean middle, and where meat earns its place

The base is bulk dry goods: oats at $0.089 per 10 g, lentils at $0.222, black beans at $0.247. Their calorie cost is bad on the protein axis (23.0, 12.9 and 14.8), so do not buy them as protein. Buy them for carbohydrate you were going to eat anyway and count the protein as a rebate. 100 g of dry oats brings 66 g of carbohydrate plus 16.9 g of protein for $0.15. 300 g of cooked lentils brings 20 g of carbohydrate per 100 g plus 27 g of protein for $0.60. In the day above, those two lines supply 43.9 g of 150.3 g protein (29.2 percent) for $0.75 of $4.54 (16.5 percent).

The lean middle is dairy and whey: cottage cheese at $0.273 and 7.6 kcal per gram of protein, whey at $0.312 and 5.0, Greek yogurt at $0.350 and 5.9. This tier is the cheapest way to buy protein that clears the 9.3 ceiling. Cottage cheese is the best combined value in the whole table.

Tofu is the crossover case at $0.235 and 8.5 kcal per gram of protein: cheaper per gram of protein than every animal source here and still under the ceiling.

Meat and fish run $0.400 to $0.550, the top of the price range. They earn their place on calorie efficiency (tuna 4.5, turkey 4.6, tilapia 4.8, chicken 5.3) and on being something other than another bowl of dairy. Chicken is the cheapest of them at $0.400, a premium of $0.127 per 10 g over cottage cheese. Taking 45 g a day from chicken instead costs about $0.57 a day, roughly $4.00 a week. That is a real price for variety and a low calorie load, and it is a defensible one.

The weekly shop, and where the money actually goes

Multiply the mixed day by seven: 700 g dry oats $1.05, 1,400 g milk $1.68, 1,400 g Greek yogurt $4.90, 1,400 g cottage cheese $4.20, 2,100 g cooked lentils $4.20, about 14 large eggs $3.15, and 1,400 g raw chicken breast $12.60. Total $31.78 for seven days at 150 g of protein.

Chicken is $12.60 of that $31.78, or 39.6 percent of the bill, for 45 of 150.3 g of protein, or 29.9 percent. One line is eating a disproportionate share, which is exactly where to aim a swap.

Move half the chicken (100 g a day) to tofu. You need 132 g of tofu to replace 22.5 g of protein, at $0.53 instead of $0.90, so the day drops to $4.17 and the week to $29.19, at a cost of 71 kcal a day. Move all of it: 265 g of tofu replaces 45 g of protein for $1.06 instead of $1.80. The day becomes $3.80 and 1,647 kcal, the week $26.60. That is a 16.3 percent cut to the grocery bill for 141 extra kcal a day.

For reference, the theoretical floor from this table is an all-oats week at $9.31. It also runs 3,453 kcal a day, which is why nobody eats it.

What would change these numbers

Raw versus cooked matters. Chicken breast, turkey breast, tilapia and ground beef are listed raw. Lentils and black beans are listed cooked. Do not compare a cooked 100 g portion to a raw row: cooked chicken started as more than 100 g raw, so it cost more than the $0.90 on that line, and some protein leaves with the drippings. Treat $0.400 per 10 g for chicken as a floor and weigh raw where you can.

Serving basis matters too. Every row is per 100 g of the food as listed except whey, which is a 30 g scoop at $0.75. Its $0.312 per 10 g already accounts for that, but the $0.75 is per scoop and not per 100 g.

Price accuracy matters least of all, in a specific sense. These are representative estimates, not live or store-specific figures. If your store runs uniformly 20 percent above them, every ratio and every swap delta in this guide still holds and only your total moves. Spot check two or three lines against a recent receipt and you will know which way to adjust.

Finally, the arithmetic here optimises for two columns and nothing else. This table carries calories, protein, carbohydrate, fat and price. It does not carry micronutrients, fibre quality, how full a food leaves you, or whether you will still want to eat it in week three. Variety matters for reasons this dataset cannot measure, which is why the single-food plans above are diagnostics rather than menus. This is a cost and shopping resource, not health advice, and 150 g is used purely as an example target you have already chosen for your own reasons.

FAQ

What is the cheapest source of protein?
By price alone it is dry oats at $0.089 per 10 g of protein, about 2.5 times cheaper than peanut butter ($0.220) and 6.2 times cheaper than 90/10 ground beef ($0.550). But oats cost 23.0 kcal for every gram of protein, so hitting 150 g from oats alone means 888 g of dry oats and 3,453 kcal for $1.33. Cheapest per gram of protein and cheapest way to hit a target inside a calorie budget are two different questions, and tofu at $0.235 and 8.5 kcal per gram of protein answers the second one better.
How much does 150 g of protein a day actually cost?
At the extremes of this dataset, between $1.33 a day from oats alone (3,453 kcal) and $8.25 a day from 90/10 ground beef alone (1,320 kcal). A realistic mixed day using oats, milk, Greek yogurt, cottage cheese, lentils, eggs and chicken comes to $4.54 and 1,506 kcal, which is $31.78 a week. These are representative US grocery estimates rather than live store prices, so check a few lines against your own receipts.
Is whey protein worth buying on a tight budget?
On price alone, no: at $0.312 per 10 g of protein it is more expensive than lentils ($0.222), tofu ($0.235) and cottage cheese ($0.273). Its case is calorie efficiency, at 5.0 kcal per gram of protein. Among the four most calorie-efficient foods in the set (tuna 4.5, turkey 4.6, tilapia 4.8, whey 5.0), whey is much the cheapest, since those three run $0.423 to $0.475 per 10 g. So it is the cheapest way to buy protein when calories are the binding constraint, not when dollars are.
Are beans and lentils good value for protein?
Per dollar, yes: lentils at $0.222 and black beans at $0.247 per 10 g of protein are roughly half the price of chicken breast at $0.400. Per calorie they are poor, at 12.9 and 14.8 kcal per gram of protein, so 150 g of protein from lentils alone would be 1,667 g of cooked lentils and 1,933 kcal. The right way to use them is as your carbohydrate base with the protein as a rebate: 300 g of cooked lentils gives 27 g of protein for $0.60.
Does it matter that chicken and beef are listed raw?
Yes, and it moves the numbers in one direction only. Chicken breast, turkey breast, tilapia and ground beef are priced on raw weight, while lentils and black beans are listed cooked. Cooking drives off water, so a 100 g cooked portion came from more than 100 g raw and cost more than the row suggests, and some protein leaves in the drippings. Treat the $0.400 per 10 g figure for chicken as a floor, and weigh raw when you are comparing against this table.
Are these the prices I will actually pay at my store?
No. They are maintained, representative US grocery estimates joined to public nutrition data, not live, real-time, or store-specific figures. The useful property is that relative ranking is far more stable than absolute price: if your store runs uniformly higher, every ratio and every swap delta in this guide still holds and only your weekly total changes. Spot check two or three items against a recent receipt to calibrate.