Overview
Viviers et al. analyzed 310 cannabis-based products submitted to a South African private laboratory for Class 1 and Class 2 elemental impurities. The paper reports aggregate detection and source-limit failure counts by product category, rather than individual sample concentration values. Arsenic and mercury are not speciated, so this page records them as total arsenic (tAs) and total mercury (tHg).
Key numbers
| Source comparison limit, Table 1 | Cd | Pb | tAs | tHg | Co | V | Ni |
|---|---|---|---|---|---|---|---|
| Oral limit | 0.5 µg/g | 0.5 µg/g | 1.5 µg/g | 3 µg/g | 5 µg/g | 10 µg/g | 20 µg/g |
| Inhalation limit | 0.3 µg/g | 0.5 µg/g | 0.2 µg/g | 0.1 µg/g | 0.3 µg/g | 0.1 µg/g | 0.5 µg/g |
Table A1 reports oral-limit failures across all 310 samples:
| Analyte | Total pass | Total fail | Category pattern |
|---|---|---|---|
| cadmium (Cd) | 309 | 1 | one extract failed |
| lead (Pb) | 270 | 40 | edible 18, extract 12, liquid 1, plant material 9 |
| total arsenic (tAs) | 302 | 8 | edible 2, extract 6 |
| total mercury (tHg) | 310 | 0 | no oral-limit failures |
| Co | 310 | 0 | no oral-limit failures |
| V | 309 | 1 | one solid failed |
| nickel (Ni) | 306 | 4 | extract 3, plant material 1 |
Table A2 applies inhalation limits only to extract, liquid, and plant material categories (n = 213):
| Analyte | Total pass | Total fail | Category pattern |
|---|---|---|---|
| cadmium (Cd) | 212 | 1 | one extract failed |
| lead (Pb) | 191 | 22 | extract 12, liquid 1, plant material 9 |
| total arsenic (tAs) | 199 | 14 | extract 11, plant material 3 |
| total mercury (tHg) | 165 | 48 | extract 36, liquid 7, plant material 5 |
| Co | 200 | 13 | extract 4, plant material 9 |
| V | 195 | 18 | extract 12, liquid 1, plant material 5 |
| nickel (Ni) | 167 | 46 | extract 24, liquid 1, plant material 21 |
Table A3 reports detectable residues across the full dataset:
| Analyte | Present | Not detected | LOD |
|---|---|---|---|
| cadmium (Cd) | 106 | 204 | 0.033 ppm |
| lead (Pb) | 196 | 114 | 0.033 ppm |
| total arsenic (tAs) | 92 | 218 | 0.184 ppm |
| total mercury (tHg) | 73 | 237 | 0.075 ppm |
| Co | 177 | 133 | 0.039 ppm |
| V | 50 | 260 | 0.079 ppm |
| nickel (Ni) | 194 | 116 | 0.158 ppm |
| Tl | 117 | 193 | 0.006 ppm |
| Au | 29 | 281 | 0.079 ppm |
| Pd | 19 | 291 | 0.079 ppm |
| Ir | 32 | 278 | 0.079 ppm |
| Os | 22 | 288 | 0.079 ppm |
Table A4 summarizes samples rather than analytes: oral comparison passed 262 and failed 48 of 310 samples; inhalation comparison passed 119 and failed 94 of 213 applicable samples; 273 of 310 samples had at least one detectable heavy-metal residue and 37 had no detectable residue in the tested panel.
Methods (brief)
The study grouped samples as edible, extract, infusion, liquid, other, plant material, or solid. Approximately 200 mg of each sample was digested in 10% HNO3 for 1 h at 100°C, diluted 35-fold to 7 mL, and analyzed with internal standards Y and In. Calibration used a blank, five-point calibration curve, and control standards every 10 duplicates and at the end of each sample set. Table A5 reports validation precision, bias/recovery, LOD, and linearity for the tested elements; for example cadmium (Cd) precision was 2.04 %RSD, lead (Pb) 6.31 %RSD, tAs 4.25 %RSD, and tHg 5.03 %RSD.
Implications
This source provides South Africa market context for cannabis-based product categories, especially aggregate detection and source-limit failure frequencies. It does not publish individual concentration rows, means, medians, or ranges, so downstream evidence extraction should not invent occurrence concentrations from the pass/fail tables. The inhalation-product subset is outside the current food and personal-care product taxonomy, while oral cannabis products can remain visible through broad herbal-botanical and dietary-supplement routing.
Related evidence
- Ingredient class — botanicals/herbs/traditional formulas
- Dietary Supplements
- Herbal botanicals
- Cadmium
- Lead
- Arsenic, Total
- Mercury, Total
- Cobalt
- Vanadium
- Nickel
- Thallium
- Gold
- Palladium
- Platinum
- Silver
Update history
The five most recent substantive edits to this page, classified major (evidence or structure moved), correction (a published value or statement was wrong and has been fixed), or minor (narrative rewritten without changing the underlying evidence). Each description is derived from what the edit did to this page; the linked commit is the authoritative record, routine regeneration passes are excluded, and the full version history lives in git.
| Commit | Date | Change | Description |
|---|---|---|---|
| b01ec52c31 | 2026-08-04 | major | 1 section added |
| 3171d069e3 | 2026-08-02 | major | 1 section added |
| 90a2f9a38e | 2026-07-30 | major | 1 section added and 1 removed; narrative text revised |
| eaa8eeeedf | 2026-07-27 | major | 1 section added |
| 50de6ab217 | 2026-07-27 | minor | Narrative text revised |
