Cheap bulking diet: macros and a €5.80-a-day meal plan
At Lidl Italy prices from our catalogue, a bulking day of 2,976 kcal and 170 g of protein costs €5.80 of food, €40.60 a week. Pasta, rice and oats cover 40% of the calories for 9% of the cost; chicken breast alone is almost 30%. Here is how to calculate bulking macros, which foods give the most calories per euro, and a sample day with grams, macros and prices.
How many macros you need to bulk
Bulking needs more calories than you burn, enough protein to build muscle and carbs to train well. GetYourMacros estimates your needs with the Mifflin-St Jeor equation, multiplies them by your activity level and adds a 10% surplus, never below 250 kcal. Protein is set at 2 g per kg of body weight, fat at 25% of calories, and carbs cover the rest.
| Item | Man, 75 kg, 178 cm, 25 years | Woman, 60 kg, 165 cm, 25 years |
|---|---|---|
| Basal metabolic rate | 1,743 kcal | 1,345 kcal |
| Daily energy needs (× 1.55) | 2,702 kcal | 2,085 kcal |
| Bulking surplus | +270 kcal | +250 kcal |
| Bulking calories | 2,972 kcal | 2,335 kcal |
| Protein (2 g/kg) | 150 g | 120 g |
| Fat (25% of kcal) | 83 g | 65 g |
| Carbs (the rest) | 406 g | 318 g |
As percentages, the 75 kg example splits calories into roughly 55% carbs, 25% fat and 20% protein. The 50/30/20 split you often see online is similar, but starting from percentages gets protein wrong: heavier people need more of it, whatever the total. It is better to set it in grams per kilo and divide the rest. If macros are new to you, our guide to what macros are covers the basics.
The surplus is deliberately small. With 270 extra kcal a day you can expect weight gain in the order of one kilo a month, a pace that lets muscle grow without piling on too much fat.
The cheapest calories at Lidl
Eating 3,000 kcal a day is the main challenge of a bulk, and also the one that hits your wallet hardest if you pick the wrong foods. The number that matters is simple: how many calories one euro buys. For protein we use the same yardstick, grams per euro, which is also behind our protein per euro ranking. All prices are from Lidl in Italy.
| Food | Pack | Price | kcal per euro | Protein per euro | Price source |
|---|---|---|---|---|---|
| Sunflower oil | 1 l | €1.99 | 4,482 | 0 g | ≈ catalogue estimate |
| Durum wheat pasta (Combino) | 500 g | €0.55 | 3,227 | 109 g | ≈ catalogue estimate |
| Wholegrain oat flakes | 500 g | €0.95 | 1,974 | 68 g | ✓ Open Prices, Mar 2026 |
| Rice (Ribe) | 1 kg | €1.89 | 1,878 | 37 g | ≈ catalogue estimate |
| Plain biscuits | 400 g | €1.19 | 1,462 | 25 g | ≈ catalogue estimate |
| Extra virgin olive oil | 1 l | €6.99 | 1,288 | 0 g | ≈ catalogue estimate |
| Dried lentils | 500 g | €1.59 | 1,069 | 76 g | ≈ catalogue estimate |
| Sliced wholemeal bread | 500 g | €1.29 | 930 | 35 g | ≈ catalogue estimate |
| 100% peanut butter | 350 g | €2.99 | 702 | 33 g | ✓ Open Prices, Nov 2025 |
| Canned chickpeas | 240 g drained | €0.49 | 588 | 34 g | ✓ Open Prices, Jun 2026 |
| Whole milk | 1 l | €1.15 | 561 | 29 g | ≈ catalogue estimate |
| Bananas | 1 kg | €1.59 | 560 | 7 g | ≈ catalogue estimate |
| Potatoes | 1.5 kg | €2.99 | 386 | 10 g | ✓ flyer, 10 Sep 2026 |
| Eggs | 10 eggs (600 g) | €2.49 | 313 | 30 g | ≈ catalogue estimate |
| Whey protein powder | 500 g | €12.99 | 146 | 31 g | ≈ catalogue estimate |
| 0% Greek yogurt | 500 g | €1.99 | 143 | 25 g | ≈ catalogue estimate |
| Chicken breast | 1 kg | €8.29 | 133 | 28 g | ✓ flyer, 3 Sep 2026 |
✓ = observed price (Lidl flyer or Open Prices, with the date); ≈ = GetYourMacros catalogue estimate, not checked on the shelf. Flyer prices may have been promotional. Nutrition per 100 g of product as sold (dry pasta and rice, raw chicken).
The gap between products is huge: one euro of pasta buys 3,227 kcal, one euro of chicken breast 133. Pasta, oats, rice and lentils are the base of a cheap bulk, because they cost little per calorie and bring protein too: 109 g per euro for pasta, 76 g for lentils. Cereal protein is not complete, which is why the sample day pairs them with dairy, eggs, pulses and chicken.
At the top of the calorie ranking sit seed oil (4,482 kcal per euro) and, outside the table, sugar (4,040). They are the cheapest calories of all, but bring no protein and no fibre. They help when appetite is the limit: an extra spoonful of oil adds 90 kcal without filling you up. They cannot be the base of the diet.
A €5.80 bulking day
Here is a day built on the 75 kg example, with everyday foods and no supplements. Every ingredient is weighed raw and priced on the Lidl Italy catalogue; the cost counts only the grams you eat.
| Meal | What you eat | kcal | Protein | Carbs | Fat | Cost |
|---|---|---|---|---|---|---|
| Breakfast | 100 g oat flakes, 300 ml whole milk, 1 banana (120 g), 20 g peanut butter | 795 | 30 g | 104 g | 28 g | €0.90 |
| Lunch | 130 g pasta, 240 g canned chickpeas, 150 g passata, 10 g extra virgin olive oil | 884 | 34 g | 142 g | 18 g | €0.89 |
| Snack | 250 g 0% Greek yogurt, 80 g wholemeal bread | 334 | 32 g | 45 g | 3 g | €1.20 |
| Dinner | 100 g rice, 200 g chicken breast, 200 g frozen mixed vegetables, 15 g extra virgin olive oil | 806 | 59 g | 93 g | 19 g | €2.31 |
| Before bed | 2 eggs (120 g) | 156 | 15 g | 1 g | 11 g | €0.50 |
| Total | target: 2,972 kcal, 150 g protein | 2,976 | 170 g | 385 g | 79 g | €5.80 |
Totals are calculated on unrounded values, so they can differ by 1 from the sum of the rows. Salt, spices and coffee excluded.
Against the target the day has 4 kcal more, 20 g more protein and 21 g fewer carbs: a normal gap for a real day. The extra protein is not a problem and makes the plan more forgiving on days you skip the snack.
Pasta, rice and oats together provide 1,192 kcal, 40% of the day, for €0.52, or 9% of the cost. Chicken breast alone costs €1.66: almost 30% of the total for 27% of the protein. That is where the cost of a bulking diet is decided, not on the carbs.
For 2,335 kcal, the 60 kg example, cut pasta, rice and oil and leave protein where it is: it stays above the 120 g target anyway.
The week's shop: €60.80 at the till
Eating this day for seven days costs €40.60 of food. At the till, though, you buy whole packs, and the first shop comes to €60.80.
| Product | Packs | Cost |
|---|---|---|
| Chicken breast ✓ | 2 × 1 kg | €16.58 |
| 0% Greek yogurt | 4 × 500 g | €7.96 |
| Extra virgin olive oil | 1 × 1 l | €6.99 |
| Eggs | 2 × 10 | €4.98 |
| Frozen mixed vegetables | 2 × 1 kg | €3.58 |
| Whole milk | 3 × 1 l | €3.45 |
| Canned chickpeas ✓ | 7 × 240 g | €3.43 |
| 100% peanut butter ✓ | 1 × 350 g | €2.99 |
| Sliced wholemeal bread | 2 × 500 g | €2.58 |
| Wholegrain oat flakes ✓ | 2 × 500 g | €1.90 |
| Rice | 1 × 1 kg | €1.89 |
| Tomato passata ✓ | 2 × 700 g | €1.78 |
| Bananas | 1 × 1 kg | €1.59 |
| Durum wheat pasta | 2 × 500 g | €1.10 |
| Total at the till | 14 products | €60.80 |
✓ = observed price; the others are GetYourMacros catalogue estimates for Lidl Italy on 28 September 2026.
The €20.20 difference is not wasted: at the end of the week you still have 825 ml of oil, 210 g of peanut butter, 600 g of chicken, 6 eggs, 440 g of bread and 300 g of rice. So the second week costs less than the first. To plan leftovers from one week to the next, our budget meal planning guide uses the same method over two weeks.
Where you really save (and where you don't)
On animal protein. Replacing 100 g of chicken breast (€0.83, 23 g of protein) with 100 g of dried lentils (€0.32, 24 g of protein) saves €0.51 a day, €3.57 a week. It adds 230 kcal and 50 g of carbs, which on a bulk is an advantage. More ideas in our guide to cheap protein sources.
On oil, if you use it to add calories. Seed oil costs €1.99 a litre, the catalogue's extra virgin olive oil €6.99. For dressing, extra virgin is worth the difference; for adding calories when cooking, seed oil costs less than a third.
Not on protein powder. Whey gives 31 g of protein per euro: the same as eggs and slightly more than chicken. It is handy after training, but it does not lower the bill. 0% Greek yogurt sits in the same range, at 25 g per euro.
Not on biscuits. At 1,462 kcal per euro they look like a bargain, but they give 25 g of protein per euro against pasta's 109 and do not fill you up. Oats and bread are better.
How to tell if the bulk is working
Weigh yourself three or four times a week, at the same time, and look at the weekly average, not the single day. If the average has not moved after three weeks, add 150–200 kcal a day, for example 50 g more pasta. If you gain more than two kilos a month, take the same amount away. Always add on the carb side: those are the cheapest calories. If you shop at Lidl, our guide to healthy shopping at Lidl has more prices.
How we did the maths
Prices come from the GetYourMacros Lidl Italy catalogue on 28 September 2026. Rows marked ✓ are observed prices, from a Lidl flyer or Open Prices, with the date they were recorded; rows marked ≈ are catalogue estimates, not checked on the shelf. Prices change by store and by week: check the shelf labels before you buy. Nutrition values are the per-100 g values of the app's ingredient database. The targets use the same formula as the app: Mifflin-St Jeor, moderate activity (× 1.55), a 10% surplus with a minimum of 250 kcal, 2 g of protein per kg, fat at 25%. Calories are rounded to the unit, prices to the cent.
Frequently asked questions
How much does a bulking diet cost?
In our 2,976 kcal, 170 g protein example the food you eat costs €5.80 a day, or €40.60 a week, at Lidl Italy prices from the GetYourMacros catalogue on 28 September 2026. The first shop costs more, €60.80, because you buy whole packs: oil, peanut butter, rice and bread carry over into the next week.
What are the cheapest bulking foods?
Durum wheat pasta, oat flakes, rice and dried lentils: one euro buys between 1,069 and 3,227 kcal of them. Seed oil and sugar are even cheaper per calorie, but they bring no protein: use them to add calories, not as the base of the diet.
How much protein do you need to bulk?
GetYourMacros uses 2 g of protein per kg of body weight when the goal is gaining mass: 150 g a day for a 75 kg person, 120 g for a 60 kg person. The rest of the calories come from fat, at 25% of the total, and carbs.
What macro split should you use for bulking?
In our example calories split roughly 55% carbs, 25% fat and 20% protein. That is close to the classic 50/30/20, but it works better to set protein in grams per kilo first and then divide the rest, instead of starting from percentages.
Do you need protein powder to bulk on a budget?
No. The whey in the Lidl catalogue gives 31 g of protein per euro, the same as eggs (30 g) and slightly more than chicken breast (28 g). Dried lentils reach 76 g per euro. Powder is a convenience, not a saving.
To turn these numbers into a weekly plan within your budget, see the Discover the GetYourMacros budget diet app.
Start for free
Pick the gain-mass goal, your supermarket and your weekly budget: GetYourMacros calculates calories and macros with the formula in this article, builds the plan and sends the ingredients to your shopping list.