Precautionary Allergen Labelling: Codex Now Publishes Its Own Reference Doses, and They Do Not Match VITAL 4.0

Two things happened that most South African manufacturers have not absorbed. On 28 August 2024 the Allergen Bureau released VITAL 4.0, moving reference doses to an ED05 basis. Then, at its Forty-ninth Session in 2026, the Codex Alimentarius Commission added an annex on the use of precautionary allergen labelling to CXS 1-1985, publishing reference doses of its own plus rules on when a “may contain” statement may be used.

So there are now two quantitative frameworks for precautionary allergen labelling. They agree on most allergens. On gluten they do not, and the gap is wide enough to reverse a decision.

Meanwhile most sites work to neither. The label says “may contain traces of milk, egg, soya, wheat, peanuts and tree nuts” because somebody added it years ago as insurance — no reference dose, no action level. Under the Codex annex that is not even PAL, because the annex defines it as a statement about a risk “that has been identified by a risk assessment”.

Want the calculator, not just the article? Advanced Allergen Management & Validation includes a multi-framework QRA tool switching between Codex Table A1/A2, VITAL 4.0 ED05, VITAL 3.0 ED01 and Netherlands ED05 doses — R3,450, approximately 40 hours, self-paced.

Precautionary allergen labelling: the key facts

Codex PAL rules CXS 1-1985 Annex, Guidelines on the use of precautionary allergen labelling, added at CAC49 in 2026
Codex reference doses Annex Table A1 (21 foods, mg total protein, IgE-mediated allergy); Table A2 (4.0 mg total gluten, coeliac disease)
Codex action level Reference dose (mg) ÷ amount consumed (kg), single eating occasion, preferably 50th percentile (Annex footnote iii)
Codex trigger Annex 4.3: PAL shall be used above the action level; should not be used at or below it
The conflict Codex Table A2: 4.0 mg total gluten. VITAL 4.0: 5.0 mg gluten-containing cereals
Codex allergen list Two tiers: Section 4.2.1.4 (mandatory) and 4.2.1.5 (may also be required); sulphite separate at 4.2.1.7. CXC 80-2020 sets no threshold
VITAL version VITAL 4.0, released 28 August 2024, ED05 basis replacing ED01
Audit hooks BRCGS Issue 9 clause 5.3 (fundamental); FSSC 22000 Version 7; IFS Food Version 8; SQF Edition 9 — GFSI-benchmarked

What is precautionary allergen labelling?

Precautionary allergen labelling, or PAL, is a statement such as “may contain milk” indicating the risk of unintended allergen cross-contact. Under the Codex CXS 1-1985 annex its definition is conditional: the risk must have been identified by a risk assessment, so an unassessed “may contain” is not PAL at all.

That conditional definition, in Annex Section 3, does real work: the auditor’s question is no longer “why did you put this on?” but “show me the assessment that identified this risk”. Annex 4.2 adds that the decision should rest on its findings.

What does the Codex precautionary allergen labelling annex require?

The Codex annex on precautionary allergen labelling, added to CXS 1-1985 at CAC49 in 2026, restricts PAL to unintended presence that cannot be prevented or controlled by allergen management practices, and ties it to an action level: PAL shall be used above it, and should not be used at or below it.

The provisions that change practice, modal verbs preserved:

  • 4.1 — PAL is a last resort. Allergen management under CXC 80-2020 shall be implemented, and PAL shall be restricted to unintended presence that cannot be prevented or controlled by those practices.
  • 4.3 — the grade is asymmetric, and this catches people out. PAL shall be used when, after mitigation, unintended presence is above the action level; PAL should not be used at or below it. Applying PAL above the action level is mandatory; refraining below it is a recommendation, not a prohibition. Codex does not forbid a below-threshold “may contain” — it advises against it.
  • 4.3.1, 4.3.2, 4.4. Where Table A1 sets no reference dose, competent authorities can establish one; PAL shall be complemented by education and information programmes; and the annex’s one outright prohibition — where a gluten PAL statement is necessary, “gluten-free” shall not be used.
  • 5.2–5.2.3 — placement and wording are prescribed. PAL shall appear as a separate statement directly under or near the ingredient list, and shall commence with “may contain” (or equivalent words such as “may be present”, as determined by the competent authorities), naming allergenic foods by the specified names of Sections 4.2.1.4 and, where applicable, 4.2.1.5. “Produced in a facility that also handles” does not comply. Where gluten’s source cannot be verified, 5.2.3 requires wheat, barley and rye all to be named.
  • 5.2.4 — PAL cannot be de-emphasised. It shall be declared clearly and distinctly “through the same font type, style or colour that contrast [sic] from the surrounding text”, and where a PAL statement and an allergen declaration both appear they shall use the same manner.

