Can ChatGPT or Claude Track Calories? What the Research Says

By Remembite team · Published · Updated

Yes. ChatGPT and Claude can estimate calories and macros from what you tell them, and in the studies we found the calorie miss for ChatGPT and Claude models ran from about 14% to 36%, depending on the input. A chat cannot keep a reliable day-to-day record by itself. For that you need amounts in your description and a place outside the chat to keep the numbers.

Key takeaways

  • One study of ChatGPT-5 on 195 dishes found a 30.51% average calorie error from a photo alone and 13.92% from a photo plus a full ingredient list.
  • More detail did not always help: a list without the photo scored 18.05%, worse than photo plus list.
  • Protein, carbs and fat were missed by more than calories in all four input conditions, by 1.37 to 1.77 times.
  • Asking the same question again moves the answer. In a 2023 study the average spread across 5 runs was 4.74% to 6.19%.
  • We found two studies that include Claude models. We found none that compares a chat with a food log over weeks.

Can ChatGPT or Claude track calories?

For one meal, yes. Describe it, ask for calories and macros per item, and you get a number in seconds. Claude's free plan is $0 and includes chat, web search and memory across conversations (Claude pricing, as of 2026-10-16, US). You do not need a paid plan to try it.

For a record, no. A chat does not total your week, does not tell you where a number came from and gives a different answer when you ask twice.

Every figure here comes from a paper or help page we opened on 2026-10-16. Remembite makes a product in this area, so we are not a neutral party.

What the studies measured

Four studies do most of the work here. They tested different models, inputs and foods, so their numbers do not stack into one score.

StudyWhat was testednHeadlineLimit
Rodriguez-Jimenez 2025ChatGPT-5 Plus, four input conditions195 dishesCalorie error 13.92% to 30.51%One run per dish
Hoang 2023ChatGPT-3.5 and ChatGPT-4, 5 runs each222 foods39.2% to 46.8% within 10%Raw foods, 2021 knowledge cutoff
Mu 2025GPT-4.1 mini on meal photos505 imagesCalorie error 32.7%Lab photos, no Claude
Fridolfsson 2025ChatGPT-4o, Claude 3.5 Sonnet, Gemini 1.5 Pro52 photosCalorie error 35.8% for ChatGPT-4o and ClaudeMid-2024 models, no repeat runs

Rodriguez-Jimenez 2025: four ways to ask

Rodriguez-Jimenez and colleagues tested ChatGPT-5 (Plus, through the web interface) on 195 dishes: 96 from a recipe site, 74 from the SNAPMe photo dataset and 25 prepared at home. Each dish was run in four conditions, with the chat reset before each run (Nutrients 2025;17(22):3613, published 2025-11-19). The paper notes that the chat interface does not allow control over settings such as temperature.

The paper reports no repeated runs of the same dish.

Hoang 2023: 222 foods, five runs each

Hoang and colleagues gave ChatGPT-3.5 and ChatGPT-4 the foods of 8 adult menus, 222 items, in English and in Traditional Chinese. The prompt was "As a dietitian, please draw a table to calculate line by line", for foods "raw and not cooked". Each item was asked 5 times. The reference was Taiwan's food composition database (JAMA Network Open 2023;6(12):e2350367).

The average estimate for energy, carbohydrate and fat did not differ significantly from a nutritionist's. Protein did, and the authors write that ChatGPT-4 "overestimated protein". The authors list a September 2021 knowledge cutoff as a limit.

Share of AI calorie estimates within 10 and 20 percent
Share of the 222 foods whose energy estimate fell within 10% and within 20% of the reference. Each bar spans the lower and higher of the English and Chinese prompt results. ChatGPT-3.5: 39.2% to 44.1% (10%), 57.7% to 61.2% (20%). ChatGPT-4: 46.4% to 46.8% (10%), 59.9% to 61.3% (20%). Source: Hoang et al., JAMA Network Open 2023, counts out of 222, Remembite arithmetic.

Read the figure the other way round. For the stronger model, ChatGPT-4, 53% to 54% of foods missed the reference by more than 10% (100 - 46.8 = 53.2; 100 - 46.4 = 53.6). About two in five missed by more than 20% (100 - 61.3 = 38.7).

Mu 2025: a photo benchmark

Mu, Sun and He tested seven multimodal models on 505 Nutrition5k meal images, shot from overhead by a fixed camera (ACM BCB 2025). With no weight given, GPT-4.1 mini had a calorie error of 32.7%. Its fat error was 52.0%, carbohydrate 36.7% and protein 41.5%. None of the seven models was a Claude model.

Studies that include Claude

