Provenance

Reference data from EU CLP Annex VI and published regulations — verify against your supplier's SDS before use.

Build a label

Tools/CLP mixture classifier

Classification · CLP Annex I

CLP Mixture Classification Calculator

Enter the composition, get the hazard classes for SDS Section 2 — with the regulation text, the ingredient contributions and the threshold behind every line.

4 178 substances with a harmonised classification 37 hazard classes · 121 registry categories Free · no sign-up

Have ready: section 3 of the safety data sheet of every raw material (ingredient identity and concentration), the physical state of your mixture, and — if you have them — pH and kinematic viscosity.

  1. Add every ingredient. Search Annex VI by CAS, EC, index number or name. Water, solvents, carriers and in-house blends are not in Annex VI by construction — add them with + Unlisted ingredient or + From supplier SDS.
  2. Enter each concentration. % w/w, or % v/v for gases. If your SDS gives a range, enter both bounds — the calculation uses the upper one and says so.
  3. Say what you know about ingredients without data. Tick “data available, not classified” only when you actually hold data showing the ingredient is not acutely toxic (water, sugar). Left unticked, it counts as unknown and the result is marked provisional — that is the safe default, not a complaint.
  4. Set the mixture properties. Physical state and inhalation form pick the right columns of the tables; pH and viscosity unlock the skin and aspiration rules.
  5. Read the result. Open Why on any line to see the rule, its text as printed in the Official Journal, and what each ingredient contributed. Lines marked not computed were not evaluated — they are not a clean bill of health.
  6. Keep the record. Every result carries the data release it was computed with, and Copy for SDS Section 2 takes the classification into the sheet together with the note about what was not evaluated.
Add ingredientAnnex VI
Composition0 rows

No ingredients yet. Search above, or load the example mixture to see what the output looks like before you type anything of your own.

Add at least one ingredient.

No result yet

Build a composition on the left and press Classify mixture. The result appears here with a row per hazard class — every one of them carrying the rule it rests on, the threshold it was compared against and the contribution of each ingredient.

What this version computes, and what it deliberately does not

This list is on the page, not buried in a FAQ, because a tool that quietly skips a hazard class is worse than no tool. Anything not computed is printed as a row of its own in the result, with the reason and the ingredients of your mixture that carry it.

Computed

What you get today

  • Acute toxicity — oral, dermal and inhalation, by the additivity formula of Annex I 3.1.3.6.1, with the 10 % unknown-toxicity correction and harmonised ATE values from Annex VI.
  • Provenance on every line: the rule key, the verbatim text of the rule as the regulation prints it, and the contribution of each ingredient.
  • Specific concentration limits ahead of generic ones — an ingredient carrying its own SCL in Annex VI is judged by that SCL, and the generic limit is shown beside it as checked and outranked.
  • An honest, named gap for every class this version does not compute yet, with the ingredients of your mixture that carry it.

Not computed

What it will not pretend to know

  • Physical hazards. They are not derivable from composition at all — they need testing. Ingredient physical classes are listed as a hint, never as a result.
  • Bridging principles (dilution, batching, concentration, interpolation, similar mixtures, aerosols). Planned; not guessed at in the meantime.
  • A mixture used as an ingredient of another mixture — break it down into substances.
  • Annex VI notes (A–F, 1–7, P …). Their text is shown on the ingredient; the engine does not apply them.
  • The ECHA C&L Inventory. Self-classifications by notifiers are a hint, never a source of a calculation.
  • Jurisdictions other than EU CLP. UN GHS, OSHA HCS and WHMIS differ in the limits, and one engine pretending to cover all of them would be wrong in three places at once.

02 · Method

Where the numbers come from

Three tables and one rule of precedence do most of the work. None of them is retyped into this tool: the thresholds are read from our copy of the regulation on the server, and every result names the row it used.

Ingredients

Annex VI Table 3