One boundary: 5.2.2 references Sections 4.2.1.4 and 4.2.1.5 but not 4.2.1.7, so the annex makes no provision for sulphite PAL.

What are the Codex reference doses for precautionary allergen labelling?

Codex Table A1 publishes reference doses in milligrams of total protein for 21 allergenic foods, from 1.0 mg for almond, cashew, walnut, pecan, pistachio, macadamia, pine nut, Brazil nut, celery and mustard up to 200.0 mg for crustacea. Table A2 gives 4.0 mg of total gluten for coeliac disease.

Reference dose (mg total protein) Allergenic foods — Table A1
1.0 Almond, Brazil nut, cashew, pistachio, macadamia, pine nut, walnut, pecan, celery, mustard
2.0 Peanut, egg, milk, sesame
3.0 Hazelnut
5.0 Wheat, fish
10.0 Buckwheat, lupin, soy
200.0 Crustacea

Table A2 gives 4.0 mg of total gluten from all relevant sources, covering wheat, rye and barley and their related species collectively — one figure for the group, not per cereal.

Now read what is absent, because the gaps are where sites improvise. Table A1 publishes no value for rye, barley, oats, mollusc or sulphite. Table A2 sets no oats figure, and says why: people with coeliac disease may react to oats because of wheat, barley or rye cross-contact. The units differ too — Table A1 total protein, Table A2 total gluten — and are not interchangeable.

What changed in VITAL 4.0, and what is the difference between ED01 and ED05?

ED01 is the eliciting dose predicted to provoke a reaction in 1% of the allergic population; ED05 is the dose predicted to provoke a reaction in 5%. Sitting higher on the dose-distribution curve, ED05 values are numerically larger for almost every allergen, so the action levels derived from them are looser.

VITAL 4.0, released on 28 August 2024, made that switch on JECRA and FAO-WHO expert consultation recommendations, regrouped tree nuts, added a mollusc risk-management value and a Canadian jurisdiction alongside European legislated values, and changed “legislation” to “jurisdiction”. ED01 values remain available in the updated Action Level Grid, so choosing them is legitimate — choosing them unknowingly is a version-control finding.

Allergen ED01 (VITAL 3.0) ED05 (VITAL 4.0) Fold change
Gluten-containing cereals 0.7 5.0 7.1×
Crustaceans 25.0 200.0 8.0×
Egg 0.2 2.0 10.0×
Fish 1.3 5.0 3.8×
Peanut 0.2 2.0 10.0×
Soy 0.5 10.0 20.0×
Milk 0.2 2.0 10.0×
Almond 0.1 1.0 10.0×
Hazelnut 0.1 3.0 30.0×
Walnut 0.03 1.0 33.3×
Cashew 0.05 1.0 20.0×
Brazil nut 0.1 1.0 10.0×
Celery 0.05 1.0 20.0×
Mustard 0.05 1.0 20.0×
Sesame 0.1 2.0 20.0×
Lupin 2.6 10.0 3.8×
Molluscs 25.0 20.0 0.8×

Walnut moved furthest — 0.03 mg to 1.0 mg, a 33.3-fold change, hazelnut behind it at 30-fold, both from the tree nut regrouping. Mollusc moved the other way: its ED05 value of 20.0 mg is lower than the ED01 value of 25.0 mg, the one allergen where migrating to VITAL 4.0 tightens your action level. Jurisdiction matters too — the Netherlands ED05 for mustard is 0.4 mg against VITAL 4.0’s 1.0 mg. And moving to ED05 accepts a modelled reaction rate in a larger share of the allergic population: a risk-management decision, not a discovery that allergens became less dangerous.

Where do Codex and VITAL 4.0 disagree?

They disagree on gluten. Codex Table A2 sets 4.0 mg of total gluten from all relevant sources; VITAL 4.0 sets 5.0 mg for gluten-containing cereals. At the same serving size the Codex action level is 20% lower, so one residue can be actionable on one framework and not the other.

