Skip to content
Black Friday · Up to 76% offLifetime deal:pay once, use it forever. The price goes up as licences sell.✓ 7-day money-back guaranteeGet lifetime access
Methodology

How NutritionFactLabel calculates a label

NutritionFactLabel totals your recipe from USDA FoodData Central, applies the FDA rounding rules in 21 CFR 101.9(c) once, to the unrounded totals, and calculates % Daily Value from the 2016 Daily Values. This page sets out each rule the generator applies and the limits you should check yourself.

Open the generator

Frequently asked questions

How are nutrient values rounded?

NutritionFactLabel rounds each US nutrient with the increments in 21 CFR 101.9(c), and rounds only once: recipe totals keep full precision until the label is drawn.

  • Calories: under 5 is 0; up to 50 rounds to the nearest 5; above 50 to the nearest 10.
  • Total, saturated and trans fat: under 0.5 g is 0; under 5 g rounds to the nearest 0.5 g; 5 g and above to the nearest 1 g.
  • Cholesterol: under 2 mg is 0; 2 to under 5 mg is "less than 5 mg"; otherwise the nearest 5 mg.
  • Sodium and potassium: under 5 mg is 0; up to 140 mg rounds to the nearest 5 mg; above 140 mg to the nearest 10 mg.
  • Carbohydrate, fiber, sugars, added sugars and protein: under 0.5 g is 0; under 1 g is "less than 1 g"; otherwise the nearest 1 g.
  • Vitamin and mineral % Daily Value: under 2% is 0; up to 10% rounds to the nearest 2%; up to 50% to the nearest 5%; above 50% to the nearest 10%.

The full rules, with examples, are on the US FDA regulation page.

How is % Daily Value calculated?

NutritionFactLabel calculates % Daily Value from the unrounded amount, which 21 CFR 101.9(d)(7)(ii) permits, using the Daily Values from FDA's 2016 final rule: for example sodium 2,300 mg, dietary fiber 28 g, added sugars 50 g, total fat 78 g and total carbohydrate 275 g.

An amount declared as 0 always shows 0%, so a panel never reads "0g" next to "1%". Labels for children 1 to 3 years and for infants use their own Daily Value tables.

When is a nutrient "not a significant source"?

A nutrient is insignificant when the label may declare it as zero, or as "less than 1 g" for carbohydrate, fiber and protein (21 CFR 101.9(f)(1)). For sodium that means under 5 mg, for fat under 0.5 g. Vitamins and minerals are insignificant below 2% of the Daily Value.

Where does the nutrient data come from?

Ingredient nutrients come from USDA FoodData Central: the Foundation, SR Legacy and Survey (FNDDS) datasets for generic foods, and the Branded dataset for packaged products. You can also type values from your own lab analysis.

For a recipe, NutritionFactLabel multiplies each ingredient's per-100 g values by its weight, adds the ingredients together, subtracts any waste percentage you enter, and divides by the number of servings.

Check this yourself: the generator does not adjust for moisture lost in cooking or baking. Volume units without a USDA portion are converted as water (1 mL = 1 g, 1 cup = 240 g), so pick a USDA portion or enter grams for dense or light ingredients.

How are serving sizes set?

Serving sizes follow the Reference Amounts Customarily Consumed (RACC) in 21 CFR 101.12(b), Table 2. The RACC lookup lists 79 product categories, checked row by row against the eCFR on 31 October 2026, and the generator can apply a category's RACC as the serving size.

Check this yourself: NutritionFactLabel does not decide the household measure or apply the single-serving container rules in 21 CFR 101.9(b)(6).

How are allergens detected?

NutritionFactLabel matches your ingredient list against names and synonyms for the nine major US food allergens: milk, eggs, fish, crustacean shellfish, tree nuts, peanuts, wheat, soybeans and sesame. Matching ignores case and works on whole words. The "Contains" statement names the species for tree nuts, fish and shellfish when the ingredient identifies it, and asks you to name it when it does not.

The allergen statement builder also writes statements for the EU, UK, Canada (with the French "Contient" line) and Australia and New Zealand.

Check this yourself: detection reads words, not recipes. "Coconut milk" and "cocoa butter" are flagged as milk, and cross-contact in your facility cannot be detected at all.

How are other countries' labels handled?

NutritionFactLabel covers 152 label formats across 114 countries. Each country's format carries its own nutrients, reference values and rounding steps, written from that country's regulation, and each regulation page names the document it was reviewed against. Countries without their own nutrition labelling rules use the Codex guidelines (CXG 2-1985), and those pages say so.

How are nutrition claims checked?

The claim validator tests claims such as "low fat", "good source" and "high fiber" against 21 CFR 101.54, 101.60, 101.61 and 101.62, and flags the disclosure statement required by 101.13(h). The healthy claim checker follows 21 CFR 101.65(d) as amended by the 2024 final rule.

Check this yourself: the generator's claim alerts use your serving weight as the reference amount, and the extra per-50 g test for foods with small reference amounts is applied to "low fat" only.

Is NutritionFactLabel a substitute for regulatory review?

No. NutritionFactLabel generates labels from the data you enter. It is not legal advice and does not certify compliance. Have final labels checked by a qualified regulatory professional before printing.

The method on this page is maintained by Waqar Anwar, who writes the label engine. Errors can be reported as described in the editorial guidelines.

Build your first label in minutes

Free to start. No credit card required.