‹ All posts

· 6 min read

The 14 EU allergens list: a practical allergen table

A guest points at the lentil soup and asks about celery. The honest answer is usually yes, because most vegetable stock is built on it, but nobody in the room can prove it in the ten seconds the question deserves. That gap is what an allergen table is for. The 14 EU allergens list is short enough to memorise and long enough to go wrong, because the risk rarely sits in the headline ingredient. It sits in the stock cube, the dusting of flour, the wine reducing in the pan. What follows is a working reference: each of the 14, where it hides, and how it gets onto a dish tag.

The 14 EU allergens list, code by code

These are the groups defined in Annex II of Regulation (EU) No 1169/2011 — the same 14 in Hamburg, Vienna or Valencia. The letter in front of each is the Austrian code convention, running A to R and skipping I, J, K and Q. Kitchens across German-speaking markets use it because one character fits on a menu line where a sentence does not.

  • A — Cereals containing gluten: wheat, rye, barley, oats, spelt, kamut. Beyond bread: roux-thickened sauces, beer batter, most soy sauce, sausage bound with rusk, the flour under a pan-fried fish.
  • B — Crustaceans: prawns, crab, langoustine, crayfish. Hides in a bisque used as a sauce base, in the shrimp paste stirred into a Thai curry, in XO sauce.
  • C — Eggs: fresh pasta, mayonnaise and every aioli built on it, hollandaise, meringue, the egg wash on a pastry, some clarified consommes.
  • D — Fish: anchovy is the usual surprise. Worcestershire sauce, Caesar dressing, puttanesca, Asian fish sauces, fish gelatine used to clarify drinks.
  • E — Peanuts: a legume, not a tree nut, and declared separately. Satay, some chilli oils, cheap frying blends, ground peanut thickening a stew.
  • F — Soybeans: soy sauce, tofu and miso are obvious. Lecithin in chocolate, emulsifiers in bread and margarine, textured protein in vegan patties are not.
  • G — Milk: cream, butter, cheese, any sauce finished with butter. Watch pesto with parmesan sold as vegetarian, caramel sauces, whey powder in crisps.
  • H — Nuts: almond, hazelnut, walnut, cashew, pecan, Brazil nut, pistachio, macadamia. Marzipan, praline, nut oils, dukkah, pesto made with cashew.
  • L — Celery: the quiet one. Stock cubes, bouillon powder, nearly every vegetable and beef stock, celery salt, many curry powders, ready-made bolognese bases.
  • M — Mustard: mayonnaise, vinaigrettes, barbecue and burger sauces, curry pastes, pickles and chutneys, spice rubs on roast meat, a lot of sausage.
  • N — Sesame: tahini in hummus and baba ganoush, burger buns and bagels, halva, gomasio, sesame oil finishing a stir-fry, many falafel mixes.
  • O — Sulphur dioxide and sulphites above 10 mg/kg or 10 mg/l: wine, dried apricots and other dried fruit, some vinegars, pickled vegetables, packaged potato products.
  • P — Lupin: mostly gluten-free and high-protein baking, where lupin flour stands in for wheat, plus some vegan meat substitutes and dried pasta.
  • R — Molluscs: mussels, clams, oysters, squid, snails. Oyster sauce is the one that slips into a stir-fry unrecorded.

Letters, numbers or plain words on the card

No single code is imposed across Europe. The A-to-R letters are the Austrian convention and travel well; German houses more often use superscript numbers, which are not standardised, so the same figure can mean gluten in one place and celery next door. Whichever you pick, one rule holds: a code without a visible legend is not information. If the guest has to flag down a server to decode a footnote, the card has failed.

A digital menu removes the trade-off that created codes: they exist because print space is expensive. On a phone, each dish carries its allergens as readable badges under the description, spelled out. In yourmenu.app you tag all 14 EU allergens plus dietary badges per dish, and that sits in the free plan rather than an upgrade.

Where the table breaks in a real kitchen

The list is not the hard part. Keeping it true through a Tuesday service is. Most allergen errors are not ignorance of the 14 — they are drift between the table and what the pass plated.

  • A supplier switch. The new vegetable stock has celery where the old one did not, and nobody re-read the spec sheet.
  • A mid-service substitution. Out of pine nuts, so the pesto goes out with cashew, and the tag still says nut-free.
  • The garnish nobody counts. A crouton, a drizzle of soy glaze, the bread served alongside.
  • Shared equipment. One fryer for battered fish and chips, one grill for halloumi and prawns, one board for everything.
  • The bar. Wine carries sulphites, cocktail syrups can carry egg white or nut liqueur, and drinks lists get tagged last.
  • Staff turnover. The person who knew the recipes by heart left in March, and the knowledge went too.

From recipe card to dish tag: the workflow

The reliable method is boring and takes one afternoon. Work at ingredient level, not dish level, and the dish tags fall out almost automatically.

  • Write out every dish as its full component list, sub-recipes included: the sauce, the marinade, the dressing, the bread on the side.
  • Collect supplier spec sheets for everything bought in. Stock bases, sauces, breads and spice blends are where the surprises live.
  • Tag each ingredient once against the 14. An ingredient sheet is reusable; a dish sheet is redone every time the menu changes.
  • Roll ingredient tags up into dish tags, then have a second person check the ones that look too clean. A dish with zero allergens is usually a dish somebody stopped reading.
  • Give it one owner — head chef or sous — and one fixed trigger: whenever a supplier or a recipe changes.
  • Put the tags on the menu itself, not in a folder behind the bar, so the guest sees them while choosing.

Keeping the table current when the menu moves

A table is only useful while it is true, and printed cards go stale the day a recipe changes. That is the argument for keeping allergen data where the menu lives. Change the tag on your phone and it is live before the next scan — no reprint, no marker, no correction taped over the laminate. Mark a dish sold out and it greys out immediately, which removes the worst case: someone ordering a dish you have not finished checking.

Two details make the start easier than it sounds. Upload a photo or PDF of your existing card and AI extraction drafts the sections, dishes, prices and descriptions for you to review, so you edit rather than type from zero. And the printed QR code encodes a permanent short link, not the menu address, so renaming the menu or moving to a custom domain never dead-links the code on the table.

Written first, spoken second

What the table cannot do is replace the written record. Regulation 1169/2011 requires the 14 allergens to be disclosed for non-prepacked food, meaning everything you serve. Germany implements it through the LMIDV, and the mechanics are specific: written documentation is required, and information may be given orally only if that record is available on request and a notice tells guests so. Fines are set at Bundesland level. We go deeper on written versus oral in our piece on EU allergen rules for digital menus.

Treat the 14 as a lookup you set up once and maintain, not a form you fill in the week before an inspection. Get the ingredient sheets right, tag each dish honestly, put the result where guests look. Building the menu and tagging all 14 allergens is free, with a permanent QR code and no credit card — upgrade later only if you want translations, scan analytics or a custom domain.

The 14 EU allergens list: a practical allergen table — yourmenu.app