LabelMath

21 CFR 101.9(c) and (d)

FDA rounding rules

FDA rounding is not decimal rounding. Each nutrient has its own increment ladder in 21 CFR 101.9(c), with different thresholds and, in three cases, a phrase instead of a number. Below is every rule quoted from the current regulation, a checker that applies them to any amount you type, and the two separate percent Daily Value rules that operate on the same panel.

Check any amount against the rule

Printed on the label

Sodium 140mg6%

143.6mgAbove 140 mg rounds to the nearest 10 mg increment.

21 CFR 101.9(c)(4)

140mg ÷ Daily Value = 6.087%6%

21 CFR 101.9(d)(7)(ii)

143.6 mg of sodium is loaded by default because it sits just past the hinge at 140 mg. On the ladder below 140 it would round up to 145; on the ladder above 140 it rounds down to 140. Four tenths of a milligram either side of the boundary changes the printed number by 5.

The whole table

Rounding increments for every nutrient on a Nutrition Facts panel
NutrientUnitBandsParagraph
Caloriescal
  • under 5 → 0
  • 5 to 50 → nearest 5
  • above 50 → nearest 10
101.9(c)(1)
Total fatg
  • under 0.5 → 0
  • 0.5 to 5 → nearest 0.5
  • 5 and above → nearest 1
101.9(c)(2)
Saturated fatg
  • under 0.5 → 0
  • 0.5 to 5 → nearest 0.5
  • 5 and above → nearest 1
101.9(c)(2)(i)
Trans fatg
  • under 0.5 → 0
  • 0.5 to 5 → nearest 0.5
  • 5 and above → nearest 1
101.9(c)(2)(ii)
Cholesterolmg
  • under 2 → 0
  • 2 to 5 → “less than 5 mg”
  • above 5 → nearest 5
101.9(c)(3)
Sodiummg
  • under 5 → 0
  • 5 to 140 → nearest 5
  • above 140 → nearest 10
101.9(c)(4)
Total carbohydrateg
  • under 0.5 → 0
  • 0.5 to 1 → “less than 1 g”
  • 1 and above → nearest 1
101.9(c)(6)
Dietary fibreg
  • under 0.5 → 0
  • 0.5 to 1 → “less than 1 g”
  • 1 and above → nearest 1
101.9(c)(6)(i)
Total sugarsg
  • under 0.5 → 0
  • 0.5 to 1 → “less than 1 g”
  • 1 and above → nearest 1
101.9(c)(6)(ii)
Added sugarsg
  • under 0.5 → 0
  • 0.5 to 1 → “less than 1 g”
  • 1 and above → nearest 1
101.9(c)(6)(iii)
Proteing
  • under 0.5 → 0
  • 0.5 to 1 → “less than 1 g”
  • 1 and above → nearest 1
101.9(c)(7)
Vitamin Dmcg
  • under 1 → nearest 0.1
  • 1 and above → whole mcg
101.9(c)(8)(iii)
Calcium, iron, potassiummg
  • under 1 → nearest 0.1
  • 1 and above → whole mg
101.9(c)(8)(iii)

Worked examples

Each of these is computed by the same code that renders the panels on this site, so nothing on this page can drift away from what the tool actually prints.

Worked rounding examples
NutrientActualDeclaredWhy
Calories4.60Under 5 calories is declared as zero. A splash of vanilla in a 36-cookie batch.
Calories47.5505 to 50 calories rounds to the nearest 5-calorie increment. A tie on the 5-calorie ladder — half rounds up.
Calories164.9160Above 50 calories rounds to the nearest 10-calorie increment. Above 50, so the ladder widens to 10.
fat0.490Under 0.5 g of fat is declared as zero. Just under the zero threshold.
fat4.7650.5 g up to 5 g rounds to the nearest 0.5 g increment. Still on half grams — one hundredth from a whole gram.
fat5.255 g and above rounds to the nearest 1 g increment. Over the 5 g hinge, so whole grams now.
chol3.1less than 52 to 5 mg is declared as “less than 5 mg”. In the band with its own wording.
sodium139.91405 to 140 mg rounds to the nearest 5 mg increment. The last value on the 5 mg ladder.
sodium143.6140Above 140 mg rounds to the nearest 10 mg increment. Over 140, so the 10 mg ladder rounds it down.
fiber0.83less than 10.5 g up to 1 g is declared as “less than 1 g”. Between 0.5 and 1 g, so it gets the phrase.
protein2.5131 g and above rounds to the nearest 1 g increment. Whole grams, half rounds up.