Start with where they agree, because that is most of the list. For the fifteen allergens both publish — crustacea, egg, fish, peanut, soy, milk, almond, hazelnut, walnut, cashew, Brazil nut, celery, mustard, sesame, lupin — Codex Table A1 and VITAL 4.0 ED05 are identical. The divergences are structural:

  • Codex covers five foods VITAL’s set does not: pistachio, macadamia, pine nut, pecan at 1.0 mg; buckwheat at 10.0 mg.
  • VITAL publishes a mollusc value; Codex does not. VITAL 4.0 gives 20.0 mg; Table A1 has no mollusc row, so 4.3.1 leaves it to a competent authority.
  • The cereals are the real conflict. Table A1 gives wheat 5.0 mg of total protein for IgE-mediated wheat allergy; Table A2 gives 4.0 mg of total gluten for coeliac disease; VITAL 4.0 gives one 5.0 mg figure for gluten-containing cereals. Same commodity, three numbers answering different questions.

Worked example: the same residue, two answers

A soup in 200 g portions, declaring no gluten-containing cereals, runs after a wheat-thickened product. Batch 150 kg.

Step 1 — both action levels, using Codex Annex footnote iii (reference dose ÷ amount consumed in kg). Codex Table A2: 4.0 ÷ 0.200 = 20 mg/kg = 20 ppm total gluten. VITAL 4.0: 5.0 ÷ 0.200 = 25 mg/kg = 25 ppm.

The VITAL action level is 25 ÷ 20 = 1.25 times higher; the Codex one 20% lower. They disagree across a 5 ppm band, 20 to 25 ppm.

Step 2 — the residue. First-off testing returns 22 mg/kg of gluten, reported as gluten = gliadin × 2.

Step 3 — compare, and watch the answer invert.

Framework Reference dose Action level Residue Outcome
Codex Table A2 4.0 mg total gluten 20 ppm 22 ppm Above. Annex 4.3: PAL shall be used — and under 4.3.2 “gluten-free” shall not be used
VITAL 4.0 5.0 mg gluten-containing cereals 25 ppm 22 ppm At or below. PAL not indicated

Step 4 — scale it, and cross-check. At 22 mg/kg across 150 kg the batch carries 22 × 150 = 3,300 mg of gluten against a Codex-derived ceiling of 20 × 150 = 3,000 mg — exceeded by 300 mg, a factor of 1.1. Run the formula backwards: 20 ppm × 0.200 kg = 4.0 mg per portion, exactly Table A2’s reference dose; 25 ppm × 0.200 kg = 5.0 mg, exactly VITAL’s. The band moves with the portion too — 40 and 50 ppm at 100 g, 10 and 12.5 ppm at 400 g.

So what do you do? You choose — but not per batch, and never by splitting the difference. Record which framework your site works to, state it in the risk assessment, and apply it consistently. Never average or blend two frameworks: a mid-point between 4.0 and 5.0 mg is a number no authority publishes and nobody can defend.

This is the arithmetic taught, then automated, in our advanced allergen risk assessment and validation course. The Excel toolkit holds Codex Table A1/A2, VITAL 4.0 ED05, VITAL 3.0 ED01 and Netherlands ED05 doses side by side, so you see the decision flip before an auditor does — R3,450, 90-question proctored exam, certificate on completion.

How do you calculate an allergen action level?

Divide the reference dose in milligrams by the amount of food consumed on a single eating occasion, expressed in kilograms. The result is the action level in milligrams per kilogram, which is parts per million. Codex says to base the consumption figure preferably on the 50th percentile.

You will see the formula two ways, and they are the same formula. Codex Annex footnote iii gives action level (mg/kg) = reference dose (mg) ÷ amount consumed (kg); practitioner texts give action level (ppm) = reference dose (mg) ÷ reference amount (g) × 1000. Dividing by kilograms, and dividing by grams then multiplying by 1000, are identical operations, and mg/kg and ppm are the same unit. Use either, state which, and never mix grams into the Codex form. The consumption amount is where most flawed assessments fail: a 30 g “serving” of a 200 g packet people finish in one sitting is not one. Two quick Table A1 checks: milk at 2.0 mg in a 30 g biscuit gives 2.0 ÷ 0.030 = 66.67 ppm, and crustacea at 200.0 mg in a 250 g meal gives 200.0 ÷ 0.250 = 800 ppm.

Is a “may contain” label a legal defence?

No. A blanket “may contain all allergens” disclaimer applied without a documented risk assessment is not a legal defence, and it does not even meet the Codex definition of PAL, which requires a risk identified by risk assessment. Auditors against BRCGS Issue 9 clause 5.3 treat it as a control failure.

