Nutrients/Energy (expected-ico)

From Open Food Facts wiki
Jump to navigation Jump to search

The energy of a product is caused/produced by one or more of its ingredients, mainly fat, carbohydrates, proteins and fibre. The relation between the energy and these nutrients is straightforward and allows us to predict the energy from these nutrients. This gives us a check on the published energy of a product.

Formula

The official formula published by the EU (ICOAnnex 5) is: Energy = ((carbohydrates - polyols)*17) + (polyols * 10) + (proteins * 17) + (fat * 37) + (fiber * 8) + (alcohol * 29) With

  • Energy in kJoule;
  • carbohydrates in g/100g;
  • polyols - the polyols which are counted as carbohydrates, but contribute less on g/100g
  • proteins in g/100g;
  • fat in g/100g;
  • fiber in g/100g;
  • alcohol in %Vol;

Examples

For specific simple categories the relation (fractions) between the nutrients is probably fixed. Thus each nutrient will contribute a certain percentage.

Canned Asparagus

 
Energy comparison

The plot shows the published energy versus the expected energy for the category Canned Asparagus. As expected there is a pretty good relation between the two variables. The line shows the linear fit. There are a few products which lie well off the fit and should be marked as suspicious. Note that there seem to be two lines, one slightly lower than the other. This is more clearly visible when one plots the difference between the energies in a violin plot (see below).

Data quality

The expected energy can be compared to published energy. If the two deviate too much, there will be an error in the ingredients. But what is too much? What boundaries should be used to claim this? Again some practical information is needed for various categories.

Canned Asparagus deviations

The image shows the difference the expected and published energies for the category Canned Asparagus. Only the products that have published fiber are included. The distribution is indeed around the expected zero with quartiles around ±10 kJ. There seem to be two groups: one around +10kJ and one around -8kJ. The spread seems very large (±20 kJ) for a product that is on average 75kJ. This implies that a boundary of ±30% is appropriate for this category, otherwise to many false positives will be tagged.