Lab testing, potency and the COA
HomeHarvestLab testing, potency and the COA
Harvest · Quality

Lab testing, potency and the COA

A certificate of analysis is a measurement of one small sample, not a property of your crop. This guide reads a COA line by line, checks the potency maths (the 0.877 factor and the chemistry behind it), explains every test family from qPCR to ICP-MS, and is honest about the part the industry keeps getting caught at: inflated numbers.

Quality10 diagramsEvidence-linked · 16 sources~24 min read
Start here

Purpose and scope

Every batch you sell (and in a medicinal system, every batch you release) ends its life as a one-page document from a testing laboratory: the certificate of analysis, or COA. It says what is in the flower (cannabinoids, terpenes) and what must not be (mould, heavy metals, pesticides, mycotoxins). Buyers mostly read one number on it, total THC, and that number moves the price. Which is exactly why it is the most gamed number in the industry, with peer-reviewed studies documenting systematic inflation on retail labels[1][2].

Here is the single idea that makes every section of this paper make sense: a COA is not a property of your crop. It is a measurement, of one small sample, pulled one way, prepared one way, run on one instrument, by one lab, on one day. Change any of those and the number changes, with no fraud involved. Most of the grief in cannabis testing (‘same weed, different number’, lab shopping, inflated labels) comes from people forgetting, or exploiting, that distinction.

COA (certificate of analysis)The lab's formal report of what it measured in a specific sample: identity, potency, contaminants, methods, and a release signature.
AnalyteAny single thing the lab measures, THCA, lead, a pesticide, a mould count. A COA is a list of analytes with results.
MatrixWhat the sample physically is, dried flower, oil, an edible. The matrix changes how the lab must extract and measure, and how hard the job is.
Batch / lotThe defined quantity of product one COA claims to speak for. The whole game is how honestly a few grams of sample represent it.
LOD / LOQLimit of detection / limit of quantitation, the smallest amount the method can reliably see / reliably put a number on. ‘ND’ (not detected) only means ‘below the LOD’, never zero.
ISO/IEC 17025The international standard for testing-lab competence. Accreditation to it is the baseline credential worth checking on any COA.
One big idea

The certificate describes one sample — roughly one gram, through one lab's process, on one day. Good sampling and an accredited lab make that description accurate for the sample tested. It is still a description of one sample, not your crop. Everything in this paper is about knowing how faithfully that sample represents your batch.

Evidence assessment

Evidence and limitations

How sure is this paper?

We've gone to great lengths to keep these guides honest. One of the main ways we do that is self-review: we actively look for claims that are subjective, only lightly backed by literature, or based on grower practice rather than a controlled study — and we call those out instead of dressing them up as settled science.

Often there simply is no paper for the decision you're making. In those cases we're drawing on what other growers report and what has worked in our own rooms. That can still be useful — but it is not a lab proof. Do what works for your plants, your room, and your meters. If a table disagrees with your crop, believe the crop and log the difference.

Solid
Well supported by plant science, standards, or broad multi-source consensus
  • Core definitions and measurement units used in the paper
  • Safety-critical limits where occupational or standards sources are cited
Operational
What many growers and rooms actually run — start here, then tune
  • Numeric stage targets (light, climate, feed) as starting bands, not laws
  • SOPs that work in many rooms but need your genetics and meters
Grain of salt
Subjective, thin literature, single studies, or “this works for us” practice
  • Any single-number 'guaranteed' yield or potency claim without a multi-site trial
  • Controller setpoints copied from another facility without re-calibration

See something glaringly wrong? Tell us and we'll fix it. Please open a GitHub issue with the paper name and what looks off (include a source if you have one): Report an accuracy issue. Local law, labels, and licences always override any recipe here. Inline notes labelled grain of salt flag the highest-risk over-trust points in the text.

The short version

Laboratory testing overview

To read a COA in sixty seconds, check eight things in order:

  1. Who tested it, a named lab with a checkable accreditation (ISO/IEC 17025 or, in medicinal frameworks, GMP certification)[16].
  2. What was tested, sample ID, batch, matrix, sample mass, and crucially who pulled the sample. ‘Client-submitted’ means the lab never saw your batch.
  3. The basis, dry-weight or as-received, and the moisture content. This alone moves potency ~10–15%.
  4. The potency table, acids (THCA) and neutrals (THC) on separate rows means an HPLC method. Then do the maths: total THC = Δ9-THC + 0.877 × THCA. It should reconcile exactly.
  5. Units, % w/w and mg/g say the same thing (1% = 10 mg/g); don't let a unit switch fool you.
  6. Each contaminant family (microbial, metals, pesticides, mycotoxins, solvents) is its own test with its own method and pass/fail. Potency says nothing about safety.
  7. The footnotes, LOQs, ND definitions, method references. No LOQ column means ‘ND’ is uninterpretable.
  8. The release, a named, dated QA signature. In GMP systems this is where a COA becomes a release decision instead of a marketing asset[15].

And the honesty part, up front: the peer-reviewed record shows reported retail potency in several legal markets is systematically inflated, 70% of tested Colorado flower samples ran more than 15% below label in one study[1], 70% of a three-state audit fell outside ±20% of label[12], and product frequencies ‘bunch’ suspiciously just above the 20%-THC price threshold[2]. When a single number sets the price, someone will lean on it. The defence is knowing how the number is made. Which is the rest of this paper.

The map

Laboratory testing workflow

Between ‘cut a sample’ and ‘PDF lands in your inbox’ sits a pipeline, and every stage of it shapes the final numbers. The instrument is the glamorous part; the sampling and the prep are where the number is really decided.

From batch to certificate1Sampleincrementsacross the wholebatch2Accessionlogged; chain ofcustody starts3Prepgrind, extract,dilute, per test4InstrumentsHPLC, ICP-MS,qPCR, GC5QA + COAreview, sign,releaseEach test family gets its own subsample and its own preparation. The potency gram is not the microbial gram.
Figure 1. The testing pipeline. The batch is only ever represented by the sample taken at step 1 — everything downstream measures that sample, not your room.

