A food's ingredients are listed by their common or usual names in descending order of predominance by weight: the ingredient that weighs most in the recipe comes first, the one that weighs least comes last. Ingredients at 2% or less can be gathered at the end after a statement such as "Contains 2% or less of", in any order. An ingredient that has its own ingredients, dried cranberries with their sugar and oil, lists them in parentheses after its name, or spreads them through the list in their own places. Spices and flavors can be listed as "spice" or "natural flavor". In the example below, a granola maker's 30-pound mix becomes an ingredient list two ways. Below are the rules, the example, the mistakes that come up, and a free calculator that sorts a recipe into a list.
The short version
- List ingredients by common or usual name, heaviest first, by weight in the recipe.
- Ingredients at 2% or less may go at the end after "Contains 2% or less of", in any order.
- No ingredient after that statement may be more than 2%; 1.5%, 1% or 0.5% can be used instead.
- An ingredient with its own ingredients lists them in parentheses, or spreads them through the list.
- Use specific names, not collective ones, except for spices, flavors, colors and some others.
- The allergen declaration goes with the list, and the list goes on the front or the information panel.
- TaroStack keeps each recipe by weight, versioned, so the list follows the recipe. More below.
The rules
| Rule | What it says |
|---|---|
| Order | Descending order of predominance by weight |
| Names | Common or usual names, specific rather than collective |
| 2% or less | May follow "Contains 2% or less of" (or 1.5%, 1%, 0.5%) at the end, none above the stated threshold |
| Ingredients with their own ingredients | Name, then its ingredients in parentheses in their own order; or each one placed in the main list by its total weight |
| Spices and flavors | May be listed as "spice", "natural flavor" or "artificial flavor" |
| Where | The principal display panel or the information panel |
The order, names, threshold and sub-ingredients are in 21 CFR 101.4; spices and flavors in 21 CFR 101.22(h). Colors and chemical preservatives have their own naming rules there. This is general information, not legal advice.
An example: a granola mix
Cache Valley Granola Co., a made-up granola maker in Logan, Utah, I use in these examples, mixes 30 pounds at a time:
| Ingredient | Weight | Share | Place |
|---|---|---|---|
| Rolled oats | 13.2 lb | 44.0% | 1 |
| Honey | 4.2 lb | 14.0% | 2 |
| Almonds | 3.6 lb | 12.0% | 3 |
| Sunflower oil | 2.7 lb | 9.0% | 4 |
| Pumpkin seeds | 1.8 lb | 6.0% | 5 |
| Coconut | 1.5 lb | 5.0% | 6 |
| Dried cranberries (cranberries, sugar, sunflower oil) | 1.5 lb | 5.0% | 7 |
| Brown sugar | 1.2 lb | 4.0% | 8 |
| Sea salt | 0.15 lb | 0.5% | 9 |
| Cinnamon | 0.10 lb | 0.3% | 10 |
| Vanilla extract | 0.05 lb | 0.2% | 11 |
The list, plain: Ingredients: rolled oats, honey, almonds, sunflower oil, pumpkin seeds, coconut, dried cranberries (cranberries, sugar, sunflower oil), brown sugar, sea salt, cinnamon, vanilla extract.
With the 2% statement: Ingredients: rolled oats, honey, almonds, sunflower oil, pumpkin seeds, coconut, dried cranberries (cranberries, sugar, sunflower oil), brown sugar. Contains 2% or less of: sea salt, cinnamon, vanilla extract.
Honey comes second, though the granola doesn't taste mostly of honey, because it's heavier than the almonds. Coconut and the cranberries weigh the same, so either can come first. The brown sugar is 4%, too much to go after the statement. Cinnamon could also be listed as "spice". The almonds are a tree nut, so the label also says "Contains: almonds." How the mix is made in bulk is in how to make granola in bulk, and the rest of the label in food labeling requirements for small business.
Mistakes that come up
| Mistake | Why it's wrong |
|---|---|
| Listing by volume, cups instead of pounds | The order is by weight |
| Putting the ingredient you want noticed first | The heaviest goes first, whatever the marketing says |
| "Natural sweetener" for honey | A collective name where a specific one is required |
| Leaving out the cranberries' sugar and oil | An ingredient's own ingredients are declared too |
| A 3% ingredient after "Contains 2% or less of" | Nothing after the statement may be over the threshold |
| An old list after a recipe change | The list has to match the recipe in the package |
The last one is easy to miss: the recipe changes, the label doesn't. What to do when the label and the food disagree on an allergen is in undeclared allergen recall.
Get the calculator
Download the ingredient list calculator. Two sheets: the recipe, where you type each ingredient as it goes on the label and its weight, and its share fills in; and the ingredient list, which puts them in descending order by weight and builds the statement, plain and with the 2% statement. It's an ordinary Excel file with no macros, and it works in Google Sheets, LibreOffice and Numbers.
Where this stops working
A calculator sorts the recipe you type. The recipe that's actually used drifts: a little more honey this month, a new supplier's cranberries with a different oil, a seasonal version with pecans. Nothing tells the label it's out of date, and nothing says which batches were made from which version.
How TaroStack does it
TaroStack keeps each recipe by weight, versioned, so the list follows the recipe.
Recipes by weight, versioned. Each recipe is kept by weight, with sub-recipes and unit conversion, and versioned: a change to the honey or the cranberries is a new version on a date, so the recipe the label describes is the one on record.
Batches from a version. Each batch records the recipe version it was made from and the lots it consumed, automatically, so batches made before and after a change are told apart.
Supplier lots. Each delivery of cranberries is received with the supplier's lot, and a field of your own on the receipt can record that its ingredient statement was checked against the label.
| The job | Calculator | In TaroStack |
|---|---|---|
| The recipe by weight | Typed once | Kept, with each change as a version |
| Which version a batch used | Not recorded | Recorded with the batch |
| A supplier's ingredient statement | Remembered | A field on the receipt |
| Which lots went into a batch | Not recorded | Recorded automatically |
Versioned recipes, batches and lots are on every plan, from $49 a month. The first 30 days are free, with no credit card. If you'd like a hand setting up, ask, and we'll do it with you.