Fridolfsson and colleagues compared ChatGPT-4o, Claude 3.5 Sonnet and Gemini 1.5 Pro on 52 standardized photographs of weighed meals (Current Developments in Nutrition 2025;9(10):107556). Calorie error was 35.8% for ChatGPT-4o, 35.8% for Claude 3.5 Sonnet and 64.2% for Gemini 1.5 Pro. All three underestimated more as portions grew. The models were mid-2024 versions, and each photo was analyzed in a new chat, with no repeated runs reported.

A 2026 paper in Nutrients tested Claude Haiku 4.5, Sonnet 4.6 and Opus 4.6 on three image datasets. On SNAPMe photos, image-only, Sonnet's average energy error was 116.9 kcal over 1,463 photos, against 123.0 kcal for ChatGPT-5 over 195 dishes in a separate study (Nakagawa and Yamamoto, Nutrients 2026;18(12):2017). That compares two papers, not two models in one test.

We searched the web for peer-reviewed tests of Claude on calorie estimates on 2026-10-16 and found these two. We did not search PubMed or Google Scholar directly, so there may be more. We did not find a study of either assistant that follows people logging meals for weeks.

How the error changes with what you give the chat

In the Rodriguez-Jimenez data, what ChatGPT-5 was given mattered more than anything else the paper varied.

Input to ChatGPT-5CaloriesProteinCarbsFat
Photo only30.5142.5841.9552.88
Photo + fat type and amount, sweetener, dairy fat, meat type24.3540.2839.0043.20
Photo + full ingredient list with quantities13.9220.8523.5224.16
Ingredient list with quantities, no photo18.0530.8328.5029.16

The numbers are MAPE in percent, "All sources", "Total" row, from the paper's Tables 2 to 5. MAPE is the mean absolute percentage error: for each dish, take the gap between estimate and truth, divide by the truth, then average across dishes.

Worked example: three dishes with true values of 400, 600 and 800 kcal. The chat answers 520, 540 and 640.

  1. Dish 1: |520 - 400| / 400 = 30%
  2. Dish 2: |540 - 600| / 600 = 10%
  3. Dish 3: |640 - 800| / 800 = 20%
  4. MAPE: (30 + 10 + 20) / 3 = 20%

The signed errors are +30%, -10% and -20%, which average to 0%. MAPE ignores direction, so over and under errors do not cancel. The paper also notes that MAPE weighs overestimates more heavily than underestimates.

Bar chart of ChatGPT calorie error by input type
Average calorie error (MAPE) of ChatGPT-5 in four input conditions: 30.51%, 24.35%, 13.92% and 18.05%. Bars start at 0. Source: Rodriguez-Jimenez et al., Nutrients 2025;17(22):3613.

Three things stand out:

  • A full ingredient list with quantities, added to the photo, cut the error to 46% of the photo-only figure (13.92 / 30.51 = 0.456).
  • The list without the photo scored 18.05%, which is 59% of the photo-only figure (18.05 / 30.51 = 0.592). It was worse than photo plus list, so the photo still added information in this test.
  • A few descriptors helped little. Fat type, sweetener, dairy fat and meat type moved calorie error from 30.51% to 24.35%, a gain of 6.16 points. The full list gained 16.59 points.

Even the lowest-error condition, 13.92%, is an average. A single dish can land far from it, and the paper links higher errors to bowl-served dishes.

Limits for your own meals: one model, one run per dish, and detailed, quantified ingredient lists. A list you type from memory at the table is a different input. The study did not test Claude or newer ChatGPT versions.

Why protein, carbs and fat are harder than calories

In the same paper, every macro error was larger than the calorie error in the same condition. All 12 comparisons point the same way.

Grouped bars comparing calorie and macro error by input type
MAPE in percent for calories, protein, carbs and fat in four conditions. Photo only: 30.51, 42.58, 41.95, 52.88. Photo plus extras: 24.35, 40.28, 39.00, 43.20. Photo plus ingredients: 13.92, 20.85, 23.52, 24.16. Ingredients only: 18.05, 30.83, 28.50, 29.16. Source: Rodriguez-Jimenez et al., Nutrients 2025;17(22):3613, Tables 2 to 5.

Divide each macro error by the calorie error of its condition and the ratios run from 1.37 (carbs, photo only: 41.95 / 30.51) to 1.77 (fat, photo plus extras: 43.20 / 24.35). Fat was the largest error in three of four conditions. The Mu benchmark points the same way for GPT-4.1 mini: calories 32.7%, protein 41.5%, carbs 36.7%, fat 52.0%.

One reason is arithmetic. Calories are a weighted sum of the three macros, so some macro errors offset each other inside the total, in our reading. A model that guesses a little too much fat and a little too little carbohydrate can still land near the right calories. The macros then look worse than the total that hides them.

What it means in practice depends on the number you track.