Each family of tests uses different physics, which is why one lab houses half a dozen instruments:

The main test families on a full-panel cannabis COA and the instruments behind them.
Test familyWhat it looks forTypical instrumentTypical timeframe
Potency (cannabinoids)THCA, Δ9-THC, CBDA, CBD, CBGA, minor cannabinoidsHPLC-DAD (liquid chromatography)1–3 days
Terpenesaroma volatiles (myrcene, limonene…)GC-MS / GC-FID (gas chromatography)1–3 days
MicrobialTAMC, TYM, pathogens, AspergillusCulture plates (CFU) or qPCR (DNA)plates 3–7 days; qPCR hours
Heavy metalsarsenic, cadmium, lead, mercuryICP-MS after acid digestion1–3 days
Pesticidespanels of dozens of residuesLC-MS/MS + GC-MS/MS2–5 days
Mycotoxinsaflatoxins B1/B2/G1/G2, ochratoxin ALC-MS/MS2–5 days
Residual solventsbutane, ethanol, acetone…headspace GC1–3 days
Moisture / water activitywater content; water availabilityloss-on-drying balance; aw metersame day
Turnaround time varies by method

Culture-based microbiology is the slow lane: colonies need days to grow. qPCR collapses that to hours, which is one reason labs and regulators have been migrating to it, with trade-offs covered in the microbial section below.

Gloved hands holding a printed lab certificate next to labelled jars of dried cannabis flower
Example. The certificate meets the batch: the release paperwork travels with the jars it claims to describe.Grok Imagine
Line by line

How to read a certificate of analysis

Below is a mock certificate from a fictional lab, Example Analytical Ltd, laid out the way most real ones are. The eight callouts are the eight places your eyes should go, in order.

EXAMPLE ANALYTICAL LTDCannabis testing laboratory · ISO/IEC 17025 accreditation no. 1234CERTIFICATE OF ANALYSISReport EA-2025-04187 · version 1Sample IDEA-04187-01Batch / lotFLR-2025-112MatrixDried cannabis flowerSample mass12.4 g receivedSampled2025-06-03 · client-submittedReceived2025-06-04MethodHPLC-DAD (SOP-021)Basisas-received · 11.6% moistureAnalyteResult (% w/w)mg/gLOQ (%)THCA24.20242.00.05Δ9-THC0.929.20.05Total THC *22.14221.4CBDAND0.05CBDND0.05CBGA0.848.40.05Total CBD *ND* Total THC = Δ9-THC + (0.877 × THCA). ND = not detected at the stated LOQ. Results on an as-received basis.Contaminant screening — separate tests on separate subsamplesMicrobialPASSHeavy metalsPASSPesticidesPASSMycotoxinsPASSSolventsN/A — flowerAspergillus spp.: not detected in 1 g · TYMC 3.2 × 10³ CFU/g (limit 10⁴) · TAMC 1.8 × 10⁴ CFU/g (limit 10⁵)Reviewed and released byJ. Example — Quality Manager2025-06-10Results relate only to the sample as received. This certificate shall not be reproduced except in full.Sampling was not performed by the laboratory.Page 1 of 1 · EA-2025-04187 · Example Analytical Ltd is a fictional laboratory1Who tested it.A named, accredited lab — the accreditation number is checkable.2One sample stands in for the batch.12.4 g speaks for kilograms — how it was pulled decides everything.3Basis and moisture.As-received vs dry-weight moves this potency number by ~12%.4Acids and neutrals, separately.THCA and Δ9-THC on their own rows — the signature of an HPLC method.5Do the maths yourself.0.92 + 0.877 × 24.20 = 22.14.A total that will not reconcile is a red flag.6ND never means zero.Not seen above the LOQ. No LOQ column = ND is uninterpretable.7Each family is its own test.Own subsample, own instrument. Potency says nothing about safety.8The honesty clause.Client-submitted: the lab never saw your batch — only this bag.The small print says exactly that, in ISO language.
Figure 2. A mock COA with the eight blocks annotated. Every real certificate is a variation on this layout: identity, sample metadata, potency table, contaminant panels, and a release signature.
  1. 1
    Lab identity and accreditation
    A real lab puts its name, address and accreditation number where you can check them against the accreditation body's public register. A PDF with a logo and no accreditation number is just a nicely typeset claim.
  2. 2
    Report ID and version
    One report, one version. Amended reports (‘v2’) happen legitimately, but an amendment that only ever moves THC upward deserves questions.
  3. 3
    Sample metadata
    Sample ID, batch/lot, matrix, mass received, dates. And who did the sampling. ‘Client-submitted’ means the number describes whatever was in the bag you sent, which is a very different claim from a lab-sampled batch result.
  4. 4
    Basis and moisture
    As-received or dry-weight, with the measured moisture. Without this line, two COAs cannot be compared at all, see the basis section below.
  5. 5
    The potency table
    THCA and Δ9-THC on separate rows (an HPLC signature), minor cannabinoids, a starred total. Verify: total THC = Δ9-THC + 0.877 × THCA. On the mock: 0.92 + 0.877 × 24.20 = 22.14%. It reconciles. If it doesn't, ask why before you trust anything else on the page.
  6. 6
    Footnotes and LOQs
    ND means ‘not detected above the limit shown’, never zero. The LOQ column is what makes ND mean something. Its absence is a reporting failure.
  7. 7
    Contaminant panels
    Each family (microbial, metals, pesticides, mycotoxins, solvents) is a separate test on a separate subsample. A stellar THC number and a failed Aspergillus test live happily on the same certificate.
  8. 8
    Release signature and the small print
    A named QA person, dated. Then the ISO-language honesty clause: results relate only to the sample as received. That sentence is the legal truth of everything above it.
Verify the certificate itself

Accredited labs will confirm a report number if you ring them, and many print a QR code or portal link for verification. Fake and altered COAs circulate in every market. A two-minute check beats arguing with a buyer later.

