If you tried an AI food logger and got wrong numbers, your skepticism is fair. A poor result from one app or an older model shows what that app could do at the time. It doesn't show the best AI food logging can do. Model choice, how the product is built, the nutrition data behind each food, and the detail you give all change the number. Fuel reports 98% macro accuracy and 95% micronutrient accuracy in its internal testing. That testing and the published photo-only studies below were not run as a head-to-head comparison.
Fuel uses the facts a photo cannot show. Tell it the portion, the ingredients, whether the chicken was weighed raw or cooked, how many servings the batch made, and how much you ate, and the estimate works from those amounts in place of guesses. One typed sentence covers it. If a result still misses, you can correct it in plain words, and a recipe you save once logs the same way next time.
01What an accuracy score tells you
Model choice shows up in the published numbers. Fridolfsson and colleagues gave the same 52 standardized food images to three general-purpose models, without additional meal details. Gemini 1.5 Pro's average energy error was nearly double that of GPT-4o and Claude 3.5 Sonnet. Every model missed carbohydrate, protein, and fat by more than it missed energy, and Gemini's protein error reached 109.9%. In this test, energy estimates had lower mean absolute percentage error than the individual macro estimates.1

Repeated estimates can cluster together and still miss the meal reference. Accuracy asks how close they land to that reference. The white dots illustrate repeated estimates, not measured study results.
Recognition is a third measure. Li and colleagues uploaded 22 images of 16 foods and 6 drinks to seven apps then on the Australian market. The apps identified between 46% and 97% of 39 food components, and only four went on to estimate energy. Foodvisor overestimated beef pho by 49%, and HealthifyMe underestimated full-sugar pearl milk tea by 76%.3 These recognition results describe the app versions tested in Li’s 2024 study.
| Source | What was tested | Measure | Result |
|---|---|---|---|
| Fuel internal tests, company-reported | Fuel's nutrition estimates in internal testing | Macro and micronutrient accuracy as reported by Fuel | 98% macro accuracy, 95% micronutrient accuracy |
| Fridolfsson and colleagues, 2025 | 52 standardized images, photo only, GPT-4o, Claude 3.5 Sonnet, Gemini 1.5 Pro | Mean absolute percentage error against weighed food and database values | Energy error 35.8% for GPT-4o and Claude, 64.2% for Gemini. Every macro error exceeded energy error |
| Li and colleagues, 2024 | 22 images of 16 foods and 6 drinks in seven commercial apps | Recognition of 39 food components, energy against food records | 46% to 97% of components identified. Four apps estimated energy, with misses of +49% on pho and −76% on pearl milk tea |
Portion measurement, database matching, and known food details are three practical points where implementations differ. Portion measurement turns a picture into grams, and a bowl's depth or a layer of rice under curry is hard to see. Database matching ties each food to a nutrition row, so a wrong brand or a cooked entry for a raw weight repeats its error every time you log that food. Known facts, such as a label, a weighed portion, or the oil you added, give those steps better inputs. Swapping in a newer model does not fix them by itself. In the repeatability test in the next section, GPT-5.1 varied more than GPT-4o.
Individual Cal AI reviews on the Canadian App Store include praise and specific complaints. Feinleigh Hay praised the quick tracking and simple interface. Elenorbear wrote about enjoying the app, and in the same review reported that a homemade white bread recipe yielding 12 slices was counted as a single serving. Singh1738 reported macro mismatches across five barcode scans.7 Each is one person's account, not a measurement of the app's accuracy. The two complaints concern product records and recipe servings, separate from recognizing a dish in a photo.
To judge any tool, type a weight and an ingredient list and see whether the estimate uses them. Fix a wrong portion and notice how much effort it takes. Scan a label or enter a recipe and check that it matches the right entry. Then run the five-meal check below on food you already know. Completeness asks whether you included everything you ate, and behavioral usefulness asks whether the record helps you make a decision. Check calorie-dense extras for the first, and how easily you keep the log for the second.
02Why the same meal gets different numbers
Photograph a bowl, move the fork, photograph it again, and an AI estimate can change. Wang, Lane, and Waki built 20 pairs of images of the same meal for a 2026 research letter. Ten pairs changed the camera angle and ten rearranged the dishes. Each image went to GPT-4o and GPT-5.1 sixty times with a fixed prompt and fixed settings. Estimates moved when only the view changed, and they moved between identical requests too. GPT-5.1, the newer model, varied more in this setup. The study had no true meal values to compare against, so it measured repeatability.2
Fridolfsson's results add a direction. All three models underestimated more as portions grew, and the authors suggested that vegetables at the front of the plate could hide other foods.1 Large and layered meals deserve the closest check.
When two photos of one meal give two numbers, add a fact that stays the same however the plate is framed, such as the weight of the rice or the oil used.
03Add the details that matter
A photo shows surface and arrangement. It cannot show whether the chicken was weighed raw or cooked, how much oil went into the pan, how many servings a batch made, or how much you left on the plate. Those details change the nutrients even when the model names the food correctly.
Vedovelli and colleagues evaluated 40 vision-language models from 8 providers, with main model versions dating from October 2025. In one experiment they added ingredient descriptions, without quantities, to 16 images drawn from a 23-photo smartphone set and tested them across nine models. Aggregate error, measured as RMSLE, moved from 0.548 to 0.516, and individual models responded differently.4 Ingredient names helped in aggregate. Weights and cooking details supply the amounts that names leave open.
Start with the meals you repeat and the calorie-dense extras such as oil, butter, nut butter, dressing, and cheese. A miss on a breakfast you eat five times a week appears five times in your weekly total.
| Where estimates drift | What the photo misses | Detail to add |
|---|---|---|
| Hidden oil and sauce | Oil soaks into food, and sauce sits under it | Amount of oil, butter, dressing, or sauce |
| Layered portions | Rice under curry, noodles under broth, depth in a bowl | Weight or count of the base layer |
| Raw or cooked weight | Meat, rice, pasta, and oats change weight as they cook | Whether you weighed the food raw or cooked |
| Exact brand or database entry | Yogurts, bars, wraps, and frozen meals look generic | Brand and product name, or scan the label |
| Amount actually eaten | The photo shows the plate served | The share you ate, such as half or everything but the rice |
In Fuel, these details go in the Add food details field after you attach photos. It accepts portions, cooking oils, sauces, and how much you ate, as the AI food logging guide describes. When you leave portions out, Fuel infers a portion. A portion you weighed or counted gives the estimate a measured amount in place of an inferred one.
A slice of homemade quiche
From the photo alone, Fuel sees a wedge of quiche with a browned top and a pastry edge. It can identify the dish, judge the slice against the plate, and infer a typical filling. It cannot see whether the custard was made with milk or cream, how much cheese went in, what the crust was, or what share of the tart the slice was.
Add one sentence to the same photo. "Homemade quiche. 6 eggs, 300 ml double cream, 120 g gruyere, 150 g bacon, butter shortcrust from a 320 g pack. Cut into 8 slices, I ate one." Now the estimate can start from the recipe and divide by the yield. The cream, cheese, and pastry carry most of a quiche's fat, and each is now an amount. If you bake it often, save it once in Recipe Library and log a slice from there next time.
04300 g of chicken and 200 g of broccoli
Known amounts change the input the model works from. The same visible plate can come with a description that gives the weight, cooking state, oil, and portion eaten.

