Tool · United States

Nutrition Facts label maker

A free Nutrition Facts label maker for 21 CFR 101.9. Type in your values per 100 g and the serving size, and the panel below is laid out the way the FDA sets it out: fifteen entries in the order of paragraph (c), the increment rounding of (c)(1) to (c)(8), and the % Daily Value column under both of its rules. Everything is worked out in your browser — nothing is uploaded, and there is nothing to sign up for.

The package
Per 100 g (or 100 mL)

Leave a box empty and its row shows a dash — an unknown value is not a zero. The figures the page starts with are the FDA’s own sample label from 101.9(d)(12), divided back to 100 g: at a 55 g serving the panel below comes out identical to the one printed in the regulation.

Nutrition Facts

8 servings per container

Serving size 2/3 cup (55g)

Amount per serving

Calories 230

% Daily Value*

*The % Daily Value tells you how much a nutrient in a serving of food contributes to a daily diet. 2,000 calories a day is used for general nutrition advice.

What has to be on the panel

Fifteen entries, and the list is closed in both directions — nothing may be left out, and nothing else may be added. 21 CFR 101.9(c):

“The declaration of nutrition information … shall contain information about the level of the following nutrients … No nutrients or food components other than those listed in this paragraph as either mandatory or voluntary may be included within the nutrition label. … nutrient information shall be presented using the nutrient names specified and in the following order”

“In the following order” is a requirement, not a suggestion: calories, total fat, saturated fat, trans fat, cholesterol, sodium, total carbohydrate, dietary fiber, total sugars, added sugars, protein, then vitamin D, calcium, iron and potassium below the bar.

That is a different label from a European or an Australian one, and the differences are not cosmetic:

United StatesEuropean UnionAustralia
EnergyCalories (kJ optional)kJ and kcalkJ (kcal optional)
Sodium or saltSodium in mgSalt in gSodium in mg
ReferencePer servingPer 100 gPer serving and per 100 g
Entries1577
RoundingFixed increments per nutrientThresholds per nutrient3 significant figures
Reference column% Daily Value, mandatory% RI, optional% Daily Intake, optional

Four of the fifteen — trans fat, added sugars, vitamin D and potassium — have no counterpart in a mandatory European declaration at all. A label translated from one regime into the other is wrong in both directions.

The rounding: fixed increments, not significant figures

This is where most hand-built panels go wrong. The FDA does not round to a number of decimal places and not to significant figures, but to a multiple — and the multiple changes with the nutrient and with the size of the number. 101.9(c)(1) for calories, in full:

“Caloric content shall be expressed to the nearest 5-calorie increment up to and including 50 calories, and 10-calorie increment above 50 calories, except that amounts less than 5 calories may be expressed as zero.”

The same shape of rule, nutrient by nutrient:

EntryIncrementMay be declared as zero belowSource
Calories5 up to 50, then 105(c)(1)
Total Fat, Saturated Fat, Trans Fat0.5 g below 5 g, then 1 g0.5 g(c)(2), (c)(2)(i), (c)(2)(ii)
Cholesterol5 mg2 mg(c)(3)
Sodium5 mg up to 140 mg, then 10 mg5 mg(c)(4)
Total Carbohydrate, Dietary Fiber, Total Sugars, Added Sugars, Protein1 g0.5 g(c)(6), (c)(6)(i)–(iii), (c)(7)
Vitamin D, Calcium, Iron, Potassiumthe unit of the RDI cell in (c)(8)(iv)2 % of the RDI(c)(8)(iii)

Three details in that table are easy to miss, and all three change what gets printed:

  • The threshold applies to the unrounded value. 4.9 calories may be declared as zero. Round first and you print “5” where a zero was allowed.
  • Cholesterol has a sentence instead of a number in between. (c)(3) requires label declaration only above 2 mg, and between 2 and 5 mg the panel reads less than 5mg rather than a figure. A plain 5 mg increment would print “5mg” for 2.4 mg — next to a % Daily Value of 1 %.
  • A micronutrient may not round down to zero while its percentage is above zero. (c)(8)(iii) allows “additional levels of significance … when the number of decimal places indicated is not sufficient to express lower amounts”. Without it a panel shows Vitamin D 0mcg beside 2%.

The % Daily Value column has two rules, not one

The percentage column looks like a single calculation and is not. Which rule applies depends on which table the reference value comes from.

Applies toSourceRounded to
Anything with a Daily Reference Value from (c)(9) — fat, saturated fat, cholesterol, sodium, carbohydrate, fiber, added sugars(d)(7)(ii)the nearest whole percent
Vitamins and minerals with an RDI from (c)(8)(iv) — vitamin D, calcium, iron, potassium(c)(8)(iii)2 % up to 10 %, 5 % above 10 and up to 50 %, 10 % above 50 %

That there really are two rules is not an interpretation — the FDA’s own sample panel in (d)(12) only adds up with both. Four of its lines separate the two rules cleanly:

Line of the sample panelUnroundedIncrementsWhole percentPrinted in (d)(12)
Sodium 160 mg6.96 %6 %7 %7 %
Total Carbohydrate 37 g13.45 %15 %13 %13 %
Iron 8 mg44.4 %45 %44 %45 %
Potassium 235 mg5.00 %6 %5 %6 %

Two lines need the whole-percent rule, two need the increments. Whichever single rule you pick, two lines of the regulation’s own label come out wrong.

Four of the fifteen entries carry no percentage at all, because no reference value exists for them: calories, trans fat, total sugars and protein. (c)(7) allows a percentage for protein and does not require one, and it has to be worked out from the corrected amount in (c)(7)(ii) — a PDCAAS calculation, not a division. The panel above leaves it out, which is what the sample label does.