The 0.877 factor

Total THC: calculation and chemistry

The living plant barely makes any THC. It makes THCA, tetrahydrocannabinolic acid — THC with an extra chemical group (–COOH) attached that makes it non-intoxicating and about 13% heavier. Think of baking soda releasing bubbles in a hot pan: heat forces a gas out of the molecule and leaves a chemically different compound behind. THCA does exactly that — heat strips the extra group off as CO₂ gas, a reaction called decarboxylation[4]. A lighter, a vape, an oven. That is where most of the THC in your life is actually created.

The 0.877 factor — mass balance, not magicHeat snaps the carboxyl group off THCA and it leaves as CO₂ gas. What remains is lighter — by exactly 12.3%.THCAC₂₂H₃₀O₄ — 358.5 g/molthe acid the living plant makes–COOHheatdecarboxylationCO₂ leaves — 44.0 g/molTHCC₂₁H₃₀O₂ — 314.5 g/molthe neutral, active form314.5 ÷ 358.5 = 0.877 — so 1 g of THCA can only ever become 0.877 g of THCWorked example — the numbers from the mock certificate:THCA measured: 24.20%already-formed Δ9-THC: 0.92%24.20% × 0.877 = 21.22% potential THC12.3% of the acid mass leaves as CO₂ — it was never THC+Total THC = 21.22 + 0.92 = 22.14% — a theoretical ceiling, not a promiseThe formula assumes every THCA molecule survives conversion. Real smoking and vaporising convert less —heat destroys part of the THC before it ever reaches anyone.
Figure 3. Mass balance of decarboxylation. THCA (358.5 g/mol) loses CO₂ (44.0 g/mol) and becomes THC (314.5 g/mol). The ratio 314.5 ÷ 358.5 = 0.877 is why a gram of THCA can only ever yield 0.877 g of THC, 12.3% of the acid's mass was never THC to begin with.

That is the whole mystery of the 0.877 factor: it is a molecular-weight ratio, not a correction fudge. THC weighs 314.5 g/mol; THCA weighs 358.5 g/mol; 314.5 ÷ 358.5 = 0.877. So the standard label formula is:

Total THC = Δ9-THC + (0.877 × THCA)

This is the ‘total potential THC’ convention used by regulators and analytics datasets alike[2][3]. Read it as a ceiling: it assumes every single THCA molecule survives conversion. Real-world heating never achieves that, some THCA and THC are destroyed or lost before they reach anyone.

How fast does the conversion actually run? In controlled kinetics work, THCA in an open reaction vessel fully converted in about 30 minutes at 110 °C (230 °F), about 9 minutes at 130 °C (266 °F) and about 6 minutes at 145 °C (293 °F), and, heated in the dark under vacuum, produced no significant CBN (the oxidation by-product)[4]. In air, with light and higher temperatures, losses grow, which is exactly why the formula's assumption of perfect conversion makes it a maximum, not a prediction.

THCA disappearing at 110 °CFirst-order decay consistent with Wang et al. (2016): complete conversion in ~30 min at 110 °C (230 °F), ~9 min at 130 °C (266 °F), ~6 min at 145 °C (293 °F). Curve is schematic.0255075100051015202530 min% THCA remaining
Figure 4. Decarboxylation kinetics. The acid disappears exponentially with time; hotter is faster but also riskier for THC itself and brutal on terpenes[4].

Slow decarboxylation also happens at room temperature, during curing and storage, THCA quietly ticks over to THC, and THC slowly oxidises onward to CBN. This is why an old COA and a fresh one on the same batch can honestly disagree: the material itself moved.

CBD uses the same factor family

CBDA → CBD uses its own molecular-weight ratio (also 0.877, since the acids and neutrals differ by the same CO₂ group): total CBD = CBD + 0.877 × CBDA. Any ‘total’ cannabinoid on a COA should be exactly this arithmetic, recompute it when it matters.

Lab technician loading amber vials into an HPLC autosampler with a chromatogram on screen
Example. Potency on an HPLC: the extract runs cool, so the acid and neutral cannabinoids reach the detector as separate peaks.Grok Imagine
HPLC vs GC

HPLC versus GC for potency testing

Two chromatography families dominate potency testing, and they do not see the same molecules. HPLC (high-performance liquid chromatography) pushes the extract through a column in liquid at near-room temperature. Different molecules travel through the column at different speeds — like pigments separating on wet paper, where some colours travel further than others — so THCA and THC arrive at the detector as separate, distinct peaks. GC (gas chromatography) must vaporise the sample in an injector inlet at roughly 250–300 °C (482–572 °F). At that temperature THCA decarboxylates on the spot, so the acid never reaches the detector as itself[6].

Same flower, two instruments — why HPLC and GC disagreeone extractHPLC — liquid chromatography, runs coolpump + column≈ 25–40 °CDAD detectorUV absorbanceTHCAΔ9-THCSees the acid and the neutral as separate peaks — total THC is then arithmetic, via 0.877.GC — gas chromatography, runs hotinjector inlet≈ 250–300 °Chot column+ FID / MSTHC onlyacid goneTHCA → THC + CO₂ happens here — and not completely.One classic validation found ≈70% conversion in the system: the acid is invisibleand the reported total is understated by an amount you cannot see.Both are legitimate instruments. But a potency number means nothing until you know which path produced it.
Figure 5. The two analysis paths. HPLC runs cool and reports THCA and THC separately, so total THC is computed with the 0.877 factor. GC destroys the acid in the hot inlet: it reports a single ‘THC’ number that silently includes converted THCA. And the conversion is not even complete[5].

The nasty detail is that the in-inlet conversion is incomplete and variable. Classic forensic work isolating pure THCA found decarboxylation under GC conditions converted only around 70% of the acid, and concluded that the only exact route to total THC is to measure THCA and THC separately and add them arithmetically. Any post-decarboxylation measurement gives a minimum, not the true value[5]. On GC, acids are invisible unless the lab derivatises them first (a chemical cap that survives the heat)[6].

