A nutrition label is only as good as the food composition data underneath it. So it is fair to ask where ours comes from. Here is the whole answer.
The two datasets
| Source | Published by | Foods loaded |
|---|---|---|
| Canadian Nutrient File (CNF) | Health Canada | 5,690 |
| FoodData Central, SR Legacy | USDA | 7,793 |
| FoodData Central, Foundation Foods | USDA | 436 |
That is 13,919 searchable foods, 470 distinct nutrients, and 34,000 household-measure conversions such as "1 cup, chopped" or "1 medium". The CNF entries also carry 5,690 French food names, which is how the bilingual Canadian table gets its French side without a separate translation step.
These are the same reference datasets regulators point to. They are not scraped from other apps, and we do not mix user-submitted or brand-submitted values into search results.
Which source gets used for your label
Both are always searchable. Your region preference decides which one ranks higher in search results: Canadian accounts see CNF foods boosted, US accounts see USDA foods boosted. You can always pick a specific food from either source, and each ingredient on your recipe records which one you chose.
This matters because CNF and USDA describe food differently. CNF reflects the Canadian food supply, including fortification rules that differ from the US. If you are labelling for a Canadian package, CNF entries are usually the closer match.
How a number gets from the dataset to your label
- Each source food stores nutrient amounts per 100 g.
- Your ingredient quantity is converted to grams. If you picked a household measure, we use that food's own gram weight for it, not a generic conversion.
- Nutrient amounts are scaled to your gram weight and summed across every ingredient.
- The total is divided by your number of servings. If you entered a weight or volume yield instead, the per-serving figure is the total scaled by serving size over total yield.
- The per-serving figure is rounded using the rules of whichever regulator you picked, per 21 CFR 101.9 for the FDA panel or B.01.402 for the CFIA table.
Rounding happens last, on the per-serving value. That ordering is deliberate, and it is one of the things a spreadsheet built by hand usually gets wrong.
Seeing the trace yourself
The audit report shows this calculation ingredient by ingredient: which source food was matched, its source and identifier, the quantity used, the gram weight, and what it contributed to each nutrient. If a retailer or an inspector asks where a number came from, that document is the answer. See inspection-ready audit reports.
What these datasets cannot tell you
Worth being straight about the limits.
- They describe representative foods, not your lot. "Cheddar cheese" is an average of sampled cheddars. Your supplier's cheddar will differ.
- Branded products are not in scope. We load the reference datasets, not the branded-food catalogue. If your recipe uses a specific commercial product, match the closest generic food or use the manufacturer's own declared values.
- Cooking changes things, and we do not model it. Nutrifax calculates from the ingredient weights you enter. It does not automatically apply cooking yield or nutrient retention factors, so water loss, fat drained off, and heat-sensitive vitamins are not accounted for. If that matters for your product, enter post-cooking weights or use a cooked source food where one exists.
- Some nutrients are simply missing for some foods. A blank in the source dataset is not a zero. We do not invent a value to fill the gap.
- A database label is not a lab test. Both regulators accept nutrient values derived from a reliable composition database, which is the route Nutrifax supports. Some products and some nutrient content claims still call for analysis.
Updates
We reload from the published source files rather than calling an external API at request time, so results stay stable and fast, and a given recipe keeps producing the same label. When Health Canada or the USDA publish a revision we re-import it, and your next label generation uses the updated values. A label you already downloaded reflects the data as it stood when you generated it, so regenerate before a reprint if accuracy for a specific run matters. The staleness flag on a recipe tracks changes you made to that recipe, not changes to the underlying datasets.
The source files
- Health Canada: Canadian Nutrient File
- USDA: FoodData Central
- CFIA: Nutrition labelling for industry
- FDA: Nutrition Facts label
Nutrifax is not affiliated with or endorsed by Health Canada, the USDA, the CFIA, or the FDA. We use their published data and follow their published formatting rules.