Food Database
Food Database — The collection of food records, each with a serving size and nutrient values, that a calorie tracker turns your entries into numbers with.
The part of the app you never see
Whichever way you log a meal, by typing, scanning or photographing, the app ends up at the same place: a record that says “this food, this much of it, these nutrients”. The food database is the set of those records. It decides more about the accuracy of your diary than the logging method does, because every method feeds into it.
A single record usually holds a name, one or more serving definitions (a cup, a slice, 100 g), and values for energy, the three macronutrients and as many micronutrients as the source provides. Packaged foods add a barcode; restaurant dishes add the chain and the menu item.
Where the records come from
Most apps build their database from a mix of four kinds of source:
- Reference composition data. Laboratory-analysed values such as the Foundation Foods and SR Legacy sets in USDA FoodData Central. These are the closest thing to ground truth for whole foods.
- Branded product data. Label information supplied by manufacturers and data providers, like USDA’s Global Branded Food Products Database.
- Restaurant data. Nutrition figures published by chains for their menu items.
- Member submissions. Entries typed in by users. They fill gaps quickly but are only as careful as the person who typed them.
The mix, and how much checking happens before a record goes live, is what separates one database from another.
How quality shows up
Three signs tell you a lot within a few minutes of use:
- Duplicates. Search for a common food. One clear result is a good sign; fifteen near-identical ones with different numbers are not.
- Missing nutrients. Open a record. If fibre, sodium or sugar is blank on a food that obviously contains them, totals for those nutrients will run low.
- Odd servings. A “serving” with no weight attached makes portions guesswork.
Worked example
Suppose you search “grilled chicken breast” and the first two results read 120 kcal and 195 kcal per 100 g. USDA’s value for roasted chicken breast, meat only, is about 165 kcal per 100 g. On a 150 g portion:
| Record used | kcal per 100 g | Logged for 150 g | Off by |
|---|---|---|---|
| Reference value | 165 | 248 | — |
| First result | 120 | 180 | −68 kcal |
| Second result | 195 | 293 | +45 kcal |
That is one ingredient in one meal. Repeat the same lottery across a day of mixed food and the daily total can drift by hundreds of calories without you doing anything wrong.
What our testing showed
In our 2026 testing, USDA-aligned databases produced lower MAPE numbers than crowdsourced ones at every difficulty tier, even when the crowdsourced database was 10× larger. The mechanism is the lottery in the example above: many entries for the same food, with the user picking one.
Size versus checking
Bigger is not automatically better. MyFitnessPal cites more than 20.5 million foods in its App Store listing, and its terms of service say the catalogue combines entries from the company and its members, who can add and edit them; that breadth is genuinely useful for restaurant chains and obscure products. Cronometer takes the opposite approach, a curated, lab-analysed database that is smaller but highly consistent.
PlateLens aims for both breadth and checking: it holds the largest verified database in the category, with more than 1.2 million checked entries, over 820,000 branded products with barcode data and more than 45,000 restaurant items, and its AI photo logging draws on those same records. That link matters more than it sounds. A photo estimate is only as good as the record it lands on, so the database is the foundation under every photo recognition result as well as every barcode scan.
For the effect on measured error, see the MAPE entry, and for the trade-off in practice, PlateLens vs MyFitnessPal.