A claim about risk that rests on nothing cannot be tested or audited. And when precautionary labels appear on products carrying no real residual risk, allergic consumers learn to ignore them — then ignore them where the risk is real. Over-labelling degrades the signal.

When is precautionary allergen labelling not justified?

Codex restricts PAL to unintended presence that cannot be prevented or controlled, and says it should not be used at or below the action level. Note the grading: applying PAL above the action level is “shall”; refraining below it is “should not”, a recommendation rather than a prohibition.

  1. Is the allergen an intentional ingredient, including in a compound ingredient, derivative, carrier or processing aid? Then it is declared in the ingredient list using the specified name. Section 4.2.5.2 withholds the processing-aid and carry-over exemption from allergenic foods; Section 6 withholds the small-package exemption too.
  2. Have all reasonable controls been implemented? Annex 4.1 makes allergen management under CXC 80-2020 a precondition: segregation, validated changeover cleaning, scheduling least to most allergenic, dust and air controls, like-into-like rework.
  3. Quantify the residual and calculate the action level from your declared reference dose and a realistic consumption amount, then compare. Above it, PAL shall be used or control improves until it is not; at or below, Codex says PAL should not be used.
  4. Document the chain — framework, table, jurisdiction, consumption amount, review date — and check the artwork matches the decision.

Step 3 is where sites discover something uncomfortable: on a properly calculated basis, many existing precautionary statements are not supportable.

Is soy a mandatory allergen declaration under Codex?

No. Codex splits its allergen list in two. Section 4.2.1.4 is the mandatory tier that shall always be declared, and it includes sesame. Soybean sits in Section 4.2.1.5, the discretionary tier that may also be required regionally or nationally, based on risk assessment data.

The reverse of what most assume:

  • 4.2.1.4, mandatory — cereals containing gluten (wheat, rye, barley); crustacea; eggs; fish; peanuts; milk; sesame; and six tree nuts named by species: almond (Prunus amygdalus), cashew (Anacardium occidentale), hazelnut (Corylus spp.), pecan, pistachio (Pistacia vera), walnut (Juglans spp.).
  • 4.2.1.5, may also be required — buckwheat, celery, oats, lupin, mustard, soybean (specified name “Soy”), Brazil nut, macadamia, pine nut.
  • Sulphite is in neither table. It has its own provision, 4.2.1.7: at 10 mg/kg or more, on a sulphur dioxide equivalents basis, declared as “sulphite” or “sulfite”.

Two consequences. “Tree nuts” is no longer one allergen: nine species are named across the tiers, each with its own specified name and, in Table A1, its own reference dose. And each allergen carries a prescribed specified name, which Section 8.3.1 requires to be clear and distinct through font type, style or colour — no font size is prescribed. None of this displaces South African law: R146 of 2010 still binds you, and it lists soybeans.

Does South African law require VITAL or Codex?

No. VITAL is a voluntary industry framework from the Allergen Bureau and Codex standards are international reference texts, not South African law. R146 of 2010 governs allergen labelling and is in force; draft R3337 is not. Both frameworks supply the quantitative basis that makes a labelling decision defensible.

R146 of 2010, under the Foodstuffs, Cosmetics and Disinfectants Act 54 of 1972, requires declaration of eight groupings — egg; cow’s milk; crustaceans and molluscs; fish; peanuts; soybeans; tree nuts; gluten-containing cereals — plus sulphites, named inside compound ingredients. Draft R3337 would tighten this and require sulphites at or above 10 ppm, but is not in force. R638 of 2018 covers premises hygiene. Internationally, Codex CXS 1-1985 carries the two-tier list and the PAL annex, CXC 80-2020 carries allergen management without thresholds, Regulation (EU) No 1169/2011 lists 14 allergens, and the FASTER Act added sesame as the ninth US major allergen from 1 January 2023.

Why you cannot simply measure your way out of this

Because a test result only means something in the basis it was reported in. Codex Table A1 and VITAL reference doses are expressed as milligrams of total protein, while laboratories may report as commodity or as a marker protein. Comparing a commodity result to a protein-based action level produces a confidently wrong decision.

