Guide 01
How to read a COA
A certificate of analysis (COA) is a lab’s record of one tested sample from one batch. Once you know where to look, reading the aroma part takes a couple of minutes. Here’s the order to check things in.
In short
- Match the batch or lot number on the report to the one on your package. The strain name isn’t enough.
- Find the terpene table, and check there is one. Terpene testing isn’t required everywhere.
- Check the units: 1% is the same as 10 mg/g.
- Read ND and <LOQ as “too little to measure,” and don’t mistake a limit column for a result.
- Count how many compounds were measured, and find the total.
- Note the test date, moisture and water activity. The report is a snapshot.
| Analyte | LOQ (%) | Result (%) | Result (mg/g) |
|---|---|---|---|
| β-Myrcene | 0.010 | 0.612 | 6.12 |
| Limonene | 0.010 | 0.418 | 4.18 |
| β-Caryophyllene | 0.010 | 0.311 | 3.11 |
| Linalool | 0.010 | 0.104 | 1.04 |
| α-Humulene | 0.010 | 0.097 | 0.97 |
| α-Pinene | 0.010 | 0.082 | 0.82 |
| β-Pinene | 0.010 | 0.071 | 0.71 |
| Terpinolene | 0.010 | <LOQ | <LOQ |
| Ocimene | 0.010 | ND | ND |
| Total terpenes | 1.695 | 16.95 |
| Analyte | Limit | Result |
|---|---|---|
| Moisture content | 15.0 % | 11.2 % |
| Water activity | 0.65 aw | 0.58 aw |
1 Match the report to the jar
The top of a COA says who tested what: the lab, the producer (often labeled the client), a sample ID, and a batch or lot number. The batch number is the one to match. Find it on your package and check that the report shows the same one.
The strain name is printed up here too, but it’s the weakest identifier on the page. The same name can cover different plants from different growers, and the same grower’s next harvest is a new batch with its own report (more in why strain names drift). If the batch numbers don’t match, the report describes a different harvest, and its terpene numbers aren’t about your jar.
While you’re there, check the product type, sometimes labeled the matrix. A report for a vape cartridge or a concentrate describes a processed product, and its terpene profile can differ from the flower it was made from.
2 Find the terpene table, if there is one
Most reports open with potency: THCA, Δ9-THC and a calculated total. Those numbers describe cannabinoids, not aroma. NOSE drops them before comparing anything; left in, they would swamp every terpene in the comparison.
The aroma information lives in a separate table, usually headed Terpenes or Terpene profile, sometimes on a later page. Not every report has one, and some print only a total terpene figure with no breakdown. A total hints at how loud a jar is but says nothing about what it smells like, so there’s nothing to match. Terpene testing isn’t required everywhere: California, for example, requires it only when the label makes a terpene claim (Cal. Code Regs. tit. 4, § 15725). No terpene table means the report can’t tell you anything about how the jar smells, and neither can NOSE.
The pass/fail sections for pesticides, microbes, heavy metals and residual solvents are about contaminants. They matter for safety and compliance rather than aroma, so NOSE doesn’t read them.
3 Check the units
Terpene results are usually printed as a percentage of the sample’s weight (% or % w/w), in milligrams per gram (mg/g), or both side by side. The conversion is fixed: 1% = 10 mg/g. So 0.612% and 6.12 mg/g are the same result.
Units matter when you compare totals across two reports. Read one in % and the other in mg/g and one jar looks ten times louder than it is. They don’t matter for the shape of a profile, because NOSE converts every result to its share of that report’s own total before comparing. The units cancel out: the example report above scores 100 against itself whether you enter the % column or the mg/g column.
Some labs also say whether results are “as received” or on a “dry weight” basis. That moisture correction scales every number on the report by the same factor, so it nudges loudness, not shape.
4 Read the small print: ND, <LOQ and limit columns
Every lab method has a floor. The limit of detection (LOD) is the smallest amount the method can tell apart from nothing. The limit of quantitation (LOQ) is the smallest amount it can measure with confidence. Below that floor, labs print ND (not detected), <LOQ, BQL (below quantitation limit), or a less-than figure such as <0.010. A few leave the cell blank.
For aroma purposes these all mean the same thing: too little to measure reliably. NOSE reads them as zero. A figure like <0.010 is the lab’s limit, not a result, so it isn’t counted as 0.010. Floors also differ between labs, so a small amount one lab reports can come back as <LOQ from another.
The other trap is columns. Many tables print the LOQ, a dilution factor or a regulatory limit right beside the result. Those numbers describe the method or the rulebook, not your jar. The column you want is headed Result; on reports that print both % and mg/g, check which unit sits above it.
5 Count what was measured, and find the total
Labs don’t all measure the same list. Some panels cover a short list of terpenes and others many more, and some reports put a top-ten summary on the first page with the full panel later.
A compound that isn’t on the panel wasn’t measured. That’s different from zero, but a comparison can’t tell the difference: next to a report that did measure it, it simply looks absent. That’s why NOSE gives every match a confidence label based on how many compounds each report measured: high when both list at least nine, moderate from five, and low below that.
Then find the total terpenes line, the sum of the measured terpenes. It does two jobs in NOSE. It’s the intensity figure (see intensity versus character), and it’s a completeness check: NOSE compares what it read against the lab’s own total, and tells you when a fingerprint rests on a partial panel. If a report prints no total at all, NOSE’s report reader turns it away, because it has no way to check that it read the whole table. You can still type the values in by hand.
6 Note the dates, moisture and water activity
A COA is a snapshot of the sample on the day it was tested. Terpenes keep evaporating and breaking down afterwards. In a year-long storage study, terpenoid levels in stored flower fell quickly under every condition tested, on average by more than half within four months (Milay et al., 2020). A jar opened long after its test date may be noticeably quieter than its report says, and its balance may have moved too.
Two readings help you judge the cure. Moisture content is the share of the sample’s weight that is water. Water activity (aw) is a 0-to-1 measure of how available that water is; an industry standard for storing dried flower specifies a range of 0.55 to 0.65 (ASTM D8197). Many reports print a limit beside each reading, such as 0.65 for water activity, so make sure you’re reading the result rather than the limit. The two readings can disagree, and some reports print only Pass (more in why your jar is drier than its report).
For flower, NOSE shows moisture and water activity next to the fingerprint when it can read them, so you can weigh the report against the jar in your hand.
What a COA can’t tell you
- Every bud in the batch. It describes a tested sample. Even on a single plant, terpene levels fall from the top of the flowering stem to the bottom (Namdar et al., 2018).
- Every compound you smell. It covers the compounds on the panel. The sulfur compounds tied to the classic skunky note were only described in 2021, and standard terpene panels don’t measure them (Oswald et al., 2021).
- How a product will make you feel. Terpene data can’t support that. See do terpenes predict effects?
Using a COA with NOSE
If the package has a QR code that links to the lab report, scan it in the matcher, or paste the report’s link. NOSE fetches the PDF and only accepts it if the content stands up: a lab layout it recognizes, and terpene values that reconcile with the total the lab printed. It then shows you every value it read, along with the batch, lab ID and strain name as printed. Nothing is added to your palate until you confirm it. If a report can’t be read reliably, NOSE tells you why instead of guessing, and you can always type the values in by hand.
Sources
The studies, standards and rules this guide draws on.
- California Department of Cannabis Control. Medicinal and Adult-Use Cannabis Regulations, Cal. Code Regs. tit. 4, § 15725 (terpenoid testing is required “if the label claims terpenoids”). cdn.cannabis.ca.gov/wp-content/uploads/sites/2/2026/08/dcc_regulations_20260701.pdf
- ASTM International. D8197-22, Standard Specification for Maintaining Acceptable Water Activity (aw) Range (0.55 to 0.65) for Dry Cannabis Flower Intended for Human/Animal Use. store.astm.org/d8197-22.html
- Milay L, Berman P, Shapira A, Guberman O, Meiri D (2020). Metabolic profiling of Cannabis secondary metabolites for evaluation of optimal postharvest storage conditions. Frontiers in Plant Science 11:583605. doi.org/10.3389/fpls.2020.583605
- Namdar D, Mazuz M, Ion A, Koltai H (2018). Variation in the compositions of cannabinoid and terpenoids in Cannabis sativa derived from inflorescence position along the stem and extraction methods. Industrial Crops and Products 113:376–382. www.sciencedirect.com/science/article/abs/pii/S092666901830061X
- Oswald IWH, Ojeda MA, Pobanz RJ, et al. (2021). Identification of a new family of prenylated volatile sulfur compounds in cannabis revealed by comprehensive two-dimensional gas chromatography. ACS Omega. doi.org/10.1021/acsomega.1c04196