Can ChatGPT make a meal plan? We checked the macros
Yes. ChatGPT will write a day of meals with gram portions in seconds, but check the math. In four plans ChatGPT 4.0 wrote in November 2024 for a published study, every daily total matched the calorie target exactly, yet its own lines added up to 80 to 270 calories less, and a USDA recount agrees (estimated).
By the MacroRecipe editorial team · Updated
We took the four complete one-day plans that ChatGPT 4.0 wrote in November 2024 for a peer-reviewed study in the journal Nutrients (Kaya Kaçar, Kaçar and Avery, 2025), printed word for word in the study's supplementary file, and recounted all 89 lines with USDA FoodData Central. Every meal subtotal was added correctly. Only the day's total was wrong, in all four plans, and always on the high side: the food on the page came to 4% to 18% fewer calories than requested (estimated).
We did not run a new chat for this article. You could not verify a chat we ran ourselves; these plans are published and dated, and anyone can redo the math with the table further down. ChatGPT has changed since November 2024 and may answer differently today, so read this as a guide to what to check, not as a verdict on the current version. This page is written by the MacroRecipe editorial team, which makes a meal-planning app.
What ChatGPT got right
Quite a lot. Asked for a healthy daily meal plan with portion sizes in grams, ChatGPT returned six eating occasions a day built from ordinary foods: Greek yogurt and fruit, eggs, turkey or chicken salads, salmon or cod with sweet potato, nuts and a square of dark chocolate. Each line came with a quantity and a calorie figure.
- Line by line, close. Across the 89 lines, ChatGPT's calorie figure and our USDA estimate differ by 21 calories at most. The biggest misses were a 40 g slice of whole-grain bread at 80 calories (101 estimated with USDA), 120 g of cod at 110 (126), two eggs at 140 (155) and 80 g of cooked quinoa at 110 (96).
- Meals added up. Each of the 24 meal and snack subtotals is the exact sum of its own lines.
- Closest of the three chatbots to the requested calories. In the same study, none of ChatGPT's ten plans was off by 20% or more, against five of ten for Gemini.
- Decent overall quality. All three chatbots averaged above 70 on the index of overall nutritional quality the researchers used (the DQI-I).
What went wrong: the total was the target
Each plan ends with a “Daily Totals” line. In all four, that line simply repeats the request: 1,400, 1,500, 1,700 or 1,800 calories. Add up ChatGPT's own lines and you get less every time.
| Plan requested | Total ChatGPT printed | ChatGPT's lines, added up | Our USDA recount | The study's recount | Gap to the request (our USDA recount) |
|---|---|---|---|---|---|
| 1,400 kcal, 35-year-old man | 1,400 | 1,130 | 1,153 | 1,168 | −18% |
| 1,500 kcal, 35-year-old woman | 1,500 | 1,420 | 1,443 | 1,408 | −4% |
| 1,700 kcal, 35-year-old woman | 1,700 | 1,525 | 1,548 | 1,542 | −9% |
| 1,800 kcal, 35-year-old man | 1,800 | 1,615 | 1,613 | 1,599 | −10% |
Our recount and the researchers' land within 3% of each other, and both sit next to ChatGPT's own lines, not next to its headline. The model did not forget a meal: it wrote the target where the sum should have been. A chatbot writes its answer word by word, and a total that matches the request reads naturally, whether or not anything was added up.
The shortfall holds across the study's full set: its supplementary file lists the researchers' recounted calories for all ten ChatGPT plans, and every one came in under the request, from less than 1% to 17% below (estimated by the researchers with USDA data). A second study, in Nutrition and Health, asked ChatGPT-4o and ChatGPT-4, in Turkish, for a five-day menu at 1,800 calories a day for a 20-year-old woman with obesity; both models' five-day menus also came in low in calories, with an unbalanced split of macronutrients and too little calcium compared with the Turkish dietary guidelines (Bayram, Çelik and Barcın Güzeldere, 2025).
Line by line: the 1,400-calorie plan
This is the plan with the widest gap. We reproduce it to show how to check a plan, not as a menu to follow. The foods, portions and calorie figures are ChatGPT's, as published; the last two columns are our estimates with USDA values. Meat and fish are read as cooked weights, since the dishes are grilled.
| Meal | Food and portion, as ChatGPT wrote it | ChatGPT's calories | USDA calories | USDA protein (g) |
|---|---|---|---|---|
| Breakfast | Greek yogurt (non-fat), 150 g | 90 | 89 | 15.3 |
| Breakfast | Strawberries, 50 g | 15 | 16 | 0.3 |
| Breakfast | Almonds, 10 g | 60 | 58 | 2.1 |
| Breakfast | Honey, 5 g | 15 | 15 | 0 |
| Mid-morning snack | Eggs, 2 large (100 g) | 140 | 155 | 12.6 |
| Lunch | Turkey breast (grilled, skinless), 100 g | 135 | 136 | 29.5 |
| Lunch | Mixed greens (lettuce, spinach), 80 g | 15 | 15 | 1.7 |
| Lunch | Cherry tomatoes, 50 g | 10 | 9 | 0.4 |
| Lunch | Cucumber, 50 g | 5 | 8 | 0.3 |
| Lunch | Red bell pepper, 30 g | 10 | 8 | 0.3 |
| Lunch | Avocado, 30 g | 50 | 48 | 0.6 |
| Lunch | Olive oil, 10 g | 90 | 88 | 0 |
| Afternoon snack | Apple, 100 g | 50 | 52 | 0.3 |
| Afternoon snack | Almond butter (natural), 10 g | 60 | 61 | 2.1 |
| Dinner | Cod fillet, 120 g | 110 | 126 | 27.4 |
| Dinner | Sweet potato (baked), 100 g | 85 | 90 | 2 |
| Dinner | Zucchini (steamed), 50 g | 10 | 8 | 0.6 |
| Dinner | Green beans (steamed), 50 g | 15 | 18 | 0.9 |
| Dinner | Olive oil, 5 g | 45 | 44 | 0 |
| Evening snack | Cottage cheese (low-fat), 100 g | 90 | 81 | 10.5 |
| Evening snack | Blueberries, 50 g | 30 | 29 | 0.4 |
| Whole day | Total printed by ChatGPT: 1,400 | 1,130 (sum of its lines) | 1,153 | 107.3 |
ChatGPT's own subtotals (180 calories for breakfast, 140 for the mid-morning snack, 315 for lunch, 110 for the afternoon snack, 265 for dinner and 120 for the evening snack) add up to 1,130 calories. The plan looks complete and uses ordinary foods; only the arithmetic at the bottom is off, by 270 calories, which is more than ChatGPT's own dinner subtotal (265). If you followed it to the letter, you would eat about 18% less than you asked for (estimated).
Protein was close; carbs were not
The macros printed at the bottom of each plan have the same problem. In the 1,400- and 1,500-calorie plans, the printed grams are the target multiplied by the announced percentages, rounded (40% of 1,500 calories is 150 g of carbs, at 4 calories a gram), not a sum of the foods.
| Plan | Protein printed | Protein recounted | Carbs printed | Carbs recounted | Fat printed | Fat recounted |
|---|---|---|---|---|---|---|
| 1,400 kcal | 105 | 107 | 140 | 81 | 47 | 48 |
| 1,500 kcal | 94 | 108 | 150 | 116 | 58 | 64 |
| 1,700 kcal | 107 | 114 | 170 | 134 | 63 | 67 |
| 1,800 kcal | 110 | 115 | 170 | 147 | 67 | 67 |
Protein came out 2 to 14 g higher than printed. Carbs were overstated by 23 to 59 g a day. In the recounted days, carbs supply 28% to 36% of calories, where ChatGPT announced 35% to 45%, and fat 37% to 40%, where it announced 30% to 35% (estimated).
The study saw the same weakness from another angle. Its quality index has a balance component that scores the split between protein, carbs and fat and between types of fat, out of 10: all ten ChatGPT plans scored zero on it.
A better ChatGPT meal plan prompt: make it show its work
The prompt the researchers used was short, and it was the same for every plan, apart from the sex and the calorie level:
Prepare a healthy daily meal plan for a female aged 35 with 1400 kcal, including portion sizes in grams
It asks for a result, not for the arithmetic. A prompt that asks for the working puts every number where you can see it. We have not tested whether it makes ChatGPT more accurate; it makes a wrong total easier to catch, and the values it gives are still its own estimates. Copy it and change the numbers:
“Make a one-day meal plan for one adult at about 1,800 calories with at least 120 g of protein, using foods from a US grocery store. Show it as a table with one row per food: the food, its weight in grams and whether that weight is raw, cooked or dry, then its calories, protein, carbs and fat. Add up each column from the rows themselves and show the sum. Don't round the total to my target: if it misses, say by how much and which portion you would change.”
Add what matters to you: foods you avoid or are allergic to, how many meals you eat, how long you can spend cooking and what is already in your fridge.
If you want a week, ask for one day at a time and check each one before moving on: a seven-day table is seven times as many lines to verify. Ask for the grocery list last, from the corrected tables.
The two-minute check before you cook
- Add the calorie column yourself. A phone calculator is enough. A total that matches your target to the calorie is a reason to look closer, not a reassurance: in all four plans above it did, and it was wrong.
- Look up the three biggest lines. Oil, nuts, meat or fish and grains carry most of the calories. Search them in USDA FoodData Central and compare the value per 100 g, the same USDA method we use in our macro-friendly meal prep guide.
- Ask whether each weight is raw, cooked or dry. According to USDA, 100 g of long-grain brown rice is 123 calories cooked and 367 raw, and 100 g of chicken breast is 120 calories raw and 165 roasted (estimated). On one serving of rice, the difference can top 200 calories.
- Recount protein in grams, from the foods. A percentage multiplied by your target tells you what was intended, not what is on the plate.
- Weigh at least once. Portions in grams only help if you use a kitchen scale; eyeballed portions undo a careful table.
When to ask a professional instead
A chatbot plan 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, including GLP-1 drugs, ask a doctor or a registered dietitian before you follow any meal plan, whether it comes from a chatbot or from an app. The authors of the study reach a similar conclusion about chatbots:
they should enhance rather than replace the expertise of dietetic professionals.
How we recounted
We used the plans exactly as printed in the study's supplementary file: the 1,500- and 1,700-calorie plans for a 35-year-old woman, and the 1,400- and 1,800-calorie plans for a 35-year-old man. Of the other six, one appears only as the researchers' nutrient worksheet and five are not printed. Each weight was multiplied by its value per 100 g in USDA FoodData Central, the US Department of Agriculture's food composition database, using its SR Legacy data (April 2018 release, downloaded on October 19, 2026). Calories are the sum of USDA's energy values, not recomputed at 4, 4 and 9 calories per gram; carbs are carbohydrate by difference, fiber included. The choices we made:
- Cooked or raw. For meat and fish, ChatGPT never said. We read them as cooked, since the dishes are grilled or baked; quinoa, rice and sweet potato as cooked, as written; oats as dry. That reading gives ChatGPT the most calories: read as raw weights, the meat and fish would lower the totals by another 24 to 50 calories a day (estimated).
- Mixed greens, 80 g: 40 g of green leaf lettuce and 40 g of raw spinach.
- Low-fat cottage cheese: 2% milkfat, at 81 calories per 100 g. With 1% (72 calories), each plan loses 9 more.
- Almond milk, 150 ml: counted as 150 g.
- Nothing added or removed. The “sautéed” spinach gets no oil, because the plan lists none.
| Food (USDA name, shortened) | FDC ID | kcal | Protein (g) | Carbs (g) | Fat (g) |
|---|---|---|---|---|---|
| Bread, whole-wheat, commercially prepared | 172688 | 252 | 12.45 | 42.71 | 3.5 |
| Avocados, raw | 171705 | 160 | 2 | 8.53 | 14.66 |
| Egg, whole, cooked, hard-boiled | 173424 | 155 | 12.58 | 1.12 | 10.61 |
| Spinach, cooked, boiled, drained | 168463 | 23 | 2.97 | 3.75 | 0.26 |
| Spinach, raw | 168462 | 23 | 2.86 | 3.63 | 0.39 |
| Lettuce, green leaf, raw | 169249 | 15 | 1.36 | 2.87 | 0.15 |
| Yogurt, Greek, plain, nonfat | 170894 | 59 | 10.19 | 3.6 | 0.39 |
| Blueberries, raw | 171711 | 57 | 0.74 | 14.49 | 0.33 |
| Chia seeds, dried | 170554 | 486 | 16.54 | 42.12 | 30.74 |
| Chicken breast, meat only, roasted | 171477 | 165 | 31.02 | 0 | 3.57 |
| Chicken breast, meat only, raw | 171077 | 120 | 22.5 | 0 | 2.62 |
| Quinoa, cooked | 168917 | 120 | 4.4 | 21.3 | 1.92 |
| Tomatoes, red, ripe, raw | 170457 | 18 | 0.88 | 3.89 | 0.2 |
| Cucumber, with peel, raw | 168409 | 15 | 0.65 | 3.63 | 0.11 |
| Peppers, sweet, red, raw | 170108 | 26 | 0.99 | 6.03 | 0.3 |
| Oil, olive | 171413 | 884 | 0 | 0 | 100 |
| Apples, raw, with skin | 171688 | 52 | 0.26 | 13.81 | 0.17 |
| Almonds | 170567 | 579 | 21.15 | 21.55 | 49.93 |
| Salmon, Atlantic, farmed, cooked, dry heat | 175168 | 206 | 22.1 | 0 | 12.35 |
| Sweet potato, baked in skin | 168483 | 90 | 2.01 | 20.71 | 0.15 |
| Broccoli, cooked, boiled, drained | 169967 | 35 | 2.38 | 7.18 | 0.41 |
| Cottage cheese, lowfat, 2% milkfat | 172182 | 81 | 10.45 | 4.76 | 2.27 |
| Chocolate, dark, 70–85% cacao solids | 170273 | 598 | 7.79 | 45.9 | 42.63 |
| Turkey breast (retail parts), meat only, roasted | 174516 | 136 | 29.51 | 0 | 1.97 |
| Peanut butter, smooth, without salt | 172470 | 598 | 22.21 | 22.31 | 51.36 |
| Asparagus, cooked, boiled, drained | 168390 | 22 | 2.4 | 4.11 | 0.22 |
| Strawberries, raw | 167762 | 32 | 0.67 | 7.68 | 0.3 |
| Raspberries, raw | 167755 | 52 | 1.2 | 11.94 | 0.65 |
| Honey | 169640 | 304 | 0.3 | 82.4 | 0 |
| Cod, Atlantic, cooked, dry heat | 171956 | 105 | 22.83 | 0 | 0.86 |
| Zucchini, with skin, cooked, boiled, drained | 169292 | 15 | 1.14 | 2.69 | 0.36 |
| Green beans, cooked, boiled, drained | 169141 | 35 | 1.89 | 7.88 | 0.28 |
| Almond butter, plain, without salt | 168588 | 614 | 20.96 | 18.82 | 55.5 |
| Oats, regular and quick, dry | 173904 | 379 | 13.15 | 67.7 | 6.52 |
| Almond milk, unsweetened, shelf stable | 174832 | 15 | 0.4 | 1.31 | 0.96 |
| Walnuts, English | 170187 | 654 | 15.23 | 13.71 | 65.21 |
| Rice, brown, long-grain, cooked | 169704 | 123 | 2.74 | 25.58 | 0.97 |
| Rice, brown, long-grain, raw | 169703 | 367 | 7.54 | 76.25 | 3.2 |
ChatGPT or a meal-planning app?
This part is written by the team behind MacroRecipe, so read it with that in mind. ChatGPT is a good fit when you want ideas fast: a day built around what is already in your fridge, a cuisine you have never cooked, a vegetarian swap for one meal. It costs nothing to try and it answers any request in plain English. In those November 2024 plans, its weak spot was the sum.
An app is the better fit when you want the sum done for you, week after week. MacroRecipe 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). Each day's estimated calories and macros are added up from the quantity of every ingredient, portions are adjusted toward your estimated calorie and protein targets, and when a day falls short of them the app says so instead of printing the target as the total. The grocery list comes from the same quantities.
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, then there is a 3-day trial if you are eligible, after which it is a paid subscription.
If you are comparing planners, our guide to Eat This Much alternatives looks at apps that build meal plans from calorie and macro targets. Our macro-friendly meal prep applies the same USDA method to five dishes you can cook on a Sunday, and if you would rather track what you eat, start with our MacroFactor alternatives guide.
Frequently asked questions
Can ChatGPT make a meal plan with macros?
Yes. Ask for calories, protein, carbs and fat and it lists them per food and per day. Check the totals, though: in four ChatGPT 4.0 plans from a 2025 study, each daily total repeated the calorie target while the food came to 4% to 18% less, and carbs were overstated by 23 to 59 g a day (estimated, USDA).
How accurate is ChatGPT at counting calories?
Food by food, it was close: in four ChatGPT 4.0 plans from a 2025 Nutrients study, each calorie figure was within 21 calories of our USDA estimate. The sum was the weak point. Every daily total repeated the requested target, though its own lines added up to 80 to 270 calories less (estimated).
What is the best prompt for a ChatGPT meal plan?
Ask for the working, not just the result: one row per food with its weight in grams and whether it is raw, cooked or dry, then calories, protein, carbs and fat, with each column added up from the rows. Tell it not to round the total to your target, then recount the calorie column yourself.
Can ChatGPT make a weekly meal plan and grocery list?
Yes, it can write several days and a shopping list from them. The longer the plan, the more lines there are to check: in four ChatGPT plans from a 2025 Nutrients study, every daily total looked right without having been added up. Check one day at a time, then ask for the grocery list from the corrected days.
Is it safe to follow a ChatGPT meal plan?
A chatbot plan is general information, not medical advice. If you have diabetes, kidney disease or a food allergy, are pregnant or breastfeeding, are under 18, have had an eating disorder, or take medication that affects appetite or blood sugar, ask a doctor or a registered dietitian first, whichever tool made the plan.
Why would ChatGPT print a total its own numbers don't support?
A chatbot writes its answer word by word from patterns and does not necessarily calculate. A daily total equal to the request reads naturally, and that is what ChatGPT 4.0 wrote in all four plans from a 2025 Nutrients study that we recounted. Asking it to add each column from the rows makes a wrong sum easier to spot.
Is ChatGPT better than Gemini or Copilot for meal plans?
In one 2025 study of 30 plans written in November 2024 at 1,400 to 1,800 calories, ChatGPT came closest to the requested calories: none of its ten plans was off by 20% or more, against five of Gemini's ten. All three chatbots have changed since. Overall nutritional quality was similar (the researchers estimated nutrients with USDA data).
First menu free · 3-day trial · on iPhone
Sources
- Kaya Kaçar H, Kaçar ÖF, Avery A. Nutrients 2025;17(2):206, published January 7, 2025, with its supplementary file S1 (PubMed Central), accessed
- Bayram HM, Çelik ZM, Barcın Güzeldere HK. Can artificial intelligence (AI) chatbot tools be used effectively for nutritional management in obesity? Nutrition and Health 2025;31(4):1825-1834 (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