Worked example: a dish with 30 g of protein.

  1. Photo only, protein MAPE 42.58%: 30 x 0.4258 = 12.8 g
  2. Photo plus ingredient list, protein MAPE 20.85%: 30 x 0.2085 = 6.3 g

These are typical per-dish misses, not a bound. Random misses partly cancel over a day. A habit, such as a model that always rounds a portion down, does not cancel.

If you track protein toward a target, weigh the main protein source in grams and treat the chat's protein figure as a rough guide.

What happens when you ask about the same meal twice

The Hoang study is the one with repeated runs. It asked each of the 222 foods 5 times and reported the coefficient of variation (CV): the standard deviation of the 5 answers divided by their mean. A CV of 5% means the answers typically sit within 5% of their own average.

Model and prompt languageMean CV, energy %SD of CV
ChatGPT-3.5, Traditional Chinese5.178.68
ChatGPT-3.5, English6.1915.23
ChatGPT-4, Traditional Chinese5.77.74
ChatGPT-4, English4.748.39

The mean CV ran from 4.74% to 6.19%. The authors write that the CV was under 10%.

Worked example: your chat answers 600 kcal for a meal.

  1. At the lowest mean CV: 600 x 0.0474 = 28 kcal
  2. At the highest mean CV: 600 x 0.0619 = 37 kcal

A new answer can come back about one CV away, roughly 570 to 630 kcal. That is scatter only, before any gap from the true value.

Two cautions. The SD of the CV across foods (7.74 to 15.23 points) is larger than the mean CV, so some foods vary far more than the average suggests, and the paper does not say which. And this is a 2023 test on raw ingredients. We have no repeat-run data for current versions of either assistant, or for Claude.

Ask once, record the answer and do not shop for a lower number by re-asking. A saved record does not drift between sessions, and a chat answer does.

What a chat does well and what it cannot do alone

The studies measure estimates. Tracking also needs remembering, adding and comparing. This table separates the two, based on the help pages and studies above plus our own reading of what a conversation is.

TaskChat aloneNotes
Sum a list you give itYesAsk for one line per item so you can re-add it
Scale a recipe or portionYesCheck the new total by hand once
Convert unitsYesCups and spoons need a stated food and density
Explain a nutrition labelYesPaste the label text, do not paraphrase it
Spot a missing itemOftenAsk "what did I forget: oil, sauce, drink?"
Recall last TuesdayNot as a recordMemory is not a per-meal log
Keep totals across daysNoTotals live inside one thread
Show a trendNoYou paste history in and it summarizes

The top half is where a chat earns its place: language jobs the studies above did not measure. The bottom half is what a record is for. Last Tuesday's total or a weekly average needs stored, structured entries, and a thread is a poor place for them.

Claude and ChatGPT: what each plan does for tracking

Facts from Claude's own pages, read on 2026-10-16 (US).

  • Plan. Claude Free is $0. It includes chat on web, desktop and mobile, web search, memory across conversations and connecting apps. Usage resets on a rolling five-hour window, and the page says there is no fixed message count (Claude pricing).
  • Memory. Memory is on by default for Free, Pro and Max. Claude does not store topics it classes as sensitive by default, and health is a listed example. You can turn on "Include sensitive topics in memory" in Settings > Memory. Whether a food diary counts as health is Claude's call, and we have not tested it (Claude help: chat search and memory).
  • Deleting. Deleting a conversation does not remove memory entries made from it. "Reset memory" deletes all memories.
  • Search. Searching past chats is for paid plans.
  • Connectors. Free users can add one custom connector (Claude help: custom connectors).

For ChatGPT we could not confirm current plan limits or memory behavior. OpenAI's help pages did not open for us on 2026-10-16, so we make no claim about them. Check them directly before you rely on either.

A chat history is not a food log

Suppose you log meals in one thread for a month. Three things go wrong, and none of them is about estimate quality.

  1. No totals across threads. A new chat starts without yesterday's thread unless memory or search brings it back. Even then, memory carries context between chats, and we found no description of it as a ledger.
  2. Edits are not tracked. If you say "make that half the rice" on day 12, the earlier answer stays in the scroll. Which number is current is up to you.
  3. Search is scrolling. Finding "what did I eat last Tuesday" means reading back through messages. On Claude's free plan, searching past chats is not available.

A food log has fixed fields: date, meal, item, grams, calories, protein, carbs, fat. It has one current value per item, and a total that comes from the items. A thread has none of that. The figure shows the flow we use for the missing part: the chat does the estimating, and a separate layer checks and keeps each meal.

Flow from a chat answer to a saved, checked meal
How a described meal moves from a chat answer to a saved entry when a record layer sits behind the assistant. Diagram by Remembite.

