Reading a certificate of analysis: what a COA actually shows
Every field on a COA, explained: the 0.877 Total THC formula, what ND actually means, and the concrete signs a result has been altered or lab-shopped.
On this page
Most people reading a certificate of analysis go straight to one number: the THC percentage on the front page. That number is a calculation, not a direct measurement, and a report that shows it without the two figures behind it cannot be checked at all.
A COA is what a lab hands back after testing a cannabis sample: a snapshot of chemical composition and contaminant levels, tied to one sample, one method and one date. Whether you are a home grower who paid for a private potency test, a club member checking a distributed batch, or a commercial QA lead reviewing a supplier's paperwork, the same reading skills apply: know which fields are measurements, which are calculations, and which are pass/fail decisions against a limit someone else set.
What every field on the page actually means
Read the metadata block before the numbers. It tells you whether the result even applies to what you are holding.
| Field | What it tells you | Why it matters |
|---|---|---|
| Sample ID | A unique code for this specific sample pulled for testing | Links the result to one physical sample, not the whole batch by assumption |
| Batch/lot number | The production batch the sample was drawn from | Must match the number on the packaging or the release record; a mismatch is a red flag (see below) |
| Collected/sampling date | When the sample was pulled from the batch | Separate from testing: a batch can sit for weeks between sampling and lab receipt |
| Received date | When the lab logged the sample in | Confirms chain of custody; a long gap between collection and receipt invites questions about what happened in between |
| Tested date | When the analysis actually ran | Some panels have to run before release, not after |
| Reported date | When the certificate was issued | The date "as of" for every number on the page |
| Lab name and accreditation number | The testing body and its formal competence certificate | A logo is not proof; the number is checkable against the accreditor's own published records [1][2] |
| Accreditation scope | The specific methods and analytes the lab is certified to run | A lab accredited for cannabinoids is not automatically accredited for pesticides or heavy metals |
| Method column | The analytical technique used per analyte, e.g. HPLC-DAD, GC-FID, ICP-MS | No method column means no way to judge what the number can and cannot detect |
| Blank or missing row | An analyte the lab did not test for | Not the same as a pass. A blank row is an absence of information, not a clean result |
This is close to what regulators tell consumers to look for directly [3], and it follows the analyte and terminology conventions proposed in a 2020 peer-reviewed review written to help standardise USP cannabis quality attributes [4].
The arithmetic behind the headline number
Cannabinoids are made and stored in the plant mostly as acids: tetrahydrocannabinolic acid (THCA), not Δ9-THC itself. Heat converts THCA to Δ9-THC by knocking off a CO₂ group, which is why a cannabinoid panel reports THCA and Δ9-THC as two separate lines and calculates Total THC from both:
Total THC = (THCA × 0.877) + Δ9-THC
The 0.877 factor is not a rounding convention. It is the molecular-weight ratio of THC (314.5 g/mol) to THCA (358.5 g/mol): when THCA loses CO₂ on decarboxylation, about 12.3% of its mass leaves as gas, so only 87.7% of the acid's mass converts to the neutral cannabinoid [5]. The same factor appears directly in regulatory text: Malta's cannabis-association testing standard defines Total THC as exactly THCA × 0.877 plus Δ9-THC, reported on a dry-weight basis [6].
- Decarboxylation mass-loss constant0.877THC molecular weight ÷ THCA molecular weight
- Worked example: THCA21.4%dry weight
- Worked example: Δ9-THC0.5%dry weight
- Worked example: Total THC19.3%(21.4 × 0.877) + 0.5
A certificate that prints only "Total THC 19.3%" with no THCA or Δ9-THC line cannot be checked by arithmetic, and it cannot be checked for internal consistency either: there is no way to confirm the lab didn't just write down a number. Ask for the panel that shows the split (see potency testing: HPLC vs GC for why the method used to produce that split matters too), not the headline figure alone.
ND doesn't mean zero
Every analytical method has a floor. Below a certain concentration, the method cannot tell a real signal from background noise; a little above that, it can detect the analyte but not measure it precisely enough to report a number.
| Term | What it means | What it does not mean |
|---|---|---|
| Limit of detection (LOD) | The smallest amount the method can reliably distinguish from noise | Proof the analyte is completely absent below this point |
| Limit of quantitation (LOQ) | The smallest amount the method can measure with acceptable accuracy and precision; always higher than the LOD | The point at which the analyte itself stops existing |
| ND, "not detected" | The result fell below the lab's reported LOQ for that analyte | Zero. It means "present at an amount this method cannot reliably report," which could be anything from none to just under the LOQ |
A result printed as ND with no LOQ number next to it is not fully checkable: you cannot tell whether the method's floor was tight enough to matter for your decision.
Two different kinds of number can sit in a contaminant row, and mixing them up is the most common misreading of a COA. A reported value is a plain measurement with no pass/fail attached, which is how most cannabinoid and terpene lines work. An action limit is a ceiling set by a regulator or standard, and the lab compares its reported value against that ceiling to produce a Pass or Fail [3]. Heavy metals, microbial counts and mycotoxins almost always carry action limits; potency and most terpenes usually do not.
The relationship between LOQ and action limit matters more than either number alone. Oregon's cannabis-testing rule requires a lab's LOQ for a regulated analyte to sit at or below half the action limit for that analyte [7]. A method whose floor sits close to or above the pass/fail line cannot reliably tell a marginal pass from a marginal fail, whatever the report says.
How a real potency number gets inflated
A THCA/Δ9-THC split that adds up correctly still describes only the sample the lab received. A few practices, none of which show up anywhere on the certificate itself, can push a batch's reported potency above what a buyer or member actually receives.
- Testing before the batch reaches its target moisture. Cannabinoid content is reported on a dry-weight basis, so the moisture correction has to be right. Material pulled and tested early in drying, rather than once it has reached the batch's stated moisture range, is a recurring source of disputed results; growers and lab-watchers flag it as a concern, and it has not been settled by a controlled trial. See water activity and moisture content for the correction itself.
- Sampling only dense, trichome-rich flower and leaving out leaf and lower-canopy material the batch actually contains. Leaf tissue carries noticeably less resin than calyx, so a sample drawn only from the best-looking colas reads higher than a sample reflecting the whole batch, by plain sampling bias rather than any error in the lab.
- Reporting the highest sub-lot in a batch as if it represented the batch, instead of a pooled, representative sample. Sampling flower for lab testing covers the sub-sampling method that avoids this.
Rounding compounds all three. A report that rounds Total THC to one decimal place, or further, can nudge a 19.3% result toward 20%: small on paper, but it is a claim of precision the underlying method may not support unless the lab states its measurement uncertainty alongside the number.
None of this touches the lab's arithmetic. It changes what gets put in front of the lab in the first place, which is why the sampling procedure on a COA, or its absence, matters as much as the panel results.
One COA, line by line
Six zones, six checks
Identity
Sample ID and Batch/Lot No. must match the packaging or the release record.
Date chain
Collected, Received, Tested, Reported, in that order. Here the sample took 4 days to reach the lab.
Accreditation and scope
Look the certificate number up with the accreditor, and check the scope covers every panel reported.
Analyte panels
Total THC is calculated from the two rows above it, not measured. Every ND carries an LOQ. No Limit column: these are measurements.
Contaminant panel
Pass is a comparison: read each Reported value against its Limit yourself.
Sign-off
The lab’s authorised signatory. The Qualified Person signs the batch release separately.
Take a single realistic result and read it the way a release decision would. The contaminant limits below use Malta's ARUC testing standard as one real, cited example; see Malta: ARUC testing and release rules for the full rule set [6]. Every jurisdiction and association sets its own numbers, and the figures under Result and Reported here are an illustrative worked example, not a real lab's data.
Cannabinoid panel, HPLC-DAD, dry weight:
| Analyte | Result | LOQ |
|---|---|---|
| THCA | 21.4% | 0.02% |
| Δ9-THC | 0.50% | 0.02% |
| Total THC (calculated) | 19.3% | – |
| CBDA | ND | 0.02% |
| CBG | 0.31% | 0.02% |
| CBN | 0.04% | 0.02% |
| CBC | ND | 0.02% |
Terpene panel, GC-FID, dry weight:
| Terpene | Result | LOQ |
|---|---|---|
| β-Myrcene | 0.42% | 0.01% |
| D-Limonene | 0.18% | 0.01% |
| β-Caryophyllene | 0.15% | 0.01% |
| α-Pinene | ND | 0.01% |
Every terpene row carries a result and an LOQ, exactly like the cannabinoid panel, but there is no limit column: terpene content is a composition measurement, not a contaminant check, so nothing here can pass or fail. It describes the sample; it does not gate the release.
Contaminant panel, plate count for microbials, ICP-MS for metals, ELISA for mycotoxins:
| Test | Reported | Limit | Result |
|---|---|---|---|
| Total aerobic microbial count | 340 cfu/g | 2,000 cfu/g [6] | Pass |
| Total yeast and mould count | ND | 1,000 cfu/g [6] | Pass |
| Lead (Pb) | 0.08 µg/g | 0.5 µg/g [6] | Pass |
| Total aflatoxins | ND | 0.020 µg/g [6] | Pass |
Reading this line by line: the cannabinoid panel checks out because Total THC reconstructs from THCA and Δ9-THC using the 0.877 factor; the terpene panel carries the same LOQ discipline with no pass/fail line attached, because nothing regulates terpene content; every ND row across both panels carries an LOQ, so "not detected" means "below 0.01–0.02%," not "confirmed absent"; and every contaminant line shows a reported value next to the limit it was checked against, rather than a bare Pass with nothing to verify it against. A qualified person still has to sign the release decision itself: Malta's standard requires a named, qualified signatory to confirm the batch meets the stipulated requirements before distribution, separate from the lab's own report [6].
Signs the certificate doesn't add up
A single missing item is not automatically fraud (small labs sometimes run lean paperwork), but two or more together are reason enough to ask for a fresh, verifiable copy before acting on the result.
What the certificate cannot tell you
A COA measures chemical composition and contaminant levels against a stated method and a stated limit, full stop. It says nothing about effect, strength of high, or medical suitability, and any report that implies otherwise, a "quality score" or a "potency grade" layered on top of the measured percentage, is adding marketing to a measurement, not reporting one. Treat the numbers as exactly what they are: what was in this sample, on this date, measured this way.
Before you rely on a certificate for anything beyond your own curiosity, do three cheap checks: confirm Total THC reconstructs from the THCA and Δ9-THC lines, confirm every ND carries an LOQ, and confirm the accreditation number against the lab's own published scope, not just the PDF in front of you [1][2]. If a report resists any of the three, treat the headline percentage as unverified rather than as fact. See ISO 17025 accreditation checklist for the fuller version of that third check, and quality attributes of cannabis flower for what a COA never measures at all: appearance, aroma and foreign matter.
Sources
- A2LA (n.d.). Cannabis Testing Laboratory Accreditation Program Accessed 2026-09-27.
- ANAB (n.d.). ISO/IEC 17025 Cannabis Testing Laboratory Accreditation Accessed 2026-09-26.
- New York State Office of Cannabis Management (2023). How to read a lab Certificate of Analysis for your cannabis product Accessed 2026-09-27.
- 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 Accessed 2026-09-27.
- Confidence Analytics (n.d.). Why 0.877? Accessed 2026-09-27.
- Malta. Authority on the Responsible Use of Cannabis, Directive 1: Technical Standards and Approved Operating Practices, Standard VII (v2.0, 5 July 2024) Accessed 2026-09-26.
- Oregon. Oregon Administrative Rules 333-064-0100(12), Cannabis sampling procedures and testing (current) Accessed 2026-09-27.