ELISA quantifies in mg/kg but must state its basis — total protein, commodity, or a marker such as Ara h 2 or beta-lactoglobulin; gluten is reported as gliadin × 2, which is why Table A2’s total-gluten unit matters. Lateral flow gatekeeps release without producing a number, PCR detects DNA rather than protein, LC-MS/MS buys peptide-marker specificity at higher cost, ATP bioluminescence measures only general soil. CXC 80-2020 Section 6.5 asks that a test be fit for purpose, be validated for the matrix of concern, and that the operator know its limit of detection and specificity. Hence: a “not detected” result on a method never validated in that matrix is not evidence of absence.

Frequently asked questions

What are the Codex reference doses for precautionary allergen labelling?

CXS 1-1985 Annex Table A1 gives reference doses in mg of total protein for 21 allergenic foods: 1.0 mg almond, Brazil nut, cashew, pistachio, macadamia, pine nut, walnut, pecan, celery, mustard; 2.0 mg peanut, egg, milk, sesame; 3.0 mg hazelnut; 5.0 mg wheat, fish; 10.0 mg buckwheat, lupin, soy; 200.0 mg crustacea. Table A2 gives 4.0 mg of total gluten for coeliac disease.

Is soy a mandatory allergen declaration under Codex?

No. Soybean sits in CXS 1-1985 Section 4.2.1.5, the discretionary tier that “may also be required” regionally or nationally based on risk assessment data, with the specified name “Soy”. Sesame is in the mandatory Section 4.2.1.4 tier. R146 of 2010 nonetheless requires soybeans to be declared in South Africa.

Does Codex prohibit a “may contain” label below the action level?

No. Annex 4.3 says PAL shall be used above the action level but should not be used at or below it — applying it above is mandatory, refraining below is a recommendation, not a prohibition. The annex’s one outright prohibition is 4.3.2: “gluten-free” shall not be used where a gluten PAL statement is necessary.

What does ED05 mean in VITAL 4.0?

ED05 is the eliciting dose predicted to provoke a reaction in 5% of the allergic population, in milligrams of total allergenic protein. VITAL 4.0 adopted ED05 doses on 28 August 2024, replacing VITAL 3.0’s ED01 basis, per JECRA and FAO-WHO expert consultation.

Can I still use VITAL 3.0 ED01 reference doses?

Yes. ED01 values remain available in VITAL 4.0’s updated Action Level Grid, and choosing them is a legitimate, more conservative position. What is not acceptable is using them by inertia: the risk assessment must state which basis you chose, and why.

Which allergen reference dose changed the most in VITAL 4.0?

Walnut, from an ED01 value of 0.03 mg to an ED05 value of 1.0 mg — a 33.3-fold increase from the tree nut regrouping, with hazelnut at 30-fold. Mollusc moved the other way, 25.0 mg to 20.0 mg, and Codex Table A1 publishes no mollusc value.

Is “produced in a facility that also handles” acceptable wording?

Not as a Codex-compliant PAL statement. Annex 5.2.2 requires the statement to commence with “may contain” or equivalent words such as “may be present” as determined by the competent authorities, and to name allergenic foods by the specified names of Sections 4.2.1.4 and 4.2.1.5.

Which framework should my site work to, Codex or VITAL 4.0?

Either, provided you record the choice and apply it consistently. State the framework, table, jurisdiction and consumption amount in the risk assessment, review it, and check the destination market if you export. What is not defensible is switching frameworks per product, or averaging their reference doses.

Stop labelling defensively. Start assessing quantitatively.

If you cannot produce, per product and per allergen, a named framework, a stated reference dose, a justified consumption amount, a measured residue and a documented comparison, your precautionary labelling is a guess.

Advanced Allergen Management & Validation. Nine modules, approximately 40 hours, self-paced, with Mthokozisi Nkosi.

  • R3,450, no VAT charged
  • The ASC Allergen Validation Toolkit in Excel — a multi-framework QRA calculator switching between Codex Table A1/A2, VITAL 4.0 ED05, VITAL 3.0 ED01 and Netherlands ED05 doses, plus a swab recovery calculator and an allergen matrix
  • A document-controlled Cleaning Validation Protocol template in Word
  • A 90-question technical exam — 150 minutes, 80% pass mark, which is 72 of 90 — and a certificate of competence on passing
  • FoodBev SETA accredited (587/00337/1900), HPCSA CPD accredited, SAATCA TC 065

Enrol in Advanced Allergen Management & Validation →

Training a team first? Allergen Management in the Food Supply Chain is the foundational course; the advanced validation course is where QA, laboratory and labelling leads learn to defend the decision. See all courses or contact us.

Your label says “may contain”. Which framework, which table, which number? Learn to answer all three.

Leave a Comment