TempoLife › Features › Nutrition label generator
Nutrition label generator
Paste a recipe in grams, give the finished batch weight and the portion size, and get the EU nutrition declaration per 100 g and per portion — in the order, wording and rounding the regulation asks for.
Showing a worked example — a 1 kg seed and raisin bar cut into 50 g bars. Replace the lines above with your own recipe and press the button.
What each line matched
| You typed | Matched food | How | Grams | % of recipe | Protein /100 g | Fat /100 g | Carb /100 g |
|---|---|---|---|---|---|---|---|
| sunflower-seeds | Sunflower seeds | exact slug | 250 | 25.0 | 20.8 | 51.5 | 11.4 |
| pumpkin-seeds | Pumpkin seeds | exact slug | 150 | 15.0 | 30.2 | 49.1 | 4.7 |
| almonds | Almonds | exact slug | 200 | 20.0 | 21.2 | 49.9 | 9.1 |
| raisins | Raisins | exact slug | 300 | 30.0 | 3.3 | 0.3 | 74.8 |
| honey | Honey | exact slug | 100 | 10.0 | 0.3 | 0.0 | 82.2 |
Nutrition declaration
Seed and raisin bar
| Nutrition declaration | Per 100 g | Per portion (50 g) |
|---|---|---|
| Energy | 2 044 kJ / 491 kcal | 1 022 kJ / 245 kcal |
| Fat | 30 g | 15 g |
| of which saturates | 3.2 g | 1.6 g |
| Carbohydrate | 36 g | 18 g |
| of which sugars | 30 g | 15 g |
| Fibre | 6.9 g | 3.5 g |
| Protein | 15 g | 7.5 g |
| Salt | 0.03 g | 0.01 g |
Calculated from reference composition data, not from analysis of this product. The producer remains responsible for the label.
The order and wording the regulation requires
Annex XV of Regulation (EU) No 1169/2011 fixes both the order of the lines and the words used. The mandatory declaration is energy, fat, of which saturates, carbohydrate, of which sugars, protein and salt, in that order. Fibre, mono-unsaturates, polyunsaturates, polyols and starch are optional additions, and each has a fixed place in the list — fibre sits between sugars and protein, which is where it appears above. Energy is stated in kilojoules and kilocalories together, kJ first. Everything else is stated in grams. The declaration is given per 100 g or per 100 ml, and a per-portion column may be added beside it, as long as the number of portions in the pack is stated.
The word "salt" is used, not "sodium". Salt is calculated as sodium multiplied by 2.5, and it includes the sodium naturally present in the ingredients, not only the salt you added. That is why a recipe with no added salt still shows a salt figure here.
How the numbers are worked out
Each ingredient contributes its composition per 100 g scaled by its weight. Those contributions are added, then divided by the finished batch weight — not by the sum of the raw ingredients — so anything that evaporated during cooking has already concentrated the result. Per portion is the same total scaled to your portion size.
Energy is not summed from the ingredients' own calorie figures. It is recalculated from the declared macronutrients with the Annex XIV factors:
| Per gram of | Energy (kJ) | Energy (kcal) |
|---|---|---|
| Fat | 37 kJ | 9 kcal |
| Carbohydrate (available) | 17 kJ | 4 kcal |
| Protein | 17 kJ | 4 kcal |
| Fibre | 8 kJ | 2 kcal |
The rounding rules applied above
The Commission's guidance on tolerances sets how many figures a declaration should carry. Rounding to more decimal places than this implies a precision the calculation does not have.
| Value | Rounded to |
|---|---|
| Energy (kJ and kcal) | Nearest whole unit |
| Fat, saturates, carbohydrate, sugars, fibre, protein — 10 g or more | Nearest 1 g |
| The same nutrients, 0.5 g up to 10 g | Nearest 0.1 g |
| The same nutrients, below 0.5 g | "<0.5 g", or 0 g |
| Salt, 1 g or more | Nearest 0.1 g |
| Salt, 0.0125 g up to 1 g | Nearest 0.01 g |
| Salt, below 0.0125 g | 0 g |
Source: Regulation (EU) No 1169/2011 on the provision of food information to consumers — Annex XV (expression and presentation of the nutrition declaration) and Annex XIV (conversion factors) · checked 2026-09-02
Source: European Commission guidance document for competent authorities on the setting of tolerances for nutrient values declared on a label (December 2012) — rounding guidance · checked 2026-09-02
Source: Composition values: USDA FoodData Central, SR Legacy source family, via the TempoLife food database · checked 2026-09-02
What this page does not do
This is a calculation aid, not a compliant label and not legal advice. Legal responsibility for the label — its accuracy, its allergen emphasis, its ingredient list and everything else on the pack — stays with the food business operator placing the product on the market.
- No ingredient list or allergen emphasis. A pack needs the ingredients in descending weight order, with the fourteen listed allergens emphasised in the list itself. That is a separate legal requirement and this page does not produce it.
- No QUID. Where an ingredient is named or pictured on the front, its percentage has to be declared. The "% of recipe" column above is raw-weight share, which is a starting point, not a QUID figure.
- No analysis. These are reference composition values for generic ingredients. Your supplier's oats are not the database's oats. Declared values have to fall within published tolerances, and analysis is how a producer usually gets there.
- No claims. Nutrition and health claims have their own conditions and their own authorised wording. Nothing here authorises a claim.
- Nothing is stored. The recipe travels in the page address and is calculated on the fly. No account, no saved copy.
Frequently asked questions
Is this label legally compliant?
No. It is a calculation aid. It works out the figures in the required order, wording, units and rounding, but legal responsibility for what appears on a pack stays with the food business operator who puts it on the market — including the ingredient list, allergen emphasis, QUID, name, storage, durability and the origin declaration, none of which this page produces.
Why does the energy differ from adding up the calories of my ingredients?
Because a declaration is not a sum of calories. Energy is calculated from the declared macronutrients using the conversion factors in Annex XIV — 37 kJ/9 kcal per gram of fat, 17 kJ/4 kcal for carbohydrate and protein, 8 kJ/2 kcal for fibre. Small differences from a database calorie figure are expected and are not an error.
Why is my carbohydrate lower than the database says?
The food data stores carbohydrate by difference, which includes fibre. An EU declaration states available carbohydrate, with fibre declared separately, so fibre is subtracted here. That is why the two numbers do not match.
What if the batch weighs less than the ingredients?
That is normal for anything baked or simmered — water leaves. Enter the finished weight and the declaration is expressed against it, which concentrates every nutrient per 100 g. If you leave batch weight blank, the sum of the ingredient weights is used instead.
Are these values good enough for a real pack?
They are calculated reference values from a public food composition database, not an analysis of your product. Recipes, suppliers, varieties and processes all move real numbers. Where accuracy matters — or where a nutrition or health claim is made — laboratory analysis is the usual route, and tolerance rules apply to whatever you declare.
Related tools
Foods by diet and allergen
Filter the same food database by written vegan, gluten-free, lactose-free and low-FODMAP rules.
Weekly meal plans
Seven-day plans with per-day totals and a consolidated shopping list.
Food database
Per-100 g nutrition for every ingredient this generator can match, with its provenance.
Selling it is one thing, eating it is another
TempoLife logs what you actually eat against the same food database this generator reads, so a recipe you developed can be followed as well as declared.