The two chromatography families. Neither is wrong. But their numbers are not directly comparable.
HPLC-DADGC-FID / GC-MS
Operating temperature≈25–40 °C (77–104 °F) column≈250–300 °C (482–572 °F) inlet, hot column
Sees THCA and THC separately?Yes, two peaksNo, acid decarboxylates in the inlet
Total THC comes fromarithmetic: THC + 0.877 × THCAone merged peak (conversion incomplete[5])
Derivatisation needed for acidsNoYes, or the acids are lost[6]
Typical role todaypotency (industry standard)terpenes, residual solvents; potency in some jurisdictions
A flower COA without a THCA row

Either the lab ran GC (fine, but the total is a floor, not an exact number), or the report is hiding detail. Both are reasons to ask for the method reference, which any accredited lab lists on the certificate.

Units and water

Units and moisture basis

Units first, because this one is mercifully simple: % w/w and mg/g are the same number, one decimal place apart. 1% w/w = 10 mg/g. Flower COAs usually report %, oils and edibles often report mg/g or mg per unit. 22.14% = 221.4 mg/g. No trap here beyond unfamiliarity.

The basis is the real trap. Flower is roughly 10–13% water when properly dried. A potency percentage can be computed against the total mass including that water (as-received / ‘as-is’), or against the solids alone (dry-weight). Same flower, same chemistry, two different numbers:

Dry-weight vs as-received: same flower, two potency numbersWater sits in the denominator. Take it out of the maths and every percentage grows — the THC itself never changed.water — 12% of the massthe THC — same absolute mass in both barsAs-received20.0% total THCdivide by (1 − 0.12)the water leaves the mathswater removedDry-weight basis22.7% total THCdry-weight % =as-received % ÷ (1 − moisture)20.0 ÷ 0.88 = 22.7%at 12% moisture content
Figure 6. The moisture basis. On an as-received basis this flower reads 20.0% total THC; strip the 12% of water out of the denominator and the identical flower reads 22.7% dry-weight. Neither number is wrong. They are answers to two different questions.
Dry-weight % = as-received % ÷ (1 − moisture fraction). The wetter the sample, the bigger the gap.
Moisture contentAs-received readingDry-weight equivalent
8%20.0%21.7%
10%20.0%22.2%
12%20.0%22.7%
15%20.0%23.5%
Never compare across bases

Your 22% dry-weight COA against a competitor's 20% as-received COA compares two different denominators. Check the basis line first, convert, then compare. Interlaboratory studies show labs vary meaningfully even on the moisture measurement itself[8], so small cross-COA gaps are noise.

Gloved hands combining flower increments from multiple bags into one labelled sample jar
Example. Increments, not a grab: a defensible batch sample is pulled from many containers and positions, then documented.Grok Imagine
Sampling theory

Sampling and result representativeness

Everything the instrument will ever see is decided before the courier arrives. A batch might be 12 kg (26.5 lb); the composite sample a few tens of grams; the analytical portion that actually gets extracted, roughly 0.5–1 g (0.02–0.04 oz). That gram speaks for everything. Which is why pharmacopoeial guidance treats sampling procedure as a quality attribute in its own right, not paperwork[7].

The number describes the sample — the sample had better describe the batchBatch FLR-2025-112 — 12 kg in 24 bags123456Six increments from different bags, positions and heights —not just the prettiest top colas.composite~30 g = 0.25% of batchgrind + mixhomogenise, then split0.5–1 ganalytical portionHPLCmeasures this gramEverything the certificate will ever say is decided in this funnel.A 1 g portion speaks for 12,000 g. Change how the increments are pulled and the number changes —no fraud required.
Figure 7. The sampling funnel. Increments pulled from multiple containers and positions are combined into a composite, homogenised, and subsampled down to the analytical portion. Every arrow is a place the number can drift away from the batch truth.

Cannabis makes this harder than most matrices because the analyte lives in the trichomes, and trichomes are not evenly distributed: top colas that grew in strong light run richer than shaded lower buds, small buds shed resin in handling, and ground material stratifies as kief settles. A sample built from the prettiest top nugs is not a batch sample. It is a brochure.

  1. 1
    Define the batch first
    One cultivar, one room, one harvest, one process. If it isn't homogeneous by construction, no sampling plan can rescue it.
  2. 2
    Pull increments, not a grab
    Multiple increments from different containers, positions and depths, including the unglamorous middle and bottom. More, smaller increments beat one big scoop.
  3. 3
    Composite and record
    Combine increments, record who pulled what, from where, when. This is the start of chain of custody.
  4. 4
    Homogenise before splitting
    Grind and mix before any subsample is taken, for potency, the lab does this again on its portion.
  5. 5
    Keep a retained twin
    Split a duplicate sample and store it. When a number looks wrong, the retained sample is your only honest recourse.
Cherry-picking is self-deception with a paper trail

Sending top-cola-only samples inflates the certificate, your customer's expectations, and your own process data all at once. The batch will eventually be smoked by someone who bought the number. Sample like you'll be audited, in medicinal frameworks, you will be.

Even perfect sampling leaves honest variance: duplicate composites from one batch, run by one lab, routinely land a point or so of THC apart. Treat differences of one to two percentage points as the noise floor of the whole exercise, not as information.

Petri dish with mould colonies in front of a qPCR instrument showing amplification curves
Example. Two ways to ask the microbial question: colonies that grow on a plate versus DNA copies counted by qPCR — the same batch can pass one and fail the other.Grok Imagine
Microbiology

Microbial testing methods

Microbial testing asks two kinds of question. How much is growing on this?, answered by counts: total aerobic microbial count (TAMC), total yeast and mould (TYM / TYMC), bile-tolerant Gram-negatives. And is anything dangerous present?, answered by presence/absence tests for specified organisms: Salmonella, pathogenic E. coli, and in inhaled products the four pathogenic Aspergillus species.