A spreadsheet or any logging app does the same job. For a comparison of the three routes (ask an AI, look it up, keep a record), see Ask AI for Calories, Look Them Up, or Keep a Record?.

A practical setup in five steps

This routine follows from the studies: give the model amounts, remove ambiguity, check one number and store the result.

  1. Weigh, or state grams. The lowest-error condition in the study had a full ingredient list with quantities. A scale gives you those. If you cannot weigh, say so and give a count, such as "2 large eggs".
  2. State cooked or raw. Hoang's prompt asked for raw foods, which is a reminder that the same food has different values by state. Say "150 g cooked white rice", not "150 g rice".
  3. Ask for per-item numbers. One line per item with grams, calories, protein, carbs and fat. A single total hides which item is off. Prompt wording is in How to Count Calories with ChatGPT.
  4. Check one number against USDA. Pick the item with the most calories and recompute it from FoodData Central. The method is in How to Check an AI Calorie Estimate.
  5. Keep the totals somewhere else. Copy the per-item lines to a spreadsheet, notes file or log app the same day.

Here is step 4 on a plausible bowl, with values from the USDA SR Legacy data (FoodData Central downloads, as of 2026-10-16).

Worked example: 150 g roasted chicken breast, 150 g cooked white rice, 100 g boiled broccoli and 10 g olive oil.

  1. Chicken (FDC 171477, 165 kcal per 100 g): 150 x 165 / 100 = 247.5 kcal
  2. Rice (FDC 168878, 130 kcal per 100 g): 150 x 130 / 100 = 195 kcal
  3. Broccoli (FDC 169967, 35 kcal per 100 g): 100 x 35 / 100 = 35 kcal
  4. Olive oil (FDC 171413, 884 kcal per 100 g): 10 x 884 / 100 = 88.4 kcal
  5. Total: 247.5 + 195 + 35 + 88.4 = 565.9 kcal

If your chat says 700 for this bowl, ask which item it counted high. Oil is a common suspect: 10 g is 88 kcal, so a heavier pour adds up fast.

The USDA value is a reference for a typical sample of that food. It is not your chicken. Small gaps are normal. A large gap is a reason to ask your AI what it assumed.

Where Remembite fits

Your AI does the math. Remembite keeps the record. Your assistant works out calories, protein, carbs and fat for a meal. Remembite saves each meal, totals each day and charts your history. It can also remember foods you name, such as "my oats".

Before it saves a meal, Remembite compares each food it can confidently match to a USDA-based reference, and checks the protein, carbs and fat against the calories. If a number looks far off, Remembite does not save it. It sends a question back to your AI, which asks you to confirm or fix it.

The Claude connector is available now: in Claude, open Customize > Connectors and add https://remembite.com/mcp. Remembite also works in ChatGPT (beta, via developer mode). Step by step: Claude or ChatGPT, or read How to Log Meals With Claude and Keep the Numbers. The sample dashboard shows the layout with sample data and needs no account.

Limits: Remembite has no barcode scanning, no recognition of meal photos of its own and no device sync. The check flags numbers that look off. It does not make an estimate closer, and we have not published a comparison against chat estimates. A food it cannot match is saved as your assistant sent it. Free to start. Any paid plan will be announced here before it begins.

FAQ

Is ChatGPT or Claude better for calories?

We do not rank them. The Rodriguez-Jimenez and Hoang studies tested ChatGPT only. Fridolfsson tested both on photos and measured the same 35.8% calorie error, on mid-2024 versions. We found no study that compares current versions on typed meal descriptions.

Can it read a photo?

Yes, with a wide miss. A photo alone scored 30.51% error for ChatGPT-5, 32.7% for GPT-4.1 mini on controlled overhead photos and 35.8% for Claude 3.5 Sonnet. Adding an ingredient list with quantities cut the ChatGPT-5 error to 13.92%.

Do I need to weigh food?

No, but amounts are what moved the error in the study. The lowest-error condition had a quantified ingredient list. If you cannot weigh, give counts and sizes, and treat the number as a range.

Does it remember what I ate yesterday?

Sometimes, loosely. Claude's memory is on by default for Free, Pro and Max and does not store health topics unless you turn that on. It carries context, not a per-meal log, and searching past chats needs a paid plan. We could not confirm ChatGPT's behavior.

Is this medical advice?

No. These are estimates for tracking food, not advice about your health or any condition. Ask a clinician or registered dietitian for that.

See what a kept record looks like

Open the sample dashboard to see Today, History and My foods with sample data. To keep your own record, create a free account. Remembite is not affiliated with Anthropic, OpenAI or Google.

Estimates, not medical advice. How the numbers work.

Start your own record

Create a free account with your email, then add Remembite to Claude. Want to look first? Watch Claude log a sample day, no account needed.

Get started free See Claude log a day