Skip to content

COAs and testing

How to read a COA: a section-by-section walk-through with the math

Read a hemp COA top to bottom: lab header, batch block, potency table, percent to mg conversions, total THC with 0.877, LOQ, contaminant panels and QR code.

Written by: Author pendingReviewed by: Reviewer pendingUpdated:

This page reads one certificate of analysis from top to bottom. The worked numbers use an illustrative tincture: a 30 milliliter bottle with a stated fill weight of 28.0 grams, 30 servings, labeled 1,500 milligrams CBD. Every conversion below uses the federal formulas in 7 CFR 990.1 and the per-container limit in Public Law 119-37, section 781.

What should the header and lab block show?

Answer

The header names the laboratory, its address, its accreditation body and certificate number, and the standard it is accredited to, which for testing labs is ISO/IEC 17025, "General requirements for the competence of testing and calibration laboratories." Accreditation under that standard is granted for 1 year at a time and comes with a published Scope of Accreditation (NIST NVLAP).

Check the lab, not the logo. Look up the certificate number in the accreditation body's directory and open the scope document; confirm it lists cannabinoid potency and the contaminant panels for the matrix on the report. A lab accredited for plant material only has stepped outside its scope when it reports on a gummy. The header should also show the lab's license number if its state requires one, and a report number unique to this document.

If the header shows the brand's name where the lab's should be, the document is an in-house report, not a third-party COA. Results vary between labs; NIST built its CannaQAP exercises to help cannabis labs "demonstrate and improve measurement comparability" (NIST CannaQAP), so the lab's identity is the first fact to pin down.

What goes in the sample ID and batch block?

Answer

The sample block ties the report to a physical batch: the client's batch or lot number, the lab's sample ID, the matrix, the dates received and tested, and often the sample mass. The batch number must match the package exactly; FDA's 2020 sampling found 2 products that listed CBD and contained none (FDA 2020 report).

On the example report the block reads: Batch 2026-TNC-0917, Sample ID L-48812, Matrix: tincture (MCT oil), Received 2026-09-19, Tested 2026-09-22, Sample received: 2 retail units, 28.0 g fill each. The fill weight is the number every later conversion depends on. A COA that reports results per gram but never states how many grams are in the container has handed that step to you; the label's net weight is the fallback.

Dates should run in sequence: manufactured, received, tested, then packaged for sale. A received date before the batch existed means the report belongs to another batch.

How do you read the cannabinoid potency table?

Answer

The potency table lists each cannabinoid in at least 2 units, usually percent by weight and milligrams per gram, and the conversion is fixed: 1 percent equals 10 milligrams per gram, because percent on a dry weight basis is mass of analyte per mass of product (7 CFR 990.1). Multiply milligrams per gram by fill weight for milligrams per container.

Worked example, CBD line. The report shows CBD 5.36 percent, which is 53.6 milligrams per gram. Multiply by the 28.0 gram fill: 53.6 x 28.0 = 1,500.8 milligrams CBD per container. Divide by 30 servings: 50.0 milligrams per serving. The label claim of 1,500 milligrams is within 0.1 percent of the measured value. For reference, FDA's 2020 sampling counted a product as accurate when it fell within 20 percent of its label, and only 45 percent of products with a stated amount did (FDA 2020 report).

Watch the units on liquids. Some labs report milligrams per milliliter for tinctures. That figure already includes the oil's density, so multiply by milliliters, not grams. Never assume 1 milliliter weighs 1 gram for an oil; use whichever unit the lab reported and the matching container measure.

Read the whole table, not just the headline. CBDA, CBG, CBN, CBC and THCA each tell you something: CBDA shows how much of the extract was never decarboxylated, CBN shows age or heat exposure, and THCA feeds directly into total THC.

How is total THC calculated on the report?

Answer

Total THC = delta-9 THC + (0.877 x THCA), where 0.877 is the molecular mass conversion ratio for the carboxyl group lost in decarboxylation (7 CFR 990.1). On the example report delta-9 THC is 0.008 percent and THCA is 0.002 percent, giving a total THC of 0.0098 percent, which is 0.098 milligrams per gram.

Now carry it to the container. 0.0975 milligrams per gram x 28.0 grams = 2.73 milligrams total THC per bottle. The amended federal hemp definition excludes final products containing "greater than 0.4 milligrams combined total per container" of total tetrahydrocannabinols including THCA (P.L. 119-37, section 781). This bottle, at under 0.01 percent THC, carries 6.8 times the cap. Per serving it is 0.09 milligrams, which is why a percent or a per-serving figure can look harmless while the container fails.

The cap applies from December 11, 2026 under Public Law 119-103, which limits the section 781 amendments until that date to products containing cannabinoids the plant cannot naturally produce (P.L. 119-103, section 2019). A product that passes the 0.3 percent standard by a factor of 30 can still fail the per-container standard by a factor of 7; the two tests measure different things.

What do LOQ and LOD mean on the report?

Answer

LOD is the lowest concentration the instrument can distinguish from zero; LOQ is the lowest concentration the lab will quantify. Anything below LOQ prints as ND. At an LOQ of 0.01 percent, or 0.1 milligrams per gram, a 28.0 gram bottle could hold 2.8 milligrams THC and still read ND, 7 times the 0.4 milligram cap (P.L. 119-37).

Work out the LOQ a container needs. Divide the cap by the fill weight: 0.4 milligrams / 28.0 grams = 0.0143 milligrams per gram, which is 0.00143 percent or about 14 parts per million. For a 30 count gummy jar at 4.0 grams per piece, 120 grams, the required LOQ is 0.4 / 120 = 0.0033 milligrams per gram, about 3.3 parts per million. If the report's LOQ is higher than that figure, ND does not demonstrate compliance for that container.