Illustrative input comparison. The weights and oil are supplied facts for this example, not measurements made from the photo or a measured improvement in accuracy. No nutrition result is shown.
"300 g chicken and 200 g broccoli" looks precise and leaves the biggest question open. Chicken loses water as it cooks, so a cooked-weight entry and a raw-weight entry describe different amounts of the original food. Say which one you weighed, and do the same for the broccoli. Then add the oil and any sauce by amount. If you cooked a batch, give the total and the share you ate. The illustrated example reads like this. "300 g cooked chicken breast and 200 g cooked broccoli, with 10 g olive oil added to this portion, no sauce, I ate the whole portion."
Correcting a result in Fuel
If the result misses, tap Edit Result to open What should change?. Type the correction the way you would say it, such as "the chicken was weighed raw" or "I ate half," then tap Ask AI to Update and check the new numbers. When the entry matches what you ate, tap Log Food. One correction at a time makes it easy to see what each change did.
05A useful log doesn't have to be perfect
A log you keep for three months tells you more than a careful one that stops on Thursday. Patel and colleagues ran a fully remote, three-month randomized pilot with 38 racial and ethnic minority adults. One group logged everything they ate. The other tracked only "red zone" foods on a simplified checklist. The checklist group monitored their diet on a median 97% of days, against 49% for detailed logging, and mean weight change was −3.3 kg and −3.4 kg. Both groups were in a program that also included step and weight tracking, weekly feedback, lessons, and action plans. As a feasibility pilot, it was too small to show the two approaches work equally well, and the weight change reflects the whole program.5 The lighter record got kept on twice as many days, and for a busy stretch that is a sensible trade.
Logging for awareness
If your goal is noticing patterns, a quick photo of every meal can do the job without a scale. Chung and colleagues interviewed 16 women aged 18 to 34 who had chosen on their own to post their meals on Instagram to support eating goals. Participants described the enjoyment of sharing food photos and the social acceptability of photographing meals. Rereading their posts helped some notice how often they ate at restaurants, and they described packing lunch and cooking more as a result.6 Include snacks and drinks so the record shows the whole day.
Match the detail to your goal
Other goals need more detail on specific foods and less everywhere else.
| Goal | Log these carefully | Save effort on |
|---|---|---|
| Protein and muscle gain | Protein foods by weight or label, and shakes and bars by brand | Vegetables, herbs, and garnishes |
| Calorie deficit | Oils, sauces, dressings, restaurant meals, and the meals you repeat | Plain vegetables and zero-calorie drinks |
| Precise nutrient needs | Labels, weighed portions, and recipes for every food that carries the nutrient you track | Foods with none of that nutrient |
If you track a nutrient for a medical reason, work from targets set with your clinician or dietitian and use the log as the record you bring to them. If your log says deficit and three weeks of weight trend say maintenance, the log, your expenditure estimate, or water retention can account for it. Adaptive calorie algorithms adjust the expenditure estimate from that mismatch. Check your repeat meals and extras first, and the calorie counting accuracy entry covers the other sources of error.
06Check five familiar meals
Five meals you eat often will tell you more about your log, and about the app, than a week of second-guessing every entry. For each one, write down the food reference you checked it against, whether a label, a scale weight, or a recipe, then save the corrected entry so the next log starts from the checked version.
The labeled yogurt is your control. Scan the package with Food Scanning and compare the entry with the panel. When those disagree, the cause is usually the serving unit, such as per serving against per container. For the weighed repeat meal, a scale checks the amount, and a matching raw or cooked food reference checks the nutrients. Leftovers test the details that drift most, because the second day's portion depends on the batch recipe, its cooked weight, and how much you took.
| Meal | Food reference to record | Correction to check first |
|---|---|---|
| Plain Greek yogurt from a labeled tub | Label serving size and macros | Serving unit and amount eaten |
| A weighed repeat breakfast | Scale weight of each ingredient | Portion, raw or dry weight |
| Leftovers from yesterday's batch | Batch recipe, total cooked weight, today's portion weight | Batch yield and share eaten |
| A restaurant bowl or salad | Published menu nutrition if available, otherwise your notes | Dressing, oil, and sauce |
| Homemade quiche or a family recipe | Ingredient amounts and number of slices | Recipe yield and the slice you ate |
The restaurant meal will have the weakest reference. If the chain publishes nutrition, compare against it. If it does not, record what you can see and what you asked about. The food database accuracy audit goes further into restaurant entries, raw and cooked mismatches, and database matching.
07Choose the right tool for the meal
Each logging method starts from a different source of information, and the most accurate entry uses the best source you have.
| Meal | Tool | What it works from |
|---|---|---|
| A plate that needs interpretation, such as a restaurant bowl or a dish someone else cooked | Photo with Add food details | The photo plus the amounts you type |
| A homemade dish with known ingredients | Recipe Library | The recipe and its yield |
| A single known food, such as a banana or a cup of rice | Food Library | A stored nutrition row |
| A package with a barcode or nutrition panel | Food Scanning | The label |
| A meal you repeat at the same portion | Quick Log, in the food logging guide | The version you already checked |
Before you log, ask what you know about this meal that the camera does not. If it is a label, scan it. If it is a recipe, use the recipe. If it is a weight, a spoon of oil, or half a plate left over, take the photo and type the sentence.
Footnotes
Fridolfsson J, Sjöberg E, Thiwång M, et al. Performance Evaluation of 3 Large Language Models for Nutritional Content Estimation from Food Images. Curr Dev Nutr. 2025, 9(10), 107556. 52 standardized images compared against weighed and database reference values. Energy MAPE was 35.8% for ChatGPT and Claude and 64.2% for Gemini. Carbohydrate, protein, and fat MAPE exceeded energy MAPE for every model. Underestimation grew with portion size. https://pmc.ncbi.nlm.nih.gov/articles/PMC12513282/
Back to textBack to text 2Back to text 3Wang Z, Lane D, Waki K. Toward Robust AI-Assisted Dietary Assessment for Diabetes Self-Management: Quantifying and Decomposing Large Language Model Prediction Variability From Meal Images. JMIR Diabetes. 2026, 11, e102715. 20 same-meal image pairs, 10 varying camera angle and 10 varying arrangement, with 60 requests per image to GPT-4o and GPT-5.1. The authors disclosed equity in a dietary assessment company, WaShiLa Health. https://diabetes.jmir.org/2026/1/e102715
Back to textLi X, Yin A, Choi HY, et al. Evaluating the Quality and Comparative Validity of Manual Food Logging and Artificial Intelligence-Enabled Food Image Recognition in Apps for Nutrition Care. Nutrients. 2024, 16(15), 2573. 22 images tested across seven apps on the Australian market at the time. Recognition across 39 food components ranged from 46% to 97%, and four apps estimated energy. https://pmc.ncbi.nlm.nih.gov/articles/PMC11314244/
Back to textBack to text 2Vedovelli L, Pugnaloni S, Lanera C, et al. Model architecture dominates nutritional estimation accuracy in vision-language systems. Sci Rep. 2026, 16, 29227. The ingredient-description result used 16 images from a 23-photo smartphone set across nine models, with descriptions without quantities. Aggregate RMSLE changed from 0.548 to 0.516 with heterogeneous model responses. https://www.nature.com/articles/s41598-026-58755-w
Back to textPatel ML, Cleare AE, Smith CM, Rosas LG, King AC. Detailed Versus Simplified Dietary Self-monitoring in a Digital Weight Loss Intervention Among Racial and Ethnic Minority Adults: Fully Remote, Randomized Pilot Study. JMIR Form Res. 2022, 6(12), e42191. 38 adults over three months. Median diet-monitoring adherence was 49% of days for detailed logging and 97% for the simplified checklist. The pilot was designed to test feasibility. https://formative.jmir.org/2022/12/e42191/
Back to textBack to text 2Chung CF, Agapie E, Schroeder J, Mishra S, Fogarty J, Munson SA. When Personal Tracking Becomes Social: Examining the Use of Instagram for Healthy Eating. Proc SIGCHI Conf Hum Factor Comput Syst. 2017, 1674-1687. Interviews with 16 women aged 18 to 34 who posted food photos on Instagram. https://pmc.ncbi.nlm.nih.gov/articles/PMC5432132/
Back to textCal AI user reviews, Canadian App Store, read November 2, 2026. Feinleigh Hay's review, titled "Super Simple and Adjustable," shows January 6 with no year. Elenorbear's review, titled "Good but needs some tweaking!," shows February 2 with no year and reports enjoying the app alongside the recipe serving complaint. Singh1738 posted the barcode review on May 6, 2025, and described those scans as separate from the app's AI scan. These are individual reports from unknown app versions, not a current benchmark. https://apps.apple.com/ca/app/cal-ai-calorie-tracker/id6480417616?platform=iphone&see-all=reviews
Back to text