CFU (colony-forming unit)One viable organism (or clump) that grows into a countable colony on a culture plate. Plate results are CFU per gram.
qPCRQuantitative polymerase chain reaction: the method copies a target DNA sequence millions of times until there are enough to detect and count. Think of it as a photocopier for DNA — it amplifies the target sequence whether the organism that carried it is alive or dead. Fast (hours) and species-specific, but that dead-DNA blindspot matters after kill steps.
The microbial panel. Numeric limits differ across jurisdictions, the shapes of the tests do not[10].
TestWhat it countsCommon limit styleNotes
TAMCaerobic bacteria (CFU/g)order of 10⁵ CFU/g; varies by jurisdiction[10]general bioburden indicator
TYM / TYMCyeasts + moulds (CFU/g)order of 10⁴ CFU/g; the contested oneflower hosts a natural surface flora
Bile-tolerant Gram-negativesgut-associated bacteriaorder of 10³ CFU/ghygiene indicator
Specified pathogensSalmonella, shiga-toxin E. coliabsent in 1 g (0.035 oz)hard pass/fail
Aspergillus (pathogenic spp.)A. fumigatus, flavus, niger, terreusnot detected in 1 g (0.035 oz)usually enrichment + qPCR

Plates and qPCR genuinely disagree, and metagenomic sequencing has shown why: culture media select. When researchers sequenced what actually grew in standard culture-based yeast-and-mould tests of cannabis, the plates were growing organisms including bacteria, while toxigenic fungi present on the flower were under-represented, and organisms of real clinical concern could be missed entirely[9]. Meanwhile qPCR happily counts DNA from dead cells, so a batch remediated with heat or irradiation can fail qPCR while passing plates.

Why the same batch can pass one microbial method and fail the other. Always read the method line.
Culture platingqPCR
Measureswhat grows on that medium, at that temperaturecopies of target DNA
Time3–7 dayshours
Counts dead organisms?noyes, DNA persists after kill steps
Species identificationpoor without follow-up workbuilt into the primers
Characteristic failurewrong organisms grow; targets don't[9]dead-DNA false fails; primer mismatch
Aspergillus limits use presence/absence, not a count

Inhaled Aspergillus can cause invasive aspergillosis in immunocompromised people, exactly the population medicinal cannabis serves. A count-based limit makes no sense for an organism where the acceptable inhaled dose for a transplant patient is effectively zero; hence the specification of ‘not detected in 1 g (0.035 oz)’.

Heavy metals

Heavy-metal testing by ICP-MS

Cannabis is an enthusiastic accumulator of metals. The same trait that gets hemp planted for soil remediation pulls cadmium and lead out of your substrate, fertiliser and water and stores them in tissue. The panel nearly everywhere centres on the big four: arsenic, cadmium, lead and mercury, with some frameworks screening a wider element list[8].

The big four. Limits vary by jurisdiction and are stricter for inhaled products than oral ones[10].
MetalTypical routes into flowerWhy it's on the panel
Arsenic (As)bore water, some rock-derived amendmentscarcinogen
Cadmium (Cd)phosphate fertilisers, contaminated substratereadily taken up by the plant; accumulates in kidneys
Lead (Pb)dust and soil contact, old solder/pipework, contaminated inputsneurotoxin, no safe exposure level
Mercury (Hg)rare, water or industrial contaminationneurotoxin

The instrument is ICP-MS, inductively coupled plasma mass spectrometry. The lab digests the sample in hot acid until nothing but dissolved elements remain, sprays that solution into an argon plasma running at thousands of degrees, and counts the resulting ions by mass. It is absurdly sensitive, parts-per-billion, which is why metals results carry LOQs that look like 0.01 µg/g.

Your inputs are your metals programme

Flower fails metals because something upstream carried them in. Collect certificates for every fertiliser and substrate lot, test source water, and a metals fail becomes a lookup instead of a mystery. Inhalation limits are tight enough that one contaminated input lot can sink a batch.

Pesticides

Pesticide panels and their limits

A pesticide test is a panel: a defined list of compounds, each measured against an action limit. Pass means ‘nothing on this list was found above these limits’, it does not mean pesticide-free, and it says nothing about compounds the panel doesn't include. That distinction matters because panels differ absurdly between jurisdictions: a survey of US state rules found 551 distinct pesticides regulated somewhere, with action limits for the same compound spanning up to four orders of magnitude between states[10].

  • Two instruments are needed for coverage. LC-MS/MS catches most modern residues; GC-MS/MS catches the volatile and halogenated ones. A lab quoting a big panel runs both.
  • Inhalation changes the toxicology. Residues that are tolerated on lettuce can pyrolyse into nastier chemistry when smoked. Some fungicides are reported to release hydrogen cyanide on combustion, which is why cannabis limits are often far tighter than food limits.
  • History justifies the paranoia. Pre-regulation Californian concentrate screening found pesticides in roughly one-third of samples[11].
  • Drift and carryover count. You can fail a panel without ever spraying, neighbouring agriculture, contaminated secondhand equipment, or a dirty trim room can deposit residues.
Reading a pesticide section

Look for: the panel size (how many analytes), the action limits and their source, the LOQ per analyte, and the method (LC-MS/MS, GC-MS/MS or both). A one-line ‘Pesticides: PASS’ with none of that attached is a vibe, not a result.

Solvents · mycotoxins

Residual-solvent and mycotoxin testing

Residual solvents apply to extracts: whatever chemistry pulled the resin out, butane, propane, ethanol, CO₂ with ethanol polish. Traces can remain, and headspace GC measures them in the finished product. Limits are set per solvent, loosely following pharmaceutical solvent classes: near-zero tolerance for the genuinely toxic ones (benzene, toluene, never used deliberately, but present as impurities in cheap gas), workaday limits for the common process solvents.