The harmonised classification of a substance across the EU — class, category, hazard statements, and where they exist its specific concentration limits, M-factors and acute toxicity estimates. An ingredient’s classification is read on the server by its index number; it is never taken from what the browser sent.

Thresholds

Annex I limits

Cut-off values from Table 1.1, the generic concentration limits of each hazard class, the summation tables and the additivity formula. Each row is stored with its verbatim wording, and that wording is what the result quotes — so the tool cannot paraphrase a rule into something it does not say.

Precedence

SCL before generic

For each ingredient and each class: its own specific concentration limit if Annex VI sets one, otherwise the lower of the cut-off and the generic limit. The limit that was not used is still shown, marked as checked and outranked — that is the provenance, not decoration.

References: Regulation (EC) No 1272/2008 (CLP) Annex I — 1.1 (cut-off values), 3.1.3 (acute toxicity of mixtures) and the summation tables of the health and environmental chapters; Annex VI Table 3 (harmonised classification and labelling). The release of the data behind any given result is printed under it.

Frequently asked questions

How is a mixture classified under CLP?

CLP Annex I gives three routes, in order of precedence. Where test data exist for the mixture itself, they decide. Where they do not, the bridging principles may carry a classification across from a tested mixture. Where neither applies — the ordinary case for a new formulation — the classification is calculated from the composition: each ingredient contributes according to its own harmonised classification and its concentration, judged against the concentration limits of that hazard class. Some classes are decided by a simple cut-off, some by summation across ingredients, and acute toxicity by an additivity formula over the reciprocals of the ingredient estimates. This tool computes the third route and states which classes it has not computed.

What goes in SDS Section 2 for a mixture?

Section 2 of a safety data sheet carries the classification of the mixture under CLP — every hazard class and category — together with the label elements that follow from it: pictograms, signal word, hazard statements and precautionary statements, plus any supplemental EUH information. Section 2 is a consequence of the classification, not an independent piece of authoring: once class and category are settled, the label elements are fixed by the regulation. That is why the output here is class and category first, with the label elements derived from them, a route into the label maker, and a “Copy for SDS Section 2” button that carries the note about what was not evaluated.

What does the calculator compute today, and what does it not?

Today it computes acute toxicity across the oral, dermal and inhalation routes, with the full additivity formula, the 10 % unknown-toxicity correction and harmonised ATE values from Annex VI. Every other hazard class is printed with an explicit “not computed in this version”, the module that will own it, and the ingredients in your mixture that carry that class — so an empty cell can never be mistaken for “not hazardous”. Physical hazards will stay uncomputed permanently: they require testing, and no engine can derive them from a composition.

What is a specific concentration limit, and why does it outrank the generic limit?

A specific concentration limit is a threshold set for one named substance in Annex VI, replacing the generic limit of that hazard class for that substance. Methanol, for example, carries STOT SE 1 from 10 % and STOT SE 2 from 3 % — while the generic table would start counting it at 1 %. The SCL is the legal rule for that ingredient, so it is the rule quoted in the report; the generic limit is shown beside it, marked as checked and outranked. It cuts both ways: an ingredient with its own SCL does not also enter the generic summation, or it would be counted twice under two different thresholds.

Why does every result quote the regulation verbatim?

Because a classification that cannot be audited is worth very little in an inspection. A number on its own asks to be trusted; a number with the rule key, the exact sentence of the regulation behind it, and the arithmetic that produced it can be checked by whoever reads the safety data sheet next — including a regulator. It also protects against silent drift: when the wording behind a line is printed next to the line, a rule that changes with an ATP becomes visible instead of quietly changing an answer.

Is my composition stored anywhere?

The calculation itself keeps nothing — the composition is sent to the server, classified, returned and forgotten. There is no account, no sign-up and no email gate. A rate limit of thirty calculations an hour is counted against a one-way hash of your IP address, not the address itself, so that a busy hour cannot be traced back to you.

Get the free GHS / CLP / OSHA deadline calendar

Verified 2026–2029 compliance dates in one PDF — plus alerts when the rules change.