Allergens
Allergen data is the part of BakeCheck that matters most. Everything else — costs, margins, storefront — is convenience. This page explains what the app looks for, what it does automatically, and what stays your judgement.
The 14 allergens
UK law requires these 14 to be declared and emphasised wherever they appear in a food. BakeCheck recognises all 14, and the words in the right-hand column are what it watches for when reading an ingredient's composition.
| Allergen | Recognised from words like |
|---|---|
| Gluten | gluten, wheat, rye, barley, oats, spelt, kamut |
| Crustaceans | crustacean, crab, lobster, prawn, shrimp, crayfish |
| Eggs | egg, eggs, albumin, mayonnaise |
| Fish | fish, anchovy, salmon, tuna, cod, haddock |
| Peanuts | peanut, groundnut |
| Soybeans | soy, soya, soybean, soja, lecithin |
| Milk | milk, dairy, butter, cheese, cream, yogurt, whey, casein, lactose |
| Nuts | almond, hazelnut, walnut, cashew, pecan, pistachio, macadamia, brazil nut, pine nut, chestnut |
| Celery | celery, celeriac |
| Mustard | mustard |
| Sesame | sesame, tahini |
| Sulphur dioxide | sulphur dioxide, sulphites, E220–E228 |
| Lupin | lupin, lupine |
| Molluscs | mollusc, snail, squid, octopus, clam, mussel, oyster, scallop |
Detection is a helper, not a decision
When you type an ingredient's composition, BakeCheck scans it for those words and offers a suggested allergen list. That is a convenience, and it is only as good as the composition you typed. It cannot know about:
- an allergen named in a way it doesn't recognise (a brand name, a trade term),
- "may contain" or cross-contamination warnings on the packet,
- anything the supplier changed since you last read the label.
Always check the suggestion against the actual packaging and edit it if it is
wrong. You can type your own comma-separated list at any time, for example
Gluten, Milk. What you save is what BakeCheck treats as the truth.
Blank is not "none"
An empty allergens field does not mean "this ingredient has no allergens". It means nobody has said yet. Those are very different things, and BakeCheck will not guess between them: while any ingredient in a recipe has a blank allergens field, that product cannot have a label generated at all.
If an ingredient genuinely contains none of the 14, say so explicitly — type
None in its allergens field, or use the Declare no allergens link under the
field. The ingredient then counts as declared and stops blocking labels.

"None" is a declaration. Blank is not.
This is the one place the app is deliberately obstructive. A missing allergen is the failure that hurts someone.
Packaging is exempt
Ingredients in the Packaging category — boxes, lolly sticks, tamper-proof lids — are not eaten, so they never appear in an ingredient list and are never asked for a composition or an allergen declaration. They don't block labels, and they don't show up on your dashboard as missing data. Their cost still counts towards the product. Decoration is eaten, so it is treated as food like anything else.
Labels you approved before this rule existed
Labels approved earlier are not withdrawn. If you have one printing on a product whose ingredients were never declared, it keeps working exactly as it did — nothing disappears from under you mid-bake.
But that label was produced without a complete allergen declaration behind it, so it has not been checked against one. Your dashboard lists those products under Cannot be labelled — missing ingredient data, at the top of the list and marked label in use. Work through those first: fill in the allergens for the ingredients named next to each one, then regenerate and approve the label so what you are printing rests on a declaration you actually made.
Allergens carry through sub-recipes
If a product uses another product as a component — a frangipane inside a tart, a sponge inside a gateau — the allergens of everything inside that component are rolled up into the parent product's label automatically, however many levels deep it goes (up to 8).
This is a real safety benefit and a real risk at the same time: the nuts in your frangipane will appear on the tart's label without you doing anything, which is exactly right — but it also means an ingredient with missing data deep inside a sub-recipe blocks the labels of every product built on top of it. When a label is blocked by an ingredient you don't recognise, that is usually why. See the Products guide for how component quantities work.
Emphasis and the coverage check
UK labels must emphasise allergens so they stand out from the rest of the ingredient list. BakeCheck writes them in CAPITALS.
After a draft is generated, a deterministic check — plain code, not the AI — compares the allergens rolled up from your ingredients against the allergens actually emphasised in the label text. If anything expected is missing, the check fails and that label cannot be approved. This check is the reason the label text isn't editable by hand: a label you could retype is a label the check can no longer vouch for.
Next: generate a label, or see troubleshooting if something is blocked.