Why does a solventless hash or rosin still carry a solvent test? Three honest reasons. The product category triggers the test in most rule sets regardless of process; the test is the only way to verify the solventless claim rather than take it on faith; and contamination doesn't need an extraction step, cleaning agents, fuels and off-gassing in storage can introduce volatiles. A clean solvent panel on rosin is cheap proof your marketing is true. Early concentrate surveys found residual solvents in around 30% of samples, so buyers learned to ask[11].

Mycotoxins are the chemical ghosts of mould: aflatoxins B1, B2, G1, G2 (from Aspergillus flavus and relatives) and ochratoxin A, measured by LC-MS/MS at parts-per-billion limits[10]. Two facts make them their own line on the COA rather than a footnote to the microbial section:

  • They outlive the mould. Kill steps (heat, irradiation, ozone) can crash a TYM count while leaving the toxins fully intact. A batch can pass microbiology and still fail mycotoxins, and remediated product is exactly where to expect that pattern.
  • They are potent at absurdly low doses. Aflatoxin B1 is among the strongest natural carcinogens known, hence limits in the µg/kg (ppb) range in medicinal frameworks[15].
Remediation is not exoneration

Irradiated or heat-treated flower that now passes plate counts still carries whatever toxins the mould made first, and its dead DNA may still fail qPCR. If a batch needed remediation, the mycotoxin line is the one to read hardest.

Water in two numbers

Water activity and moisture content

Two water numbers appear on flower COAs and they answer different questions. Moisture content (%) is how much water is in the sample — mass of water divided by total mass. Water activity (aw, scale 0–1) is how freely available that water is to microbes. Think of a sponge held tightly in a fist versus one sitting in a bowl: both can hold the same amount of water by weight, but the fist-held sponge has most of its water bound and hard to release. Water activity measures that availability — formally, the equilibrium relative humidity the sample generates in a sealed space. Mould does not care how much water you have; it cares whether it can get at it. That makes aw the microbially meaningful number, and it is why pharmacopoeial thinking on stored cannabis centres on a water-activity specification of ≤0.65[7].

Water activity: where mould can and cannot operateBelow 0.55 the flower suffers (brittle trichomes, harsh smoke); 0.55-0.65 is the widely used spec window; above ~0.65 xerotolerant moulds wake up.over-dry: brittle, harshtarget windowcautionmould can grow0.3 aw0.6 aw0.9 aw
Figure 8. The water-activity scale for stored flower. The 0.65 upper bound is the line most specifications draw[7]; the lower bound is about product quality, not safety.
Same water, two questions. A batch can sit at a normal moisture % and still have unsafe water activity, and vice versa, the sorption curve differs by cultivar and trim.
Moisture contentWater activity (aw)
What it measureshow much water (% of mass)how available the water is (0–1)
Instrumentloss-on-drying balancechilled-mirror / capacitive aw meter
Microbial relevanceindirect, depends on how water is bounddirect. Growth thresholds are aw thresholds
Typical spec for flower≈10–13%0.55–0.65

Operationally: dry and cure to a water-activity target, and let moisture content be whatever it is. The paired numbers on the COA also sanity-check each other, aw 0.75 with 11% moisture claims a strange sample; question it.

Honesty section

COA inflation: evidence and warning signs

If a single number sets the price, the number comes under pressure. That is the documented, peer-reviewed history of legal cannabis markets, and any grower choosing a lab should know it cold.

How often measured THC missed the labelShare of retail products whose measured total THC missed the labelled value: >15% below label (2023); outside +/-20% (2024); outside +/-15% (2025).2023 flower (CO)70%2024 flower (3 states)70%2025 flower (CO)43%2025 concentrates (CO)4%
Figure 9. Label accuracy in peer-reviewed retail studies: 70% of Colorado flower samples ran more than 15% below label[1]; 70% of a 107-sample, three-state audit fell outside ±20% of label[12]; and in 2025, 43% of flower but only 4% of concentrates missed a ±15% window[13]. Flower, where sampling is easiest to game, is where the accuracy problem lives.

The mechanism is visible in state datasets. Reported potency for chemotype-I flower across Washington's six largest labs differed systematically: median total THC ranged from 17.7% at the lowest-reporting lab to 23.2% at the highest, a 5.5-percentage-point spread on comparable product that persisted after controlling for strain and producer[3]. And reported values ‘bunch’ just above the magic 20% price threshold: the frequency of products jumps discontinuously above 20% (a 43% spike in Nevada, 17% in Washington) with the bunching concentrated at specific labs (two later-suspended labs showed a 47% spike; the state's largest lab, 1%)[2]. Biology does not know where 20% is. Pricing does.

The 20% cliff: products bunch just above the price lineRelative frequency of flower products reported in the bin just above 20% THC vs just below (below = 100). The jump has no biological cause.04080120160100just below 20%117just above (WA)143just above (NV)147suspended labs
Figure 10. The reporting discontinuity at 20% THC[2]. A smooth biological distribution should cross 20% smoothly; the observed spike, largest at labs later suspended, is the statistical fingerprint of inflation.

Lab shopping is the market dynamic that produces this. Split one batch across three labs, keep the highest number, and give that lab your business. Labs know it. The lab that reports honestly loses accounts to the lab that reports generously, a race to the bottom wearing a lab coat. Inflation methods range from soft (flower-only calibration bias, generous rounding, tolerant sampling) to plainly fraudulent: in 2024 Oregon's regulator charged seven of the state's eleven accredited labs over inflated THC results, including allegations that staff at three labs spiked customer samples with kief before analysis[14]. Licence actions and competitor lawsuits over inflated potency and passed-but-contaminated product have followed in California and Massachusetts.

Variance vs fraud, tell them apart

Honest inter-lab variance is real even among competent labs, interlaboratory programmes exist precisely because cannabis measurement comparability is hard[8], but honest variance is symmetric. It scatters around the truth. Inflation is directional: always the good news. If a lab's numbers are consistently the best in town, that is not luck; that is a product they are selling.