Measurement uncertainty belongs beside every result near a limit. The federal rule defines it as the parameter that characterizes the dispersion of values that could reasonably be attributed to the measured quantity (7 CFR 990.1). A result of 0.38 milligrams per container with an uncertainty of plus or minus 20 percent spans 0.30 to 0.46 milligrams; the report should say how the lab calls that case.

How do you read the contaminant panels?

Answer

Each contaminant panel lists the analyte, the result, the units, the action limit and a pass or fail. Compare result to limit yourself. Washington's rule, a common reference, caps lead at 1.2 micrograms per gram, arsenic at 2.0, cadmium at 0.82 and mercury at 0.40, and requires Salmonella below 1 colony-forming unit per gram (WAC 314-55-102).

Residual solvents should match the extraction method. On the example report the solvent panel shows ethanol at 410 micrograms per gram against Washington's 5,000 limit, benzene ND at an LOQ of 0.5 against a 2.0 limit, and butanes ND. That pattern fits an ethanol extraction. A hydrocarbon result on a product described as CO2-extracted is a question for the supplier. Mycotoxins should show aflatoxins and ochratoxin A each under 20 micrograms per kilogram (WAC 314-55-102).

Pesticide panels are the longest section. The report should list each compound with its own limit and LOQ rather than a single "pesticides: pass" line, and the panel should be run on the finished matrix. A panel of 59 compounds and a panel of 13 are not the same test. The named standard, whether a state rule or the lab's own, should be printed at the top of each panel.

What do pass/fail, signatures and the QR code confirm?

Answer

The summary line states whether every panel passed, and the signature block names the analyst and the reviewer who approved release. A COA without a named reviewer is incomplete. The 2017 JAMA study classified 30.95 percent of 84 CBD products as accurately labeled (Bonn-Miller 2017); the signature is the lab taking responsibility for its part in that number.

The approval date should follow the test date. The QR code should resolve to the laboratory's own hosted copy of this report, or to a page that links to it, with the same report number and batch number. A code that opens a brand page, a generic "lab results" gallery, or a PDF with the batch number removed does not verify anything. Scan it, compare the report number, and save the file with the purchase date.

Finish with the three-line check. Milligrams per gram equals percent times 10. Total THC equals delta-9 THC plus 0.877 times THCA (7 CFR 990.1). Milligrams per container equals milligrams per gram times fill weight, and total THC per container must be at or below 0.4 milligrams to stay inside the federal hemp definition after December 11, 2026 (P.L. 119-103). The lab testing hub covers accreditation, contaminant limits and retesting in depth.

General information, not personalized guidance.

Sources

  1. 7 CFR 990.1, Definitions (total THC, decarboxylation, measurement of uncertainty, dry weight basis) Cornell Legal Information Institute (accessed 2026-10-13)
  2. Public Law 119-37, section 781 (hemp definition) GovInfo (accessed 2026-10-13)
  3. Public Law 119-103, section 2019 (section 781 extension) GovInfo (accessed 2026-10-13)
  4. Accreditation vs. Certification (NVLAP) National Institute of Standards and Technology (accessed 2026-10-13)
  5. WAC 314-55-102, Quality assurance and quality control Cornell Legal Information Institute (accessed 2026-10-13)
  6. Sampling Study of the Current Cannabidiol Marketplace to Determine the Extent That Products are Mislabeled or Adulterated (FDA Report to Congress, 2020; copy hosted by Northwestern University) U.S. Food and Drug Administration (accessed 2026-10-13)
  7. Bonn-Miller MO et al. Labeling Accuracy of Cannabidiol Extracts Sold Online. JAMA 2017 JAMA Network (accessed 2026-10-13)
  8. NIST Tools for Cannabis Laboratory Quality Assurance (CannaQAP) National Institute of Standards and Technology (accessed 2026-10-13)
  • How do I read a CBD lab report?

    Match the batch number to your bottle, then read four things: measured CBD per mL or per piece versus the label, total THC using USDA's formula of 0.877 x THCa plus delta-9 (7...

  • What is a COA (certificate of analysis)?

    A certificate of analysis is a lab report for one production batch that states measured cannabinoid content, THC and THCa, and contaminant results. Independent labs accredited to...

  • What does ND mean on a COA, and what is LOQ?

    ND means "not detected" above the lab's limit of quantitation (LOQ), the smallest amount the method can measure reliably. It is not zero. With a 0.01 percent LOQ, a 30 mL bottle...

  • What is total THC and why does THCa count?

    Total THC is delta-9 THC plus the delta-9 that THCa becomes when heated. USDA's hemp rule writes it as Total THC = (0.877 x THCA) + THC (7 CFR 990.1). From December 11, 2026, the...

  • What is the 0.4 mg total THC per container cap?

    From December 11, 2026, a final hemp-derived cannabinoid product stops being "hemp" under federal law if its combined THC and similar-effect cannabinoids exceed 0.4 milligrams...

  • What is ISO/IEC 17025 accreditation and why does it matter?

    ISO/IEC 17025:2017 is the international standard for the competence of testing and calibration laboratories. Accreditation means an independent body has assessed the lab against...

  • What contaminants are hemp products tested for?

    A full hemp panel covers five contaminant classes: pesticides, heavy metals, residual solvents, microbial contaminants and mycotoxins, plus water activity and moisture for...

Adults 21 and older

Are you 21 or older?

This store sells kratom and kava products to adults 21 and older. Every order is age-verified at checkout against public records, with a photo ID fallback. By continuing you confirm you are at least 21.