The reference values the column divides by, from (c)(9) and (c)(8)(iv):

EntryAdults and children ≥ 4 years
Total Fat78 g
Saturated Fat20 g
Cholesterol300 mg
Sodium2,300 mg
Total Carbohydrate275 g
Dietary Fiber28 g
Added Sugars50 g
Protein50 g
Vitamin D20 mcg
Calcium1,300 mg
Iron18 mg
Potassium4,700 mg

Both tables also carry columns for infants through 12 months, children 1 through 3 years and pregnant or lactating women, and they differ sharply — potassium is 4,700 mg for adults and 700 mg for infants. A product aimed at one of those groups needs that group’s column; this tool uses the adult one.

The serving size is not yours to choose

In the European Union a portion is whatever the business declares it to be. In the United States it is set by regulation. 101.9(b)(2):

“serving size declared on a product label shall be determined from the ‘Reference Amounts Customarily Consumed Per Eating Occasion’ (reference amounts) that appear in § 101.12(b) using the procedures described below.”

§ 101.12(b) is a table of about 140 food categories with a reference amount for each. What you print is the household measure that comes closest to that amount, with the metric weight in parentheses — which is why the panel says “2/3 cup (55g)” and not “55 g”. 101.9(d)(3)(ii) also asks for the serving size line to be “highlighted in bold or extra bold”, and “right justified if adequate space is available”.

Two consequences worth knowing before you print anything:

  • A small package can be a single serving whether you like it or not. 101.9(b)(6): a product packaged and sold individually that contains less than 200 % of the reference amount “must be considered to be a single-serving container, and the entire content of the product must be labeled as one serving”.
  • Between 200 and 300 % of the reference amount you need two columns. 101.9(b)(12)(i) requires an additional column with the figures for the whole container next to the per-serving column.

What the panel does not have

Three things that belong on a European label have no place on an American one, and one has a place but not the one people expect.

  • No kilojoules, unless you add them. Calories are the figure. 101.9(c)(1) allows that the caloric content “may also be expressed in kilojoule units, added in parentheses” — an addition, never a substitute. If you work from kilojoules, our kilojoules to calories converter does the step before this one.
  • No salt. Sodium in milligrams, and it is not the same number: 160 mg of sodium is 0.4 g of salt. Dividing a European salt figure by 2.5 gets you the sodium; multiplying a sodium figure by 2.5 gets you back.
  • No tolerance table. The European tolerance guidance has no American counterpart; 101.9(g) instead sets out a class I/class II compliance procedure with a 12-sample composite.
  • Allergens are not in the panel. They go in a “Contains” statement or in the ingredient list, under the Food Allergen Labeling and Consumer Protection Act — nine major allergens since sesame was added with effect from 1 January 2023.

Small packages: tabular and linear

The vertical panel above is the standard format. Where there genuinely is not room for it, 101.9(j)(13) allows two narrower ones — a tabular display, and for packages with a total surface area available for labeling of less than 12 square inches a linear display, which runs the same entries across one or more lines. The order and the rounding do not change with the format; only the arrangement does. Foodlex builds all three.

From the per-100 g figures to a finished label

This page does the arithmetic and the layout. It does not do the two things that come before and after it, and they are the ones that take the time:

  1. Where the per-100 g numbers come from. A recipe, an ingredient database, or a laboratory report. Foodlex works them out from the recipe, with the loss of water in cooking and the yield factored in.
  2. Everything else on the pack. Statement of identity, net quantity, ingredient list in descending order of predominance, the “Contains” statement, the name and place of business of the manufacturer, packer or distributor.

Frequently asked questions

What has to be on a Nutrition Facts panel?

Fifteen entries, in the order of 101.9(c): calories, total fat, saturated fat, trans fat, cholesterol, sodium, total carbohydrate, dietary fiber, total sugars, added sugars, protein, vitamin D, calcium, iron and potassium. The list is closed — 101.9(c) says that “no nutrients or food components other than those listed in this paragraph as either mandatory or voluntary may be included within the nutrition label”.

How does the FDA want the numbers rounded?

In fixed increments, and a different one for almost every nutrient — the table above lists all of them. Calories go to the nearest 5 up to 50 and to the nearest 10 above that; fat to the nearest 0.5 g below 5 g and to the nearest gram above; sodium to the nearest 5 mg up to 140 mg and to the nearest 10 mg above.

Is the % Daily Value one rule or two?

Two, side by side. Whole percent for everything with a Daily Reference Value, 2/5/10-percent increments for the four vitamins and minerals. The FDA’s own sample label only adds up with both.

Can I choose the serving size myself?

No — 101.9(b)(2) sends you to the reference amounts in § 101.12(b). The category decides the amount; you choose only the household measure that comes closest to it.

Does a US panel show kilojoules?

Only in addition to calories, in parentheses. There is no US panel with kilojoules instead of calories.

Sodium or salt?

Sodium, in milligrams. Salt is sodium multiplied by 2.5, so the two figures are never interchangeable.

Is a Nutrition Facts panel the same as a European nutrition declaration?

No. Different reference basis, different energy unit, fifteen entries instead of seven, sodium instead of salt, increments instead of thresholds. Translating the words of one into the other produces a label that is wrong in both places.

Quoted wording taken from 21 CFR 101.9 and 21 CFR 101.12 in the eCFR edition of 1 October 2026. The rounding, the order of the entries and the reference values follow those provisions; whether a particular food needs a panel at all, which column of reference values applies to it and what else its label must carry depends on the food and is not decided here. This page is information, not legal advice — the responsibility for a label stays with the business that puts the food on the market.