What an operator does with this: pick a lab for its accreditation scope and method transparency, not its averages; split-sample occasionally against a second lab and expect ~1–2 points of honest scatter; keep retained samples; and treat any account manager who promises numbers as a walking licence risk. In GMP-style medicinal systems the incentive flips, the lab serves batch release, not marketing. Which is a large part of why those numbers are steadier[15][16].

Interpretation

Interpretation limits of a single result

A COA is genuinely useful, inside its limits. What a single certificate can tell you: the potency class of the sampled material (a 15% batch and a 25% batch are truly different things); the pass/fail status of that sample against that panel; and, over many batches from your own room with consistent sampling, a trend worth steering by. What it cannot tell you:

  • Your whole room's number. The certificate describes the sample. The batch inherits it only as far as your sampling was honest.
  • Differences of a point or two. Sampling scatter plus inter-lab spread swamp them, the documented systematic spread between labs alone was 5.5 points[3].
  • Quality, effect or experience. THC% correlates weakly with what a product is like to consume; terpenes, minor cannabinoids, cure and freshness carry most of it. Chasing the number off the certificate is chasing the wrong thing.
  • Next batch. A COA is a record, not a forecast. Genetics × environment × process will move the next one.

When the number looks weird

Triage table: read the metadata before doubting the chemistry, most anomalies live in sampling, basis or method, not in the instrument.
SymptomMost likely explanationsWhat to check
THC jumped 3–4 points on the same cultivarsampling drift (top colas), basis change, different lab or methodwho sampled; basis + moisture lines; lab and method IDs on both COAs
Total THC ≠ THC + 0.877 × THCAtypo, different total convention, GC-derived totalrecalculate; ask the lab which formula and method they used
Flower reporting 35%+ total THCbiologically implausible for nearly all cultivars, enriched sample or inflationsplit-sample retest at an independent lab; check for kief enrichment
TYM failed, retest passeddifferent method (plate vs qPCR), different subsample, or remediation in betweenmethod lines on both COAs; whether the batch was treated between tests
Metals failure from nowherenew fertiliser or substrate lot, water change, equipment contaminationinput CoAs and lot numbers; source-water test
Moisture reads 6% but flower feels normalsample dried in transit or sat before analysiswater activity at pack-out; days between sampling and testing
CBD appears in a THC cultivarmislabelled genetics, or peak misassignment at the labverify the cultivar; ask the lab to confirm peak identity

COA red flags

identity
No accreditation number

Anyone can typeset a PDF. If the lab and its accreditation can't be verified in a public register, the document is a claim, not a certificate.

reporting
No LOQ column

‘ND’ without a limit is uninterpretable, not detected above what? Serious labs always print it.

method
Only ‘THC’, no THCA row

Either a GC method (total is a floor, not exact) or lazy reporting. Both mean: ask for the method reference.

sampling
Client-submitted, sold as batch-wide

The lab measured a bag someone filled. Treating that as a batch result is the oldest trick in the book.

incentives
The local hero lab

Always 2–3 points above everyone else in town. That consistency is a business model, not chemistry[2].

paper trail
Amended reports, rising numbers

Reissued certificates happen; reissues that only ever move THC upward with no explanation are a pattern worth walking away from.

One mental model to keep

One certificate = one measurement: one sample, one lab, one day. The measurement is useful within those limits. Be suspicious of any lab whose numbers are consistently the highest in town — that pattern is a business model, not chemistry.

Medicinal context

Testing for release in NZ and Australia

In the Australasian medicinal systems the COA plays a structurally different role from a retail label. In Australia, unapproved medicinal cannabis products must conform to TGO 93 (Therapeutic Goods (Standard for Medicinal Cannabis) Order 2017): assayed cannabinoid content must sit within 90.0–110.0% of the label claim, contaminant limits (including aflatoxins and pesticide residues) apply, and the regulator can pull and test product at any time[15]. In New Zealand, products must meet the minimum quality standard under the Misuse of Drugs (Medicinal Cannabis) Regulations 2019, with critical tests performed by GMP-certified facilities and ISO/IEC 17025 accreditation recognised for the rest[16].

The operative concept is release testing: a batch is tested against a registered specification, a qualified person reviews the full data set, and the batch is formally released, or not. The COA becomes one input to a documented decision, made by someone whose signature carries liability. Contrast that with a retail market where the COA's main job is to make the jar look good on a menu, and the potency-inflation record earlier in this paper stops being surprising: same document, opposite incentive structure.

  • A 90–110% label-claim window means a batch can fail for being too strong. The target is accuracy, not magnitude[15].
  • Stability data and shelf-life claims ride on the same analytics. The release COA is re-verified over time, which quietly disciplines the initial numbers.
  • Testing under GMP means validated methods, qualified instruments and audit trails, the lab's answer to ‘how do you know?’ is a documented system, not a shrug.
Scope note, not legal advice

This section sketches the shape of the frameworks, not their current detail. Standards, schedules and guidance move; anyone operating under TGO 93 or the NZ scheme should work from the regulator's current documents[15][16] and their own quality agreements, not from a white paper.

For growers elsewhere, the takeaway is portable: the closer your own testing practice is to release-style discipline, fixed sampling SOP, one accredited lab, retained samples, trend charts, numbers nobody is paid to like. The more your COAs are worth, to you and to anyone auditing you.

Related papers

