How to Make a Weekly Meal Plan From Your Calorie and Protein Goals
A weekly plan is two numbers, repeated with food you will actually cook. Start with a daily calorie target from Mifflin-St Jeor plus activity, and a protein target from body weight — ISSN’s 1.4–2.0 g/kg for people who train, or the deficit/surplus band you already chose. Then pick three or four dinners, a default breakfast, and a lunch that is often leftovers. The Dietary Guidelines pattern — protein foods, grains, fruit, vegetables, dairy or alternatives, oils — is the grocery skeleton. You are not designing 21 unique plates tonight. You are making a week that can survive a Wednesday.
Get the two numbers on paper
Example we will keep using:
- Calories: 2,000 kcal
- Protein: 140 g
- Meals you actually eat: 3 plus a snack
That is about 45 g protein per meal if the snack is 5–15 g, or 35 g × 4 if you like a proper snack. See protein per meal. ISSN’s nutrient-timing stand prefers even feedings about every three to four hours. Timing is a refinement. The daily gram target is the job.
Macros for carbs and fat can stay loose. Fill remaining calories after protein (140 g × 4 = 560 kcal) with 1,440 kcal of carbohydrate and fat. The macro calculator will split that if you want percentages. The plan does not fail if Tuesday is a bit higher carb because you ran.
Confirm protein first in the protein calculator. Confirm the calorie sketch with Mifflin-St Jeor plus an activity line that sounds like your real week, including walks. If the 2,000 kcal is a cut, read fat-loss calories so you are not planning 2,000 on top of a 1,700 target.
Educational floors. Protealpes will not recommend planning below 1,500 kcal for men or 1,200 kcal for women. Those floors are not a medical RDA. They exist so a “stricter week” does not become an unsafe toy deficit. If Mifflin minus 20% lands under the floor, the cut is too large for a website plan. Raise calories, or get individual help — do not invent a 1,000 kcal menu.
Hall’s 2011 Lancet paper is why you plan a week, not a perfect day: weight change from an energy gap is slow, and expenditure adapts. A 200 kcal swing on Friday is noise. A daily 300 kcal oil miss is a different week than the spreadsheet.
Key takeaway: Write calories and protein first. Split protein across the meals you really eat. Stay above 1,500 / 1,200 kcal educational floors. The week average matters more than Tuesday’s exact total.
Worked example: 2,000 kcal, 140 g protein, seven days
Breakfast template (every day) — ~400 kcal, 35 g protein
- 200 g 0% Greek yogurt (~20 g protein, ~110 kcal)
- 40 g oats (~5 g, ~150 kcal)
- 1 banana (~1 g, ~105 kcal)
- Coffee
Lunch template — leftover or assembled, ~550 kcal, 40 g protein
- 150 g cooked chicken or 180 g tofu
- 200 g cooked rice or potatoes
- Vegetables, 1 tsp oil
Dinner — rotate three pots, ~700 kcal, 45 g protein
- Turkey chili (save the per-serving math from recipe macros) plus a yogurt side
- Sheet-pan salmon, potatoes, broccoli
- Tofu stir-fry with extra-firm tofu and a measured tablespoon of oil
Snack — ~200–350 kcal, 20 g protein
- Cottage cheese and fruit, or leftover chili
Day total if you hit the templates: ~1,850–2,100 kcal and ~140 g. That band is the plan. Not 2,000.0.
Use FoodData Central or a saved recipe to fix a template that looked good and landed at 22 g of protein. Swap in 50 g more cooked meat or a yogurt cup, not a second dessert. MyPlate protein foods are the add-ons that make a leftover lunch count.
Weekly structure
| Day | Lunch | Dinner |
|---|---|---|
| Mon | Shop-day salad + canned fish | Chili (cook a double pot) |
| Tue | Chili leftover | Salmon tray |
| Wed | Salmon leftover | Tofu stir-fry |
| Thu | Tofu leftover | Chili |
| Fri | Flexible / restaurant band | Flexible |
| Sat | Stir-fry leftover or eggs | Salmon or eat-out leftover |
| Sun | Cook-prep extra protein | Next week’s chili |
Friday is open on purpose. People who plan seven perfect dinners abandon the document when a friend texts. Leave 600–900 kcal and 30–40 g protein unassigned that night. Estimate the restaurant; do not orphan the rest of the week.
Batch the protein on Sunday: cook extra chicken or tofu so leftover repairs are a reach, not a takeout app.
Draft a first table in the meal plan generator if a blank week is freezing you. Then delete every dish you will not cook. A generated quinoa bowl is not a plan.
Key takeaway: One breakfast, leftover lunches, three dinners, one flexible night. Aim for a 1,850–2,100 kcal band and 140 g protein, not a perfect 2,000.0.
Raw, cooked, oil, and the serving-count problem inside a week
The week dies in three kitchen details.
Raw versus cooked. Sunday’s grocery list is raw chicken and dry rice. The lunch template is cooked grams. If you buy 1.2 kg raw chicken for “150 g cooked lunches,” you need a yield in mind — cooked breast is lighter than the pack. Convert once, then shop the pack size. Do not put 150 g raw in the container and call it the cooked template.
Hidden oils. The plan’s 1 tsp at lunch and 1 tbsp at dinner is 160 kcal. Two uncounted dinner glugs, six nights, is a thousand extra kilocalories you will not see in MyFitnessPal if you log the template instead of the pan. Measure oil at the stove. Leftover oil in the roasting tin is a teaspoon for the batch, not a vanished dinner.
“Serves 4” lies. Chili for “eight” that you pack into five containers is five servings. Label lids from your container count. If Thursday’s leftover is a third of what remains, that is not automatically one serving.
These are the same rules as a single pot, applied seven times. Do the homemade recipe math on Sunday for each repeating dinner. The rest of the week is copying.
Key takeaway: Shop raw, log cooked. Measure the week’s oil. Pack the number of containers you will eat, not the blog’s serving count.
Grocery list from the templates
Translate the week into purchase units, not “eat healthy”:
- Yogurt: 200 g × 7 = 1.4 kg
- Oats: 40 g × 7 ≈ 300 g
- Bananas: 7
- Chicken or tofu: lunches + extra (~1.2–1.5 kg raw chicken or the tofu equivalent)
- Chili ingredients for 6–8 servings (your container count)
- Salmon for two dinners
- Frozen vegetables, one large bag
- Eggs, cottage cheese, one starch you will actually cook
- Olive oil you will measure
- One backup protein (canned fish or extra tofu) for leftover repair
The grocery list generator is for this conversion. Paste the templates. Ask for grams and pack sizes, not vibes.
Buy the Dietary Guidelines pattern on purpose: fruit and vegetables every week, not only protein and rice. A 2,000 kcal plan that is only chicken and oats falls apart by Thursday because you hate it.
If you cook for a partner or kids, buy their extras (bread, sauce, a second starch) as side items. Your tracked bowl stays the template. Their second ladle is not your “serves 4” crisis if you did not eat it.
Sunday cook session, about 90 minutes
This is the part that makes Monday through Thursday automatic. You are not cooking seven dinners. You are building leftovers.
- 0–10 min. Chili meat and onion in a measured 2 tbsp oil. Rice or potatoes on for tomorrow’s lunches. Weigh dry starch once.
- 10–40 min. Chili simmers. Sheet-pan salmon and broccoli at 200 °C / 400 °F with 1 tbsp oil for the tray, not a free pour. Season like you will still want this on Wednesday.
- 40–60 min. Portion chili into the number of containers you will eat — five, not “serves 8.” Weigh one container if the ladles look uneven. Label lids: kcal and protein from the recipe nutrition pass.
- 60–80 min. Pack lunches: 150 g cooked chicken or 180 g tofu (weigh cooked), 200 g cooked rice, vegetables, 1 tsp oil. That is the lunch template, not a raw pack dumped into a box.
- 80–90 min. Backup protein in the door: eggs, yogurt, canned fish. Photo one lunch next to your hand if you will track midweek without a scale.
Raw yield check, so you do not run out on Wednesday: 150 g cooked chicken breast is often about 190–200 g raw, depending on the cut and how dry you cook it. Five lunches at 150 g cooked is roughly 1 kg raw plus a little for trim — not 750 g. Buy the extra 300 g. Tofu is easier: the package weight is closer to what you eat.
If 90 minutes is too much this Sunday, cook only the chili and buy a rotisserie bird. The plan survives a smaller prep. It does not survive zero prep and seven unique recipes.
Key takeaway: Convert templates into pack sizes. Include a backup protein and measured oil. Extra food for other people stays off your bowl math.
A second sketch: 2,400 kcal and 160 g
Not every week is 2,000 / 140. An 85–90 kg person who trains and sits near Mifflin-St Jeor plus moderate activity often lands closer to 2,400 kcal and 160 g protein (about 1.8 g/kg at 90 kg). Same skeleton, larger plates:
- Breakfast: 250 g yogurt + 3 eggs + fruit ≈ 45 g, ~550 kcal
- Lunch: 180 g cooked chicken + 250 g cooked rice + veg + 1 tsp oil ≈ 50 g, ~700 kcal
- Dinner: same three pots, scoop 20–30% more starch and 30 g more cooked protein ≈ 50 g, ~850 kcal
- Snack: 200 g cottage cheese + fruit ≈ 25 g, ~300 kcal
The grocery list scales: more raw chicken, a second yogurt tub, an extra rice bag. The grocery list generator will do that multiplication if you paste the new template. Do not copy an 80 kg 140 g menu onto a 90 kg week and call the protein “close enough.”
A smaller week (say 1,800 kcal / 120 g) shrinks starch and oil first, not protein. Breakfast can drop the banana or the oats, not the yogurt. Lunch rice can be 150 g cooked. Dinner oil stays measured. If 1,800 already feels tight, check that you are not under the 1,500 / 1,200 educational floors and that Mifflin was not set with an activity factor of “desk forever” while you walk 10,000 steps.
Hall’s 2011 caution still applies when you change the sketch: give the new week two honest weeks before you declare the calorie number wrong. Sodium, a hard training block, and a restaurant Friday will bounce the scale more than a 100 kcal template tweak.
Key takeaway: Scale the same three-dinner skeleton to 2,400 / 160 or 1,800 / 120 by changing starch, oil, and cooked protein grams — not by inventing a new cuisine.
Training days, rest days, and the restaurant slot
Training days can swap a larger starch into the same protein. Rest days can shrink the rice. Protein grams stay put. ISSN writes protein as a daily intake, not a workout-day bonus.
Do not drop rest-day calories to “earn” the weekend. A rest day at 1,100 kcal is a crash, not recovery, and it sits under educational floors. Keep the breakfast template. Shrink dinner starch by 100–150 g cooked if you want a small swing.
Friday’s restaurant band is part of the plan:
- Leave 600–900 kcal and 30–40 g protein unassigned
- Estimate the meal instead of skipping the log
- Do not punish Saturday breakfast
Hall’s energy-balance components paper is the reminder that mixed restaurant dishes hide fat. Budget the fat. See restaurant estimates for the booth method.
If Friday blows past 2,400 kcal, you still have Saturday and Sunday templates. The week can average 2,000. A revenge 1,200 kcal Saturday cannot, and it usually backfires.
Key takeaway: Same protein every day. Move starch with training. Leave Friday a band. Do not crash rest days under 1,500 / 1,200 kcal.
Before and after: three weekly plans
| Plan | Before | After |
|---|---|---|
| “21 new recipes” | Seven unique dinners, abandoned by Thursday, takeout + leftover chaos | Three pots, leftover lunches, Friday open. Hits ~2,000 / 140 most days |
| Logged templates, cooked with glugs | MyFitnessPal meal plan at 2,000; two unmeasured tbsp oil most nights | Same food, measured oil. Real week ~2,000 instead of ~2,300 |
| Cut week copied from social media | 1,100 kcal menu, 90 g protein, gone by Wednesday | 2,000 / 140 or a moderate cut above educational floors, still lifting |
Cronometer users who build foods from FoodData Central rows have an easier Sunday. MacroFactor users can treat the week as the unit — good — if the saved meals include oil. Apple Health and Fitbit will show a pretty calorie budget either way. The scale follows the after column.
The before column is why people say meal plans “do not work.” The plan was theater. The after column is a grocery list and a ladle.
Key takeaway: Repeating dinners plus measured oil beats a 21-recipe document. Watch apps will display any budget; only honest templates move the week.
Rules that keep the week intact
- Repeat breakfast. Decision fatigue is a calorie leak.
- Cook dinner for two nights. If it does not reheat, it is a weekend dish.
- Measure oil at the stove. The plan dies in the uncounted tablespoon.
- Put fruit and vegetables on the list every time. The Guidelines pattern is how 2,000 kcal stays edible.
- Recalculate when body weight or the goal changes a lot. Mifflin-St Jeor is not a forever number.
- Log the plate, not the plan. If you ate toast, log toast.
- Keep a repair kit. Eggs, yogurt, canned fish. Leftover protein finishes save Thursday.
- One flexible meal. The plan should absorb one social dinner.
If you use MyFitnessPal, save the three dinners as recipes with your serving count. If you use Cronometer, save meals from cooked rows. If you use MacroFactor, let the weekly average work after the templates are honest.
Key takeaway: Repeat breakfast, cook for two nights, measure oil, shop plants, and log what you ate. Flexibility is a slot, not a collapse.
Common mistakes
Planning 21 new recipes. You will order pizza on Thursday.
Matching calories and forgetting protein, or the reverse. Both numbers have to live on the same plate.
Buying ingredients for a diet you do not like. Cottage cheese is optional. The gram target is not.
Leaving no flexible meal. The plan should absorb one social dinner.
Using the generator output without checking oil and serving count.
Meal-prepping five dry chicken boxes and calling it a personality. Season food. Freeze what you will hate by Wednesday.
Logging the plan instead of the plate.
Cutting rest days under educational floors to “make room” for Friday.
Shopping cooked-gram templates as raw pack weights and running out of chicken on Wednesday.
Treating “serves 4” as four work lunches when you packed three big tubs.
Key takeaway: Too much variety, skipped protein, unmeasured oil, and crash rest days are how a weekly plan becomes a document you ignore.
What to do tonight
- Confirm protein with the protein calculator and the carb/fat split with the macro calculator.
- Draft the week in the meal plan generator. Keep three dinners and a leftover lunch. Delete the rest.
- Turn that draft into a cart with the grocery list generator — grams, pack sizes, backup protein, measured oil.
Write the two numbers on a note in the kitchen: 2000 / 140. Every leftover, smoothie, and restaurant estimate has to answer to those, not to a new theme for each weekday. Tomorrow you shop. Wednesday you reheat. Friday you estimate. The week is the habit, not the spreadsheet.
Key takeaway: Set the two numbers, draft three dinners, convert to a grocery list, and leave Friday open. Copy the templates until the goal changes.
