EU nutrition label generator

Enter your values per 100 g or 100 ml and get the nutrition declaration of Regulation (EU) No 1169/2011: energy calculated with the official conversion factors, every value rounded the EU way, an optional portion column with %RI, in seven languages.

  • Runs in your browser, nothing is uploaded
  • Annex XIV energy factors
  • EN, DE, FR, IT, ES, NL, PL
Values per 100 g

From your specification, lab results or a recipe calculation, for the food as sold. Leave optional rows empty to keep them off the label.

  • g
  • g
  • g
  • g
  • g
  • g
  • g
  • g
  • g
  • g
  • g
g
Fills the salt field with sodium multiplied by 2.5, as Annex I point 11 defines salt.
Energy

Energy per 100 g2008 kJ / 479 kcal, calculated

Alcohol or erythritol in the product

Both count towards energy only; neither is a row of the declaration.

  • g
  • g
Label

Live previewOpens with sample values

· Check every value against your product before you print or publish it.

How the energy value is calculated

Regulation (EU) No 1169/2011, Annex XIV

The energy on an EU label is not measured; it is calculated from the nutrients with the conversion factors of Annex XIV. Each gram per 100 g is multiplied by its factor, and the products are added up, once for kilojoules and once for kilocalories. The generator does this as you type.

Conversion factors, Annex XIV
Component, per gramkJkcal
Carbohydrate (except polyols)174
Polyols102.4
Protein174
Fat379
Salatrims256
Alcohol (ethanol)297
Organic acid133
Fibre82
Erythritol00

The declared carbohydrate includes polyols, so the generator takes polyols out before it applies the 17 kJ factor and counts them at 10 kJ instead. Erythritol is a polyol with a factor of 0. Salatrims and organic acids are rare in retail foods; if your product contains them, enter your own energy value.

The sample values the tool opens with (an oat biscuit, per 100 g) work out like this:

Rounding rules for the declared values

European Commission guidance document on tolerances for nutrient values declared on a label, December 2012

The regulation does not set the rounding itself. The Commission's guidance for the authorities that check labels does, and labels across the EU follow it. The generator rounds each value of each column with these steps, from the unrounded amount.

Rounding per nutrient
NutrientAmountDeclared as
Energyanynearest 1 kJ and 1 kcal, no decimals
Fat, carbohydrate, sugars, protein, fibre, polyols, starch10 g or morenearest 1 g
under 10 g, above 0.5 gnearest 0.1 g
0.5 g or less"0 g" or "<0.5 g"
Saturates, mono-unsaturates, polyunsaturates10 g or morenearest 1 g
under 10 g, above 0.1 gnearest 0.1 g
0.1 g or less"0 g" or "<0.1 g"
Salt1 g or morenearest 0.1 g
under 1 g, above 0.0125 gnearest 0.01 g
0.0125 g or less"0 g" or "<0.01 g"

Two consequences people often miss. Energy is calculated from the unrounded nutrients, so recalculating it from the rounded label values can give a slightly different number. And the per-portion column is rounded on its own: 24.1 g sugars per 100 g gives 24 g, while 25 g of the same food gives 6.0 g, because 6.025 g is under 10 g.

The same guidance sets the tolerances a declared value may differ from an official analysis, for example ±2 g for carbohydrate, sugars, protein and fibre, and ±1.5 g for fat, when the food contains less than 10 g per 100 g. Rounding does not replace getting the underlying values right (Article 31(4)): they come from the manufacturer's analysis, a calculation from the known values of the ingredients, or generally accepted data.

What an EU nutrition declaration must contain

Regulation (EU) No 1169/2011, Articles 30 to 35 and Annexes XIII and XV

The seven mandatory items

Energy, fat, saturates, carbohydrate, sugars, protein and salt (Article 30(1)), in that order as Annex XV sets it. Energy is given in both kJ and kcal. Only mono-unsaturates, polyunsaturates, polyols, starch, fibre and vitamins and minerals present in significant amounts may be added (Article 30(2)); anything else, such as cholesterol, does not belong in the table.

Per 100 g or per 100 ml first

Values are always expressed per 100 g or per 100 ml (Article 32(2)), as the food is sold, or as prepared when the preparation is described (Article 31(3)). A per-portion column may be added (Article 33) when the portion is quantified on the label and the number of portions in the pack is stated.

Reference intakes

Values may also be shown as a percentage of the reference intakes of Annex XIII Part B: energy 8 400 kJ (2 000 kcal), fat 70 g, saturates 20 g, carbohydrate 260 g, sugars 90 g, protein 50 g and salt 6 g. When they are, the statement "Reference intake of an average adult (8 400 kJ/2 000 kcal)" goes next to them (Article 32(5)). Fibre has no reference intake.

Table, size and wording