References

  1. Schwabe AL, Johnson V, Harrelson J, McGlaughlin ME (2023). Uncomfortably high: testing reveals inflated THC potency on retail Cannabis labels. PLoS ONE 18(4):e0282396. (70% of 23 Colorado flower samples measured >15% below labelled THC.) https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0282396
  2. Zoorob MJ (2021). The frequency distribution of reported THC concentrations of legal cannabis flower products increases discontinuously around the 20% THC threshold in Nevada and Washington state. Journal of Cannabis Research 3:6. (Defines total THC = 0.877 × THCA + THC; documents reporting spikes just above 20% concentrated at specific labs.) https://pmc.ncbi.nlm.nih.gov/articles/PMC7958443/
  3. Jikomes N, Zoorob M (2018). The cannabinoid content of legal cannabis in Washington State varies systematically across testing facilities and popular consumer products. Scientific Reports 8:4519. (Median total THC for comparable flower spanned 17.7-23.2% across the six largest labs.) https://pmc.ncbi.nlm.nih.gov/articles/PMC5852027/
  4. Wang M, Wang Y-H, Avula B, et al. (2016). Decarboxylation study of acidic cannabinoids: a novel approach using ultra-high-performance supercritical fluid chromatography/photodiode array-mass spectrometry. Cannabis and Cannabinoid Research 1(1):262-271. https://pmc.ncbi.nlm.nih.gov/articles/PMC5549281/
  5. Dussy FE, Hamberg C, Luginbühl M, Schwerzmann T, Briellmann TA (2005). Isolation of Δ9-THCA-A from hemp and analytical aspects concerning the determination of Δ9-THC in cannabis products. Forensic Science International 149(1):3-10. (Decarboxylation under GC conditions incomplete, ~70%; exact total THC requires measuring THCA and THC separately.) https://pubmed.ncbi.nlm.nih.gov/15734104/
  6. Pourseyed Lazarjani M, Torres S, Hooker T, Fowlie C, Young O, Seyfoddin A (2020). Methods for quantification of cannabinoids: a narrative review. Journal of Cannabis Research 2:35. (GC heat decarboxylates acidic cannabinoids unless derivatised; HPLC resolves acids and neutrals directly.) https://pmc.ncbi.nlm.nih.gov/articles/PMC7819317/
  7. Sarma ND, Waye A, ElSohly MA, et al. (2020). Cannabis inflorescence for medical purposes: USP considerations for quality attributes. Journal of Natural Products 83(4):1334-1351. (USP Cannabis Expert Panel: sampling, cannabinoid content, water activity, microbial and elemental contaminant specifications.) https://pubs.acs.org/doi/10.1021/acs.jnatprod.9b01200
  8. Yarberry A, Phillips MM, Wilson WB (2024). Cannabis Laboratory Quality Assurance Program: Exercise 2 cannabinoid final report. NIST IR 8519, National Institute of Standards and Technology. (Interlaboratory comparability of cannabinoid, moisture and toxic-element measurements in cannabis plant material.) (industry/manufacturer or non-journal source) https://www.nist.gov/publications/cannabis-laboratory-quality-assurance-program-exercise-2-cannabinoid-final-report
  9. McKernan K, Spangler J, Helbert Y, et al. (2016). Metagenomic analysis of medicinal Cannabis samples; pathogenic bacteria, toxigenic fungi, and beneficial microbes grow in culture-based yeast and mold tests. F1000Research 5:2471. (Culture media select for unintended organisms; toxigenic fungi under-detected by plate-based TYM.) https://f1000research.com/articles/5-2471/v1
  10. Jameson LE, Conrow KD, Pinkhasova DV, et al. (2022). Comparison of state-level regulations for cannabis contaminants and implications for public health. Environmental Health Perspectives 130(9):097001. (679 regulated contaminants across 36 states + DC — 551 pesticides, 74 solvents, 21 microbes, 5 mycotoxins; action limits vary up to four orders of magnitude.) https://pmc.ncbi.nlm.nih.gov/articles/PMC9472674/
  11. Raber JC, Elzinga S, Kaplan C (2015). Understanding dabs: contamination concerns of cannabis concentrates and cannabinoid transfer during the act of dabbing. Journal of Toxicological Sciences 40(6):797-803. (Pesticides in ~one-third and residual solvents in ~30% of pre-regulation California concentrates.) https://www.jstage.jst.go.jp/article/jts/40/6/40_797/_article
  12. Geweda MM, Majumdar CG, Moore MN, et al. (2024). Evaluation of dispensaries' cannabis flowers for accuracy of labeling of cannabinoids content. Journal of Cannabis Research 6:12. (107 dispensary flower samples from three states: only 30% within ±20% of labelled Δ9-THC; labels claimed up to 58.2%.) https://pmc.ncbi.nlm.nih.gov/articles/PMC10924369/
  13. Giordano G, Brook CP, Ortiz Torres M, et al. (2025). Accuracy of labeled THC potency across flower and concentrate cannabis products. Scientific Reports 15:20822. (277 Colorado products: 96.0% of concentrates but only 56.7% of flower within ±15% of label; measured potency significantly below label.) https://www.nature.com/articles/s41598-025-03854-3
  14. Sliwoski V (2024). Oregon cracks down on THC inflation and testing labs. Harris Sliwoski Canna Law Blog. (OLCC violation notices against seven of eleven accredited labs; three alleged to have spiked customer samples with kief.) (industry/manufacturer or non-journal source) https://harris-sliwoski.com/cannalawblog/oregon-cracks-down-on-thc-inflation-and-testing-labs/
  15. Therapeutic Goods Administration (Australia). Therapeutic Goods (Standard for Medicinal Cannabis) (TGO 93) Order 2017 — quality requirements for medicinal cannabis (assay 90.0-110.0% of stated content; contaminant limits incl. aflatoxins and pesticide residues). (industry/manufacturer or non-journal source) https://www.tga.gov.au/resources/legislation/therapeutic-goods-standard-medicinal-cannabis-tgo-93-order-2017
  16. Ministry of Health — Manatū Hauora (NZ). Requirements for the medicinal cannabis minimum quality standard (Misuse of Drugs (Medicinal Cannabis) Regulations 2019; GMP-certified testing for critical tests, ISO/IEC 17025 recognised otherwise). (industry/manufacturer or non-journal source) https://www.health.govt.nz/regulation-legislation/medicinal-cannabis/information-for-industry/working-with-medicinal-cannabis/requirements-for-the-minimum-quality-standard

Citations marked in-text as [n] map to this list. Primary literature and official guidance except where noted. Cannabis tissue culture is strongly genotype-dependent, verify dilutions, hormone doses and local regulations against the primary sources before relying on them.