Can ChatGPT Count Calories? What the Research Shows
This article is for educational purposes only and is not medical advice. Talk with a qualified healthcare professional before making major nutrition, weight loss, or medication-related changes.
ChatGPT can estimate calories from a typed description or a photo, but in published tests its calorie values landed within 10% of the reference for fewer than half of the foods, and the main source of error was portion size, not food identification. It is a reasonable rough estimate for a meal you describe with amounts. It is not a food log, and it is not a measurement.
This guide is for someone who has been pasting meals into ChatGPT, or is thinking about it, and wants to know how far to trust the number. It covers what the studies found, why the same sentence can give very different totals, how to write a description that reduces the error, and when a dedicated food log is the better tool. It does not set a calorie target or decide whether any method is accurate enough for a medical purpose.
Key Takeaways
- Food names are the easy part. In a 2025 test of 114 meal photos, ChatGPT-4 identified the foods with 93% precision, but it underestimated the meal weight in 76% of photos.
- Under half within 10%. Across 222 foods, ChatGPT-3.5 and ChatGPT-4 gave energy within 10% of a nutritionist reference for 44% and 46% of items.
- Amounts cut the error. With ChatGPT-5, adding an ingredient list with amounts to a photo cut the average calorie error from 123 to 53 kcal per dish in one 195-dish study.
- Grams beat "a cup". In the NutriBench benchmark of 11,857 meal descriptions, meals described in grams produced lower errors than the same meals described in household servings.
- A chat is not a log. The estimate is one step. A daily target, a running total, and saved meals are structure you have to build and maintain yourself in a chat.
What the Studies Found When ChatGPT Estimated Calories
Peer-reviewed tests agree on the shape of the answer: ChatGPT is good at naming foods and poor at judging how much of them is on the plate, so its calorie estimate is only as good as the portion information it is given. The table summarizes five tests that used different inputs. Model versions change, so treat each result as a snapshot of the version and date tested.
| Test | Input | Result | Limit |
|---|---|---|---|
| Hoang et al., 2023, 222 foods | Typed food names in English and Traditional Chinese | Energy within ±10% of the nutritionist reference for 44.1% of items (ChatGPT-3.5) and 46.4% (ChatGPT-4). Both versions overestimated protein. | Single foods, not whole meals. The authors note the chatbot could not give accurate household units. |
| Haman et al., 2024 | Typed foods, compared with USDA data | 97% of energy values fell within 40% of the USDA figure. When asked for a daily meal plan under a calorie limit, its meal calorie figures stayed within 30% of USDA values. | A 40% tolerance is wide. A 2,000-calorie day could be off by hundreds of calories and still count. |
| NutriBench, 11,857 meal descriptions | Typed meal descriptions from dietary records; carbohydrate only | GPT-4o with step-by-step prompting put carbohydrate within 7.5 g of the record for 66.82% of meals, with a mean absolute error of 8.61 g. | Measures carbohydrate, not calories. Error rose with more food items and with household servings instead of grams. |
| O'Hara et al., 2025, 114 meal photos | Photos of survey meals, ChatGPT-4 | Foods identified with 93.0% precision. Meal weight underestimated for 87 of 114 photos; medium and large meals agreed poorly with actual weights. | Median energy was close overall (525 vs 524.5 kcal), but agreement with seven dietitians on energy was only poor to moderate. |
| Rodríguez-Jiménez et al., 2025, 195 dishes | ChatGPT-5 with a photo, then with added context | Mean calorie error fell from 123 kcal (photo only) to 92 kcal (photo plus fat, sweetener, dairy, and meat details) to 53 kcal (photo plus ingredient amounts). | Ingredient amounts without the photo scored about 67 kcal, so the picture still helped. Reference values came from recipes and weighed meals. |
Two patterns matter for everyday use. First, the better results came from inputs that contained amounts: grams instead of cups in NutriBench, and ingredient lists with fat and dairy details in the ChatGPT-5 study. Second, the errors are not random noise that cancels out.
In the 2025 Nutrients evaluation of ChatGPT on meal photographs, ChatGPT-4 underestimated meal weight for 76.3% of photographs. In the 2023 JAMA Network Open study of 222 foods, both ChatGPT versions overestimated protein. A consistent lean in one direction will not average away over a week.
Why the Same Description Can Give Different Calorie Totals
A short description such as "a chicken and rice bowl" does not contain enough information for anyone, human or model, to produce one correct calorie number. The words are the same whether the bowl holds 100 g of chicken or 170 g, and whether the rice was cooked with oil or without. The model has to pick a plausible portion, and that choice moves the total more than any lookup error.
The table shows three honest readings of that sentence, calculated from USDA FoodData Central records for roasted chicken breast, cooked white rice, and olive oil. All weights are cooked edible weights. These are illustrative portions, not a recommendation for how much to eat.
| Reading | Portions | Calories | Protein |
|---|---|---|---|
| Small plate | 100 g chicken, 150 g rice, no oil | About 360 | 35.1 g |
| Household measures | 140 g chicken, 158 g rice, 1 teaspoon olive oil | About 476 | 47.7 g |
| Large bowl | 170 g chicken, 250 g rice, 1 tablespoon olive oil | About 725 | 59.5 g |
The spread between the small plate and the large bowl is about 365 calories for one meal, before any sauce. The middle row uses the household measures from the USDA records themselves: one cup of chopped chicken is 140 g, one cup of cooked rice is 158 g, and one teaspoon of oil is 4.5 g.
If you write "one cup of rice", the model still has to guess whether your cup was packed, and the NutriBench benchmark found that descriptions with natural servings like "a cup of rice" produced higher errors than descriptions in grams.
This is the same reason weighing calorie-dense foods helps in any method. If you do not own a scale, our guide to tracking calories without weighing food explains which portions to measure and which to estimate.
How to Get a Better Calorie Estimate From ChatGPT
Give the model the information the studies showed it lacks: amounts, cooking fat, and specific products. Then check one item against a label or database before you trust the whole meal. The steps below apply equally to a chatbot and to a calorie tracking app that accepts a typed description.
- Write amounts, preferably in grams. "150 g cooked rice" beats "a cup of rice", which beats "some rice". Say whether weights are raw or cooked. Our raw-to-cooked weight converter helps when you weighed before cooking.
- Name the fat. Oil, butter, dressing, and cheese are invisible in a short description and in most photos. One tablespoon of olive oil is about 119 calories in the USDA record. In the ChatGPT-5 study, fat type and amount were among the details that cut the error by a quarter on their own.
- Name the product or restaurant. A branded yogurt or a named restaurant dish gives the model something specific to match. If a label or published menu nutrition exists, use that number directly; a model's recollection of it is a weaker source.
- Ask for a per-item breakdown with the assumed weights. A single total hides the guesses. A list shows you which portion the model assumed, so you can correct the one that is wrong.
- Check one item. Compare the chicken or the rice against the package or a food record. If the per-100-g value is right, the remaining error is portion, and you can fix that yourself.
- Reuse what you verified. For meals you eat often, keep the corrected version and stop re-estimating it. Repeated meals are where a saved record is worth more than a fresh guess.
A description that gives the model enough to work with
"Lunch: 140 g roasted chicken breast, 160 g cooked white rice, 80 g steamed broccoli, 1 teaspoon olive oil. List each item with the weight you used, its calories and protein, then the total."
The weights are the point, not the wording. A description with amounts can be used in ChatGPT, in a typed-entry tracking app, or in a notebook with a food database.
When a Chat Estimate Is Enough, and When It Is Not
A rough estimate is useful when a modest error does not change your decision. It is a problem when one hidden ingredient could erase a small daily deficit, or when you need the record later. Use the table to decide which situation you are in.
| Situation | What to do | Why |
|---|---|---|
| One-off question about a simple food | A chat estimate is fine | Naming the food is the part these tests handled well; the error comes from portions. |
| Packaged food with a label or barcode | Use the label or scan the barcode | The package is a stronger source than any estimate of it. |
| Mixed, sauced, or restaurant meal | Describe amounts and fats, then treat the result as a range | Unlisted fat and portion size were the inputs that most changed the error in the photo studies. |
| Tracking every day against a target | Use a food log that keeps the target, totals, and saved meals | In a chat, the target, the running total, and the history are yours to maintain. |
| A meal you eat several times a week | Verify it once, save it, reuse it | Re-estimating a known meal adds error without adding information. |
For restaurant meals specifically, published menu nutrition is usually the stronger reference when it matches what you ordered. Our guide to tracking calories when eating out covers how to adjust it for substitutions.
What ChatGPT Does Not Do for Daily Tracking
The estimate is only one part of calorie counting. The parts that make tracking work over weeks are a daily target, a record of what you have logged so far, what is left, and a way to log a repeated meal without re-entering it. In a chat, you supply that structure yourself: the target, the day's running total, and the record you look back at. That is workable for a few days and tiring after a month.
The usefulness of ChatGPT here is the input method. Describing a meal in plain words is faster than searching a database item by item, and it handles homemade food that has no barcode.
The same input now exists inside dedicated trackers, where the description produces an itemized estimate you can edit, and the result lands in a log with targets and history. If you are choosing between apps, our calorie tracking app guides compare the main options. If you track by hand, our calorie counting guide for beginners covers the full method.
Who Should Be Careful With This?
None of these tools, including dedicated apps, is a substitute for professional nutrition care. If you need nutrient counts for a medical reason, if you are managing a condition that depends on precise intake, or if you have a history of disordered eating, work with a registered dietitian or your clinician on how to track and how precise it needs to be. A chatbot's confident number does not carry any responsibility for being right.
Frequently Asked Questions
Is ChatGPT more accurate from a photo or a description?
The most accurate input in the ChatGPT-5 study was a photo plus an ingredient list with amounts. The ingredient list alone did better than the photo alone, so if you can only give one, give the amounts. A photo adds information about what is visible but cannot show oil, dressing, or how deep a bowl is.
Can ChatGPT track my calories all day?
You can ask it to keep a running total inside one conversation, but you are responsible for restating the target, logging every item, and carrying the record forward. A food log does this by design and keeps the history, which is what lets you see a weekly trend.
Should I trust ChatGPT's macros?
Treat protein, carbohydrate, and fat as rougher than calories. In the 222-food study both versions overestimated protein, and the photo study found poor agreement for 10 of 16 nutrients. Check the protein source against a label or database if protein is the number you are managing.
Sources
Sources checked October 6, 2026. The chicken-and-rice readings are illustrations calculated from the USDA records below (cooked grams ÷ 100 × the per-100-g value, summed before rounding); they are not a measured meal or a portion recommendation. This article does not determine whether any method is accurate enough for a clinical purpose.
- Hoang YN, et al. Consistency and Accuracy of Artificial Intelligence for Providing Nutritional Information. JAMA Network Open (2023). 222 foods, ChatGPT-3.5 and ChatGPT-4, nutritionist reference.
- Haman M, et al. AI dietician: Unveiling the accuracy of ChatGPT's nutritional estimations. Nutrition (2024). Typed foods compared with USDA data; figures taken from the abstract.
- Hua A, et al. NutriBench: A Dataset for Evaluating Large Language Models on Nutrition Estimation from Meal Descriptions. ICLR 2025 (arXiv). Carbohydrate accuracy within 7.5 g; figures from the arXiv version read on the check date.
- O'Hara C, et al. An Evaluation of ChatGPT for Nutrient Content Estimation from Meal Photographs. Nutrients (2025). 114 meal photos, ChatGPT-4, seven dietitians.
- Rodríguez-Jiménez M, et al. Image-Based Dietary Energy and Macronutrients Estimation with ChatGPT-5: Cross-Source Evaluation Across Escalating Context Scenarios. Nutrients (2025). 195 dishes; mean absolute calorie error by scenario from its results tables.
- Chicken, broilers or fryers, breast, meat only, cooked, roasted, FDC 171477: 165 kcal and 31.02 g protein per 100 g; 1 cup chopped = 140 g.
- Rice, white, long-grain, regular, enriched, cooked, FDC 168878: 130 kcal and 2.69 g protein per 100 g; 1 cup = 158 g.
- Oil, olive, salad or cooking, FDC 171413: 884 kcal per 100 g; 1 teaspoon = 4.5 g, 1 tablespoon = 13.5 g.
- Kalo: Macro & Calorie Counter, App Store listing, version 6.8, read October 6, 2026, for the product description below.
Where Kalo Fits
Kalo is a calorie and macro tracking app for iOS and Android. Its App Store listing describes the input this article is about: describe a meal by voice or text, then review the foods, portions, calories, and macros before anything is added to your log.
The estimate is editable, so the portion corrections from the checklist above happen in the entry itself, and the result counts against your daily calorie and macro targets. Meals you eat often can be saved and added again from Recent, Favorites, and My Food, which is the reuse step from the checklist.

Kalo is free to download, and using the app requires a subscription; current terms are shown on the store purchase screen. Its estimates are estimates you can review, like any other method here, and this article does not claim a Kalo accuracy figure. The useful part of a typed description is yours to keep whichever tool you use: write the amounts.
Kalo publishes this guide and makes the app described in the last section. AI-assisted research and drafting received an editorial source check; no clinical review is claimed.
Related Articles
Why Don't Calories Match the Macros on a Food Label?
Rounding, fiber, and sugar alcohols can make calories differ from a 4-4-9 macro calculation. See two worked examples and...

What to Eat for Dinner Based on Your Remaining Calories and Protein
Compare three dinner combinations, check cooked portions, and use your remaining calories and protein as planning estima...

How Many Calories Does Walking 3,000 Steps Burn?
3,000 steps burn about 85-230 total calories depending on weight and cadence. See estimates, active calories, distance,...
Know what to eat next.
Kalo sets your daily calorie and macro targets and suggests meals that fit your goals, your diet, and what you have left today.