The declaration is a table with aligned numbers, or a linear list when space does not allow a table (Article 34(2)). The x-height of the text is at least 1.2 mm, or 0.9 mm on packs whose largest surface is under 80 cm² (Article 13(2) and (3)). Salt means salt equivalent: sodium × 2.5 (Annex I, point 11). The headings in the generator follow the wording of each language version of Annex XV.

Selling online

For food sold at a distance, the mandatory particulars, the nutrition declaration among them, must be available before the purchase is concluded, on the product page or by other clear means, at no extra cost (Article 14(1)). Some foods are exempt from the declaration altogether, such as unprocessed single-ingredient products and food in small quantities that the maker supplies directly to consumers or local shops (Annex V).

This page explains the rules; it is not legal advice. National authorities decide in a specific case.

Selling food on Shopify? Show this table on every product page

A PNG of a nutrition table is invisible to search engines and screen readers. Etiketto: EU Nutrition Labels shows the same information as text on your product pages.

  • Enter fat, saturates, carbohydrate, sugars, fibre, protein and salt per 100 g; the block shows them as an EU nutrition table with energy in kJ and kcal.
  • Ingredients with allergens in bold, and the food business operator, from the same form.
  • One label per variant, so each flavour or size shows its own values.
  • Label wording in 10 languages. Add the Food information block in the theme editor, no theme code.

How Etiketto works

Oat and hazelnut biscuits

200 g pack

Ingredients

Oat flakes (38%), wheat flour, sugar, palm oil, hazelnuts (8%), butter, salt, raising agent: sodium bicarbonate.

Nutrition declaration per 100 g
Energy2008 kJ / 479 kcal
Fat21 g
of which saturates9.8 g
Carbohydrate63 g
Sample data. An illustration of food information as text on a product page.

Questions about EU nutrition labels

Something else? Write to hello@reply.getstorefleet.com.

How is energy calculated on an EU nutrition label?

Annex XIV of Regulation (EU) No 1169/2011 gives a factor per gram: fat 37 kJ (9 kcal), carbohydrate except polyols 17 kJ (4 kcal), polyols 10 kJ (2.4 kcal), protein 17 kJ (4 kcal), fibre 8 kJ (2 kcal), alcohol 29 kJ (7 kcal), organic acid 13 kJ (3 kcal), salatrims 25 kJ (6 kcal) and erythritol 0 kJ. Multiply each amount per 100 g by its factor and add them up, separately for kJ and kcal.

Which nutrients must an EU nutrition declaration show?

Article 30(1) makes seven mandatory: energy, fat, saturates, carbohydrate, sugars, protein and salt. Article 30(2) allows only these to be added: mono-unsaturates, polyunsaturates, polyols, starch, fibre, and vitamins and minerals present in significant amounts.

How do I round values on an EU nutrition label?

The European Commission guidance on tolerances (2012) rounds energy to the nearest whole kJ and kcal. Fat, carbohydrate, sugars, protein, fibre, polyols and starch: 10 g or more to the nearest 1 g, under 10 g and above 0.5 g to the nearest 0.1 g, 0.5 g or less as 0 g or <0.5 g. Saturates, mono-unsaturates and polyunsaturates use the same steps with 0.1 g as the lower limit. Salt: 1 g or more to the nearest 0.1 g, under 1 g and above 0.0125 g to the nearest 0.01 g, 0.0125 g or less as 0 g or <0.01 g.

Is a per-portion column required?

No. Values per 100 g or per 100 ml are mandatory (Article 32(2)). Values per portion may be given in addition (Article 33), as long as the portion is quantified on the label and the number of portions in the pack is stated.

What does %RI mean on a nutrition label?

%RI is the share of the reference intake of an average adult in Annex XIII Part B: energy 8 400 kJ (2 000 kcal), fat 70 g, saturates 20 g, carbohydrate 260 g, sugars 90 g, protein 50 g and salt 6 g. When %RI is shown, the label must carry the statement Reference intake of an average adult (8 400 kJ/2 000 kcal) next to it (Article 32(5)).

How do I convert sodium to salt?

Multiply sodium by 2.5 (Annex I, point 11). A product with 0.4 g sodium per 100 g declares 1.0 g salt.

Is the data I enter stored anywhere?

No. The calculation runs in your browser and nothing you type is sent to a server. Reloading the page clears it.

Next: the allergens in your ingredient list

The other half of an EU food label.

  1. EU allergen checker

    Paste an ingredient list and see the 14 allergens of Annex II in bold, in six languages.

  2. EU nutrition declaration format: how to show it on your online shop

    The required nutrients, order, units and per 100 g basis, and how to show them as a table on Shopify.

  3. EU nutrition label vs US Nutrition Facts

    Why a per-serving US panel does not work for EU shoppers, and what changes.