EU compliance6 min read

Why US Nutrition Facts Differ From the EU Nutrition Table

Your US Nutrition Facts differ from the EU nutrition table? Check the basis, units, salt vs sodium, fibre and rounding, then decide which value to fix.

In this guide
  1. Why do US Nutrition Facts and the EU nutrition table show different numbers?
  2. Is it a units problem?
  3. Is it the serving basis?
  4. Why do carbohydrate and calories still differ after converting?
  5. Can rounding explain the difference?
  6. How do I find and fix the value that is really wrong?
  7. Where does Etiketto fit?
  8. FAQ
  9. Check one product, then the rest

US Nutrition Facts often differ from the EU nutrition table for the same food, and most of the time neither one is wrong. The two formats use a different basis (per serving vs per 100 g or 100 ml), different units (sodium in mg vs salt in g), a different meaning of “carbohydrate” and their own rounding rules. Check those four things first. Only change a value when your lab report or supplier specification says it is wrong.

This guide is for Shopify food shops that sell to both the US and the EU and keep both sets of numbers. It explains why the two tables disagree, gives a checklist for finding a real mistake and shows how to correct the EU table on your product pages.

Written by the StoreFleet team. The first draft was AI-assisted and a person reviewed it. This is general information, not legal advice. It does not cover FDA requirements, and following it does not guarantee compliance in either market. Points marked (verify) are ones we have not checked line by line. Check them against the current text of Regulation (EU) No 1169/2011 and the FDA’s Nutrition Facts label guidance, or with a qualified adviser.

Why do US Nutrition Facts and the EU nutrition table show different numbers?

The two tables describe the same food in two different ways. These are the differences that change the numbers:

US Nutrition Facts EU nutrition table
Basis Per serving (serving size set from reference amounts) Per 100 g or per 100 ml
Energy Calories (kcal) kJ and kcal
Sodium / salt Sodium in mg Salt in g (sodium × 2.5)
Carbohydrate Total carbohydrate, including dietary fibre Carbohydrate, excluding fibre
Fibre in energy Depends on the calculation method (verify) Counted at 2 kcal (8 kJ) per gram
Rounding FDA rounding increments, e.g. calories to the nearest 5 or 10 EU guidance on tolerances, e.g. energy to the nearest whole kJ/kcal

So a 30 g serving of granola with 130 calories on the US panel can be about 430 kcal per 100 g on the EU table, and both are right. For a fuller side-by-side, see our guide to the EU nutrition label vs the US Nutrition Facts panel.

Is it a units problem?

Units cause most of the mismatches we see:

  • kJ in a kcal field. EU tables show both kJ and kcal. 1 kcal is about 4.184 kJ, so a kJ number entered as kcal looks about four times too high.
  • Salt vs sodium. Annex I of Regulation (EU) No 1169/2011 defines salt as sodium × 2.5. 400 mg of sodium is 1.0 g of salt. The two numbers should never be the same, and a sodium value typed into the salt field is a common error.
  • g vs mg. US sodium is in mg. EU salt is in g. 400 entered as grams of salt instead of 0.4 is a thousandfold error.

Is it the serving basis?

The US panel is per serving. The EU table is per 100 g or per 100 ml. To compare them, convert one to the other:

EU value per 100 g = US value per serving ÷ serving size in g × 100

Example: 6 g of fat in a 40 g serving is 6 ÷ 40 × 100 = 15 g of fat per 100 g. If your EU table shows 6 g, the per-serving value was copied across without converting.

For liquids, use the serving size in ml and compare per 100 ml.

Why do carbohydrate and calories still differ after converting?

Two definitions differ even when the basis and units match:

  • Carbohydrate. US total carbohydrate includes dietary fibre. EU carbohydrate does not; fibre is its own line. A product with 60 g total carbohydrate and 8 g fibre per 100 g shows about 52 g carbohydrate on the EU table.
  • Energy. The EU calculates energy with fixed conversion factors in Annex XIV of Regulation (EU) No 1169/2011: 9 kcal per gram of fat, 4 per gram of carbohydrate and protein, 2 per gram of fibre. US calorie values can be worked out with other permitted methods (verify). Expect the energy figures to differ by a few percent even when every nutrient matches.

Can rounding explain the difference?

Yes, for small gaps. Each market rounds in its own steps, and the US panel rounds per serving before you scale it up:

  • US. Calories above 50 are rounded to the nearest 10, and sodium above 140 mg to the nearest 10 mg (verify).
  • EU. The European Commission’s guidance on tolerances rounds energy to the nearest whole kJ/kcal and, for example, salt below 1 g to the nearest 0.01 g (verify).

A 30 g serving with 133 calories is shown as 130 calories. Scaled to 100 g, that is 433 kcal, while the unrounded value is 443 kcal. A gap like that comes from rounding. A gap of 30% does not.

How do I find and fix the value that is really wrong?

Work through these steps for one product at a time.

  1. Pick your source of truth. Use the lab report, supplier specification or recipe calculation, ideally with unrounded values. Don’t decide by copying one table into the other.
  2. Convert to the same basis. Turn the US per-serving values into per 100 g or per 100 ml.
  3. Check the units. Look for kJ vs kcal, g vs mg and salt vs sodium.
  4. Adjust carbohydrate for fibre. Subtract fibre from US total carbohydrate before comparing with the EU carbohydrate line.
  5. Allow for rounding. If the remaining gap is within the rounding steps, it is expected. Write down why, in case a customer or authority asks.
  6. Correct the wrong value from your source. Fix whichever table disagrees with the source, not whichever one looks odd.
  7. Check the live product page. Open the product on your storefront and confirm the EU table shows the values you meant, in the right rows.

While you are in the EU values, also check the “of which” lines: saturates can’t be higher than fat, and sugars can’t be higher than carbohydrate. See nutrition label won’t save? Fix the ‘of which’ values.

Where does Etiketto fit?

Etiketto: EU Nutrition Labels is a free Shopify app for food shops selling into the EU. It shows the food information Regulation (EU) No 1169/2011 requires on your product pages: a nutrition table, ingredients with allergens in bold, and the operator.

You enter the EU values from your own specification or lab results, so step 6 above is where you correct the EU table. Etiketto does not convert US Nutrition Facts into EU values, does not calculate your nutrition values and does not make a page compliant by itself. The numbers you enter decide what the shopper sees.

FAQ

Should the calories on the US panel match the kcal on the EU table? Only after you convert the US value from per serving to per 100 g or 100 ml. Even then, rounding and different energy calculations can leave a gap of a few percent.

Why is my EU salt value bigger than the sodium number? Because salt is sodium × 2.5, and the units differ. 400 mg of sodium is 1.0 g of salt.

Why is EU carbohydrate lower than US total carbohydrate? The EU carbohydrate line excludes fibre, while US total carbohydrate includes it.

Which table should I change when they disagree? Neither, until you have checked the source data. Change the one that doesn’t match your lab report or supplier specification.

Can I copy the US panel onto an EU product page? No. The EU table needs its own basis, units and layout. Our guide to the EU nutrition label vs US Nutrition Facts shows what changes.

Check one product, then the rest

Take one product that sells in both markets, run the seven steps and fix the value your source says is wrong. Then do the same for the rest of the catalogue. To show the EU nutrition table, ingredients with bold allergens and the operator as real text on your product pages, install Etiketto: EU Nutrition Labels from the Shopify App Store.