Lean bulk meal plan: 2,700 calories, 160 g protein
A lean bulk is a small calorie surplus with protein held near 1.6 to 2.2 g per kg. For a 75 kg man whose maintenance is about 2,500 calories, 2,700 is a surplus of 8%, with 160 g protein, 75 g fat and 346 g carbs (estimated). Below is a full day of food that lands there.
By the MacroRecipe editorial team · Updated
Search for a lean bulk meal plan and you find two kinds of page. One gives a day of meals at some round number, usually without saying whose maintenance it is added to. The other gives a formula and no food. Both leave the same question open: is 2,700 calories a lean bulk for you, or is it maintenance, or a dirty bulk? The answer depends on a number you can estimate in a minute, so we started there, and then we built the day.
A lean bulk means eating a little above your maintenance calories while you train, so that most of the weight you add is muscle and not much of it is fat. The word "lean" is a goal, not a guarantee, and nothing here promises a result. Every calorie and macro figure on this page is an estimate, calculated from an equation and from food tables, so treat it as a starting point. This page is general information, not medical advice. It is written by the MacroRecipe editorial team, which makes an iPhone app for weekly menus; that is covered near the end.
The short answer: 2,700 is a lean bulk if your maintenance is about 2,500
Two numbers decide whether a day of eating is a lean bulk: your estimated maintenance and the size of the step above it. The rules we used, in the order we applied them:
- Calories: estimated maintenance plus a modest surplus. For our example man that is about 2,500 plus 200, so 2,700 (an 8% surplus, estimated).
- Protein: 1.6 to 2.2 g per kg of body weight. For 75 kg that is 120 to 165 g, and we aimed at 160 g, or 2.1 g per kg (estimated).
- Fat: about 25% of calories, which is 75 g, or 1.0 g per kg (estimated).
- Carbs: everything else at 4 calories per gram, which is 346 g, or 4.6 g per kg (estimated).
If your maintenance is higher or lower than 2,500, your lean bulk number moves with it, and the table in the next section shows how. The arithmetic behind each step is in our guide to calculating macros, and the three-goal comparison is in macro split for muscle gain, cutting and maintenance.
How big should the surplus be?
Nobody knows exactly, and the research says so. A 2019 review by Slater and colleagues in Frontiers in Nutrition states that the specific energy surplus required to facilitate muscle hypertrophy is unknown, and that the usual estimates have never been validated in people doing resistance training (Slater and colleagues, 2019). So any number is a starting point you adjust from your own results.
The most practical range comes from a narrative review of off-season nutrition for bodybuilders. It suggests a surplus of about 10% to 20% above maintenance, aiming at a weight gain of about 0.25% to 0.5% of body weight per week for novice and intermediate lifters, and a more conservative surplus and rate for advanced ones (Iraki and colleagues, 2019). It is a review of an evidence base the authors describe as thin, written about bodybuilders, so read it as a reasonable range and not a rule.
Here is the part the typical "2,700 calorie lean bulk" page leaves out: the maintenance that would make 2,700 a lean bulk. We worked it backwards from the review's range.
| Surplus above maintenance | Maintenance it implies | What it means |
|---|---|---|
| 5% | about 2,570 | Cautious; suits an advanced lifter or someone who gains fat easily |
| 8% | about 2,500 | Our example man; below the review's 10% to 20% |
| 10% | about 2,450 | The bottom of the review's range |
| 15% | about 2,350 | The middle of the range |
| 20% | about 2,250 | The top of the review's range; a larger, faster bulk |
If your maintenance is already near 2,700, then 2,700 calories is maintenance, not a bulk. If it is 2,900, 2,700 is below maintenance, which is a deficit, not a bulk. That is why a calorie number copied from a plan can fail in either direction. For each maintenance level, this is where the range lands:
| Your estimated maintenance | +5% | +10% | +15% | +20% |
|---|---|---|---|---|
| 2,300 | 2,415 | 2,530 | 2,645 | 2,760 |
| 2,500 | 2,625 | 2,750 | 2,875 | 3,000 |
| 2,700 | 2,835 | 2,970 | 3,105 | 3,240 |
| 2,900 | 3,045 | 3,190 | 3,335 | 3,480 |
The example: one 75 kg man
Our example is a 30-year-old man, 180 cm and 75 kg (5 ft 11 in, 165 lb), who lifts three or four days a week. The Mifflin-St Jeor equation, derived from 498 healthy adults (Mifflin and colleagues, 1990), gives him 10 × 75 + 6.25 × 180 − 5 × 30 + 5 = 1,730 calories at rest. We multiplied by 1.45, our own choice between the usual "lightly active" and "moderately active" factors, which gives 2,508 and rounds to a maintenance estimate of 2,500. That estimate can easily be off by a tenth either way, so a real person would adjust it after a few weeks.
His step above maintenance is 200 calories, 8%. For a man of his weight, 0.25% to 0.5% of body weight per week is 0.19 to 0.38 kg, or about 0.4 to 0.8 lb. That is a target to watch, not a forecast of what will happen to him.
| Grams | Per kg of body weight | Calories | Share of calories | |
|---|---|---|---|---|
| Protein | 160 g | 2.1 g | 640 | 24% |
| Fat | 75 g | 1.0 g | 675 | 25% |
| Carbs (the rest) | 346 g | 4.6 g | 1,385 | 51% |
| Total | 2,700 | 100% |
Is 160 g of protein right for you?
Two sources frame it. A meta-analysis of 49 studies and 1,863 healthy adults found that protein beyond about 1.6 g per kg a day gave no further gain in fat-free mass in people doing resistance training (Morton and colleagues, 2018). The International Society of Sports Nutrition puts the range for building or maintaining muscle at 1.4 to 2.0 g per kg a day (Jäger and colleagues, 2017). The off-season review above says 1.6 to 2.2 g per kg. Taken together, 1.6 g per kg is the point most of the evidence agrees on, and the higher numbers are a margin.
The catch is that 160 g is a body-weight number, not a universal one. We divided it by different body weights:
| Body weight | 160 g per kg | 1.6 g per kg would be | 2.2 g per kg would be |
|---|---|---|---|
| 60 kg (132 lb) | 2.7 g | 96 g | 132 g |
| 70 kg (154 lb) | 2.3 g | 112 g | 154 g |
| 75 kg (165 lb) | 2.1 g | 120 g | 165 g |
| 80 kg (176 lb) | 2.0 g | 128 g | 176 g |
| 90 kg (198 lb) | 1.8 g | 144 g | 198 g |
| 100 kg (220 lb) | 1.6 g | 160 g | 220 g |
So 160 g sits inside the 1.6 to 2.2 g per kg range for anyone from about 73 kg to 100 kg. If you weigh 60 kg, 160 g is 2.7 g per kg, above every range quoted here, and you would be eating protein calories that the sources do not tie to extra muscle. Use your own weight. Our guide to how much protein per day goes through it with more examples.
The day: 17 foods, four meals
Targets are only arithmetic, so we composed a day from ordinary food: oats and eggs for breakfast, a chicken burrito bowl for lunch, yogurt, almonds and an apple as a snack, and beef pasta for dinner. The portions were fitted in 5 to 50 g steps by a small search that minimizes the distance to the calorie, protein, fat and carb targets, then summed line by line. It is one example, not a recommendation to eat exactly this, and we did not cook or weigh it in a kitchen.
| Meal | What | Calories | Protein (g) |
|---|---|---|---|
| Breakfast | Oats cooked in milk with a banana, and two eggs | 777 | 39.3 |
| Lunch | Chicken burrito bowl: rice, black beans, avocado, romaine | 769 | 50.7 |
| Snack | Greek yogurt, almonds and an apple | 298 | 20.0 |
| Dinner | Ground beef pasta with broccoli, olive oil and mozzarella | 838 | 50.8 |
| Day | 2,682 | 160.8 |
| Food | Grams | Ounces | Meal |
|---|---|---|---|
| Oats, dry | 90 | 3.2 | Breakfast |
| Milk, 2% fat | 300 | 10.6 | Breakfast |
| Banana, peeled | 150 | 5.3 | Breakfast |
| Egg, whole (about two large) | 100 | 3.5 | Breakfast |
| Chicken breast, roasted | 100 | 3.5 | Lunch |
| White rice, cooked | 275 | 9.7 | Lunch |
| Black beans, cooked | 120 | 4.2 | Lunch |
| Avocado | 50 | 1.8 | Lunch |
| Romaine lettuce, raw | 50 | 1.8 | Lunch |
| Greek yogurt, plain, nonfat | 150 | 5.3 | Snack |
| Almonds | 20 | 0.7 | Snack |
| Apple, with skin | 180 | 6.3 | Snack |
| Ground beef, 90% lean, pan-broiled | 100 | 3.5 | Dinner |
| Pasta, cooked | 275 | 9.7 | Dinner |
| Broccoli, boiled | 100 | 3.5 | Dinner |
| Olive oil | 10 | 0.35 (about 2 teaspoons) | Dinner |
| Mozzarella, part skim | 30 | 1.1 | Dinner |
Two things about the shape of the day. First, the carbohydrate is carried by ordinary starches: oats, rice, pasta and fruit. There is nothing in it that a normal grocery run cannot supply. Second, the day is generous in volume: 275 g of cooked rice and 275 g of cooked pasta are big plates, and that is typical of a 2,700-calorie day at this much protein. If you struggle to finish plates, the add-on table below shows compact ways to add calories.
What the day adds up to
Every food was multiplied by its USDA value per 100 g and the lines summed. Against the targets:
| The day | Target | Difference | |
|---|---|---|---|
| Calories | 2,682 | 2,700 | −0.7% |
| Protein | 160.8 g | 160 g | +0.8 g |
| Carbs | 348.3 g | 346 g | +2.3 g |
| Fat | 73.9 g | 75 g | −1.1 g |
| Protein per kg of body weight | 2.14 g | 2.1 g | |
| Fiber (counted inside the carbs) | 44.5 g |
The calories land within 1% of the target and the three macros within about 2 g. Two honest notes. The fiber is high at about 44.5 g, mostly from oats, beans and fruit, so if you eat much less fiber today, build up toward it over a couple of weeks. And protein per meal is uneven: lunch and dinner carry about 51 g each, the snack 20 g. The International Society of Sports Nutrition gives about 0.25 g per kg, or 20 to 40 g, per meal as a general guide, and the off-season review gives 0.40 to 0.55 g per kg, which is 30 to 41 g at 75 kg. Our lunch and dinner are above that band. Nothing in these sources says that is harmful for a healthy adult, but it is why you may prefer to move some of the beef or chicken into the snack. Our guides to how much protein per meal and high protein dinner ideas cover that.
Swap test: change the chicken, keep the protein
A plan you cannot adjust is not much use, and the most common adjustment is swapping the main protein. We replaced the 100 g of roasted chicken at lunch, which gives 31 g of protein, with six other foods, each in the quantity that keeps protein within 0.5 g, and recalculated the day.
| Swap | Quantity for the same protein | Calories of the day | Fat of the day |
|---|---|---|---|
| Chicken breast, roasted (the day as written) | 100 g (3.5 oz) | 2,682 | 73.9 g |
| Greek yogurt, plain, nonfat | 305 g (10.8 oz) | 2,697 | 71.5 g |
| Tuna, light, canned in water, drained | 160 g (5.6 oz) | 2,655 | 71.9 g |
| Cottage cheese, 2% milkfat | 295 g (10.4 oz) | 2,756 | 77.0 g |
| Ground beef, 90% lean, pan-broiled | 125 g (4.4 oz) | 2,772 | 83.7 g |
| Salmon, Atlantic, farmed, baked | 140 g (4.9 oz) | 2,805 | 87.6 g |
| Whole eggs | 245 g (8.6 oz), about five large | 2,867 | 93.6 g |
The spread is large. Keeping protein identical, the day moves from 2,655 to 2,867 calories, a gap of 212 (estimated). Tuna, yogurt and chicken keep the day under 2,700; beef, salmon and eggs push it past 2,770, mostly through fat. Fat in the day goes from 73.9 g to 93.6 g with the eggs, which is 1.25 g per kg and still inside the 0.5 to 1.5 g per kg the off-season review gives for fat. This is the practical lesson of protein first: two foods with the same protein can differ by more than 100 calories, so a swap changes the surplus unless you adjust something else, usually the rice or oil.
Small ways to add calories when the plate is too big
If you cannot finish 2,700 calories, or your maintenance turns out higher, you will want to add or remove about 150 calories at a time. Each row below is about 150 calories (estimated), so you can stack them or take one away.
| Add-on | Quantity | Calories | Protein (g) | Carbs (g) | Fat (g) |
|---|---|---|---|---|---|
| Olive oil | 17 g (about 1 tablespoon) | 150 | 0.0 | 0.0 | 17.0 |
| Almonds | 25 g (0.9 oz) | 145 | 5.3 | 5.4 | 12.5 |
| Peanut butter, smooth | 25 g (about 1.5 tablespoons) | 150 | 5.6 | 5.6 | 12.8 |
| Rice, cooked | 115 g (4.1 oz) | 150 | 3.1 | 32.4 | 0.3 |
| Banana | 170 g (6 oz) | 151 | 1.9 | 38.8 | 0.6 |
| Oats, dry | 40 g (1.4 oz) | 156 | 6.8 | 26.5 | 2.8 |
| Whole-wheat bread | 60 g (about 2 slices) | 151 | 7.5 | 25.6 | 2.1 |
| Milk, 2% fat | 300 g (10.6 oz) | 150 | 9.9 | 14.4 | 5.9 |
Oil and nuts add the most calories per bite, which helps if you get full early, while rice, banana and oats add carbohydrate you can feel in training. Milk and oats are the two that bring protein along with the calories.
How to run it for a few weeks
Treat the 2,700 as a hypothesis. Weigh yourself under the same conditions a few mornings a week and look at the weekly average, not a single reading. Compare it with the 0.25% to 0.5% a week target, with your training and with how you feel. If the average is flat for two or three weeks, add 150 calories from the table above. If it rises faster than your target, take 150 away, since the review says advanced lifters should be more conservative. Day-to-day precision matters less than the weekly pattern, and a day that is 5% off is an ordinary day.
Two cautions. Your maintenance estimate is a starting point and can be off by a tenth, which is 250 calories at this level, more than the whole surplus. And weighing cooked and dry food against the wrong value can move a meal by hundreds of calories: 100 g of cooked white rice is 130 calories, while 100 g of dry oats is 389 (estimated). Our guide to counting macros raw or cooked explains how to keep one convention, and meal prep for the week shows how to cook these portions in batches.
When to ask a professional instead
This is general information, not medical advice. If you have diabetes, kidney disease or a food allergy, are pregnant or breastfeeding, are under 18, have or have had an eating disorder, or take medication that affects your appetite or blood sugar, ask a doctor or a registered dietitian for your numbers before you follow any of this. If a professional has given you calorie or macro targets, use theirs. Eating above maintenance on purpose can become an unhealthy habit for some people, so stop and talk to someone if counting or eating more than you want causes worry about food.
Doing this every week without the spreadsheet
This part is written by the team behind MacroRecipe, so read it with that in mind. The method above is easy to do once and tedious to repeat: the day needed 17 lines and a search to hit four targets, and a week of different days is more than 100. If you enjoy the arithmetic, a spreadsheet and a kitchen scale are enough, and USDA FoodData Central is where to look values up.
MacroRecipe does the matching step. It plans your week of menus around your macros and the goal you choose, from dishes you pick, with ingredient data from USDA and CIQUAL (ANSES). It sizes portions toward your estimated calorie and protein targets, and when you swap a dish the portions and the grocery list follow, with quantities added up across recipes. That is the swap test above, done for you: keep the three dishes you like and let the app fill in the rest.
Who it isn't for: MacroRecipe runs on iPhone only, not on Android. It has no barcode scanner, no food database to search and no complete daily food diary, though a photo scan of a meal eaten elsewhere comes with the subscription. You can preview your first menu for free, after which it is a paid subscription. If you would rather log everything you eat, see our MacroFactor alternatives guide.
How we calculated
Every food line is the portion in grams multiplied by its value per 100 g in USDA FoodData Central, SR Legacy, read from the April 2018 CSV downloaded from the USDA dataset page on 2026-11-02. Calories are USDA's own energy values, not recomputed. Carbohydrate is by difference, as USDA lists it. We used one matching food per item and did not mix brands.
- Equation. Mifflin-St Jeor times 1.45, rounded to the nearest 50 calories (estimated 2,508 to 2,500). The 1.45 factor is our choice.
- Targets. Protein 160 g (2.1 g per kg), fat at 25% of calories, carbs the rest at 4 calories per gram. The 200-calorie step is our illustrative choice, not a recommendation.
- Portions. The day was fitted from 17 foods in steps of 5 to 50 g, to be close to the four targets with protein at 160 g or more, then summed line by line. The fit is ours, so other days are possible.
- Swap test. Each food was scaled to the protein of 100 g of roasted chicken (31.02 g), rounded to 5 g, and the day recomputed from the USDA values.
- Not tested. We did not measure anyone's energy use or results, and the day was not cooked and weighed in a kitchen. This is a recount of a composed menu, not a study.
| Food (USDA name, shortened) | FDC ID | kcal | Protein (g) | Carbs (g) | Fat (g) |
|---|---|---|---|---|---|
| Oats | 169705 | 389 | 16.89 | 66.27 | 6.90 |
| Milk, reduced fat, fluid, 2% milkfat, with added vitamin A and vitamin D | 171267 | 50 | 3.30 | 4.80 | 1.98 |
| Bananas, raw | 173944 | 89 | 1.09 | 22.84 | 0.33 |
| Egg, whole, raw, fresh | 171287 | 143 | 12.56 | 0.72 | 9.51 |
| Chicken, broilers or fryers, breast, meat only, cooked, roasted | 171477 | 165 | 31.02 | 0.00 | 3.57 |
| Rice, white, long-grain, regular, enriched, cooked | 168878 | 130 | 2.69 | 28.17 | 0.28 |
| Beans, black, mature seeds, cooked, boiled, without salt | 173735 | 132 | 8.86 | 23.71 | 0.54 |
| Avocados, raw, all commercial varieties | 171705 | 160 | 2.00 | 8.53 | 14.66 |
| Lettuce, cos or romaine, raw | 169247 | 17 | 1.23 | 3.29 | 0.30 |
| Yogurt, Greek, plain, nonfat | 170894 | 59 | 10.19 | 3.60 | 0.39 |
| Nuts, almonds | 170567 | 579 | 21.15 | 21.55 | 49.93 |
| Apples, raw, with skin | 171688 | 52 | 0.26 | 13.81 | 0.17 |
| Beef, ground, 90% lean meat / 10% fat, patty, cooked, pan-broiled | 171793 | 204 | 25.21 | 0.00 | 10.68 |
| Pasta, cooked, enriched, without added salt | 169737 | 158 | 5.80 | 30.86 | 0.93 |
| Broccoli, cooked, boiled, drained, without salt | 169967 | 35 | 2.38 | 7.18 | 0.41 |
| Oil, olive, salad or cooking | 171413 | 884 | 0.00 | 0.00 | 100.00 |
| Cheese, mozzarella, part skim milk | 170847 | 254 | 24.26 | 2.77 | 15.92 |
| Fish, tuna, light, canned in water, drained solids | 173709 | 86 | 19.44 | 0.00 | 0.96 |
| Cheese, cottage, lowfat, 2% milkfat | 172182 | 81 | 10.45 | 4.76 | 2.27 |
| Fish, salmon, Atlantic, farmed, cooked, dry heat | 175168 | 206 | 22.10 | 0.00 | 12.35 |
| Peanut butter, smooth style, with salt | 174266 | 598 | 22.21 | 22.31 | 51.36 |
| Bread, whole-wheat, commercially prepared | 172688 | 252 | 12.45 | 42.71 | 3.50 |
Frequently asked questions
How many calories should I eat to lean bulk?
Your estimated maintenance plus a modest surplus. A review of off-season nutrition suggests about 10% to 20% above maintenance for novice and intermediate lifters, and less for advanced ones (estimated). For a 2,500-calorie maintenance, that is roughly 2,750 to 3,000, or 2,700 for a cautious 8%.
Is 2,700 calories enough to lean bulk?
It depends on your maintenance. Our example man has an estimated maintenance of 2,500, so 2,700 is an 8% surplus. If your maintenance is 2,700, it is maintenance, and at 2,900 it is below. Estimate yours first, for example with the macro calculator.
How much protein do I need on a lean bulk?
About 1.6 to 2.2 g per kg of body weight a day. One meta-analysis found no further gain in fat-free mass above about 1.6 g per kg. For a 75 kg man that is 120 to 165 g, and 160 g is 2.1 g per kg (estimated).
Is 160 g of protein too much?
Not for a lifter of about 73 to 100 kg, where 160 g is 1.6 to 2.2 g per kg. For someone at 60 kg it is 2.7 g per kg, above the ranges quoted here (estimated). Divide your protein grams by your weight in kilograms first.
How fast should I gain on a lean bulk?
A review suggests about 0.25% to 0.5% of body weight a week for novice and intermediate lifters, and less for advanced ones. For a 75 kg man that is 0.19 to 0.38 kg a week. It is a target to watch, not a promise of what will happen.
How big should the calorie surplus be?
Nobody knows exactly. A 2019 review says the surplus needed for muscle growth is unknown and that common estimates have not been validated in people doing resistance training. Start small, track a weekly weight average, and adjust by about 150 calories.
Can I swap foods in a lean bulk meal plan?
Yes, but check calories as well as protein. In our test, six foods with the same 31 g of protein changed the day by up to 212 calories, from 2,655 to 2,867 (estimated). Tuna and yogurt keep it lower; beef, salmon and eggs raise it.
Can an app turn a lean bulk target into meals?
Yes. MacroRecipe plans a week of menus around your macros and your goal, sizing portions toward your estimated calorie and protein targets, with one grocery list. It runs on iPhone only, and you can preview your first menu for free before the paid subscription.
Free preview of your first menu · on iPhone
Sources
- Iraki J, Fitschen P, Espinar S, Helms E. Nutrition recommendations for bodybuilders in the off-season: a narrative review. Sports (Basel) 2019;7(7):154 (PubMed), accessed
- Slater GJ et al. Is an energy surplus required to maximize skeletal muscle hypertrophy associated with resistance training. Front Nutr 2019;6:131 (PubMed), accessed
- Morton RW et al. A systematic review, meta-analysis and meta-regression of the effect of protein supplementation on resistance training-induced gains in muscle mass and strength in healthy adults. Br J Sports Med 2018;52(6):376-384 (PubMed), accessed
- Jäger R et al. International Society of Sports Nutrition Position Stand: protein and exercise. J Int Soc Sports Nutr 2017;14:20 (PubMed), accessed
- Mifflin MD, St Jeor ST, Hill LA, Scott BJ, Daugherty SA, Koh YO. A new predictive equation for resting energy expenditure in healthy individuals. Am J Clin Nutr 1990;51(2):241-247 (PubMed), accessed
- USDA FoodData Central, SR Legacy (values per 100 g by FDC ID), accessed
- USDA FoodData Central, dataset downloads (SR Legacy, April 2018), accessed
- MacroRecipe on the US App Store, accessed