The two percent Daily Value rules

Nutrients with a Daily Reference Value — fat, saturated fat, cholesterol, sodium, carbohydrate, fibre, added sugars and protein — round their percentage to the nearest whole percent.

A listing of the percent of the DRV as established in paragraphs (c)(7)(iii) and (c)(9) of this section shall be given in a column aligned under the heading “% Daily Value” … with the percent expressed to the nearest whole percent for each nutrient declared.
21 CFR 101.9(d)(7)(ii)

Vitamin D, calcium, iron and potassium do not. They sit in the Reference Daily Intake table and their percentages move in steps.

The percentages for vitamins and minerals shall be expressed to the nearest 2-percent increment up to and including the 10-percent level, the nearest 5-percent increment above 10 percent and up to and including the 50-percent level, and the nearest 10-percent increment above the 50-percent level.
21 CFR 101.9(c)(8)(iii)

The potassium rule that no longer exists

Search for FDA rounding rules and you will find potassium listed with sodium’s ladder: zero below 5 mg, nearest 5 mg to 140 mg, nearest 10 mg above. That was 21 CFR 101.9(c)(5) before the 2016 final rule. When potassium became a mandatory declaration it moved into the vitamins and minerals paragraph at 101.9(c)(8), and the old paragraph did not survive with it. Current 101.9(c)(5) is fluoride.

What applies now is the level of significance in the 101.9(c)(8)(iv) table — whole milligrams — plus the clause permitting an additional level of significance where whole units are too coarse to express a small amount. FDA’s own sample label declares 235 mg, which whole-milligram rounding produces. This site follows the regulation as it currently reads and says so rather than repeating the old table.

Frequently asked questions

What are the FDA rounding rules for a nutrition label?
Each nutrient has its own increment ladder in 21 CFR 101.9(c). Calories: under 5 is zero, 5 to 50 rounds to the nearest 5, above 50 to the nearest 10. Fats: under 0.5 g is zero, then half grams to 5 g, then whole grams. Cholesterol: under 2 mg is zero, 2 to 5 mg is 'less than 5 mg', above that nearest 5 mg. Sodium: under 5 mg is zero, 5 to 140 mg nearest 5 mg, above 140 mg nearest 10 mg. Carbohydrate, fibre, sugars, added sugars and protein: under 0.5 g is zero, 0.5 to 1 g is 'less than 1 g', then whole grams.
Does the percent Daily Value round to the nearest whole percent?
For nutrients with a Daily Reference Value, yes — 21 CFR 101.9(d)(7)(ii). For vitamins and minerals, no. 21 CFR 101.9(c)(8)(iii) puts them on 2 percent increments up to 10 percent, 5 percent increments from there to 50 percent, and 10 percent increments above 50 percent. Both rules operate on the same panel.
Is there a special rounding rule for potassium?
Not any more. The pre-2016 regulation had a sodium-style 5 and 10 milligram ladder for potassium at 21 CFR 101.9(c)(5), but the 2016 final rule moved potassium into the mandatory mineral list at 101.9(c)(8) and that paragraph went with it. Potassium's quantitative amount now follows the level of significance in the 101.9(c)(8)(iv) table, which is whole milligrams, and its percentage follows the 2/5/10 increments. Plenty of tools and articles still quote the old rule.
Do I round from the true value or from the already-rounded one?
Always from the true unrounded value, once. Rounding twice compounds the error: 4.4 g rounded to 4.5 g and then to 5 g is a gram too high. The only place a rounded number is used again is the percent Daily Value, where 21 CFR 101.9(d)(7)(ii) and (c)(8)(iii) both explicitly allow either the declared amount or the actual amount to be the divisor.
What happens exactly on a boundary like 2.5 g of fat?
It rounds up to 2.5 g — which in that case is itself, since 2.5 is already a half-gram increment. The genuinely interesting boundary is a tie such as 7.5 calories, which sits exactly between 5 and 10. The regulation says 'nearest' without naming a tie-break, so the conventional half-up applies and it becomes 10. This tool uses half-up everywhere and guards against the floating-point error that would otherwise push some ties the wrong way.

Want to see these rules operating on a real recipe? The nutrition facts generator prints the paragraph beside every line of a finished panel.

Keep going