EU nutrition label energy conversion factors (Annex XIV)
The energy conversion factors every EU nutrition label is calculated from, quoted from Annex XIV of Regulation (EU) No 1169/2011, with one column added: how far each legal factor pair sits from the physical 4.184 kJ per kcal. That column is why the kJ and the kcal printed on a packet do not divide into one another cleanly.
Annex XIV energy conversion factors
The kJ and kcal columns are quoted from Annex XIV of Regulation (EU) No 1169/2011. The last two columns are calculated from them: the ratio each pair implies, and how far that ratio sits from the thermochemical 4.184 kJ per kcal. Erythritol is assigned zero energy, so no ratio exists for it.
| Nutrient | kJ per gram | kcal per gram | Implied kJ per kcal | Gap versus 4.184 |
|---|---|---|---|---|
| Carbohydrate (except polyols) | 17 | 4 | 4.25 | +1.58% |
| Polyols | 10 | 2.4 | 4.167 | -0.41% |
| Protein | 17 | 4 | 4.25 | +1.58% |
| Fat | 37 | 9 | 4.111 | -1.74% |
| Salatrims | 25 | 6 | 4.167 | -0.41% |
| Alcohol (ethanol) | 29 | 7 | 4.143 | -0.98% |
| Organic acid | 13 | 3 | 4.333 | +3.57% |
| Fibre | 8 | 2 | 4 | -4.40% |
| Erythritol | 0 | 0 | not applicable | not applicable |
Reuse this data
Published under the Creative Commons Attribution 4.0 International (CC BY 4.0) licence. Copy it, adapt it, republish it, commercial use included, as long as you credit UnitGlide, https://unitglide.net and link back to this page. No permission request and no fee.
The factors themselves are the property of the European Union, reproduced here under the EUR-Lex reuse terms, which permit reproduction provided the source is acknowledged. Only the official text published in the Official Journal of the European Union is authentic.
Copy this
<iframe src="https://unitglide.net/embed/reference/eu-energy-conversion-factors"
width="100%" height="520" loading="lazy"
style="border:1px solid #e2e6ec;border-radius:12px"
title="EU nutrition label energy conversion factors (Annex XIV)"></iframe>
<p><a href="https://unitglide.net/reference/eu-energy-conversion-factors">EU nutrition label energy conversion factors (Annex XIV)</a> by UnitGlide, CC BY 4.0</p>Result
The frame is served from this site, so it keeps the attribution link attached and picks up any correction automatically. If you would rather hold the numbers yourself, the whole table is on this page under the same licence.
What the annex actually specifies
Article 31 of Regulation (EU) No 1169/2011 requires the energy value on a nutrition declaration to be calculated using the conversion factors in Annex XIV, and to be given in both kilojoules and kilocalories. The annex sets a kJ per gram figure and a kcal per gram figure for each energy-yielding nutrient, and both are applied to the same nutrient content.
That is the detail that surprises people: the two numbers on the label are computed in parallel from the composition, not converted from each other. A manufacturer does not work out the kilojoules and then divide by 4.184 to get the kilocalories. Each column of the annex is applied on its own, and whatever ratio falls out of that is what appears on the packet.
The ratios are not consistent across nutrients either. Carbohydrate and protein at 17 and 4 imply 4.25 kJ per kcal. Fat at 37 and 9 implies 4.111. Fibre at 8 and 2 implies exactly 4. Three different ratios in one table, none of them 4.184.
How to use the gap column
The last column is the practical one. Take a food that is almost entirely carbohydrate or protein: converting its printed kilojoules with the physical 4.184 lands about 1.58 percent above the printed kilocalories. Take a food that is almost entirely fat and you land about 1.74 percent below it. Neither result is wrong; they are answers to two different questions.
For a mixed food the discrepancy sits between those bounds, weighted by composition, which is why a real packet usually shows a gap of a percent or so rather than a clean match. Anyone building a nutrition tool, a recipe calculator or a food database needs to decide which convention it follows and say so, because a user comparing against a label will notice the difference.
If you are reproducing label figures, use the annex. If you are converting a measured energy value from a bomb calorimeter or a physics problem, use the thermochemical calorie. Mixing the two inside one calculation is the error this table exists to prevent.
Where the individual factors come from
The main factors are the Atwater system, the nineteenth-century work that established roughly 4 kcal per gram for carbohydrate and protein and 9 for fat, adjusted for digestibility. The regulation rounds those to whole numbers in both units, which is where the ratio drift starts.
The remaining rows cover nutrients that yield less than their bulk suggests. Polyols and fibre are only partly metabolised, salatrims are structured fats designed to release less energy, and organic acids sit low on the scale. Erythritol is the only entry assigned zero, which is why erythritol-sweetened products can declare no energy from the sweetener at all.
Alcohol at 29 kJ and 7 kcal per gram is the one most people underestimate. Per gram it carries nearly as much energy as fat, and far more than sugar, which matters whenever a drink is assessed on its label rather than its ingredients.
Frequently asked questions
Why does my kJ to kcal conversion not match the food label?
Because the label's two figures are calculated independently from the nutrient content using the Annex XIV factors, not converted from one another. Those factors imply 4.25 kJ per kcal for carbohydrate and protein and 4.111 for fat, while the physical conversion is 4.184, so a converted value typically differs from the printed one by a percent or two.
What are the EU energy conversion factors?
The values in Annex XIV of Regulation (EU) No 1169/2011: carbohydrate except polyols 17 kJ/g and 4 kcal/g, protein the same, fat 37 and 9, alcohol 29 and 7, polyols 10 and 2.4, organic acid 13 and 3, fibre 8 and 2, salatrims 25 and 6, and erythritol 0.
Is 1 kcal exactly 4.184 kJ?
Yes, for the thermochemical calorie, which is defined as exactly 4.184 joules. The international steam table calorie of 4.1868 J appears in older engineering literature, a difference of about seven hundredths of a percent. Neither figure is what an EU label divides by.
Does the same table apply outside the EU?
No. The annex is EU law and also applies in the EEA and, in retained form, in the United Kingdom. Other jurisdictions set their own factors and their own rounding rules, and US labels declare Calories only, with no kilojoule figure to compare against.
Can I republish this table?
Yes. The underlying factors are EU legislation, which EUR-Lex permits reuse of provided the source is acknowledged, and the table as compiled here, including the calculated columns, is published under Creative Commons Attribution 4.0 International (CC BY 4.0). Credit UnitGlide, https://unitglide.net and the European Union as the source of the factors.
Sources
- Regulation (EU) No 1169/2011, Annex XIV (EUR-Lex), for the kJ per gram and kcal per gram factor for every nutrient in the table.
- NIST Special Publication 811, for the thermochemical calorie, exactly 4.184 J, which the gap column is measured against.
- EUR-Lex: reuse of EUR-Lex content, for the terms under which the regulation's text and tables may be reproduced.