Lab Report Guide
How to read a lab report
Every product on a Florida MMTC menu has a lab report behind it, formally a certificate of analysis (COA). This page shows you how to find yours, read it page by page, and see what was tested and how it measured against Florida's limits.
A lab report provides patients a snapshot of the relative safety and constituent profiles of every product sold through an MMTC. A passing lab report (every result within Florida's limits) does not guarantee the product is harmless, just as a detected contaminant does not guarantee the product will cause harm. Access to lab reports increases healthcare transparency and empowers patient autonomy.
Each section starts in plain English. Where Florida sets a specific rule, a Florida requires box follows with it; you can skip the boxes.
Start here: five checks on any lab report
- Match the batch number first. Everything else on the report depends on it. Page 1
- Read the summary grid, then the details. PASS on every applicable test is the baseline. The results summary
- Compare Total THC, not delta-9 THC. And compare Total CBD and the ratio for Low-THC Products and Ratio Products. Potency
- Note the test date. Florida lab reports expire no more than one year after the sample date, and fresher is better for terpenes and for vapes. Red flags
- Look for a complete safety panel from a Florida lab. A sheet with only potency leaves out the safety tests. Contaminant tables
The images on this page are excerpts of real lab reports issued by three of Florida's Certified Marijuana Testing Laboratories (Kaycha Labs, Method Testing Laboratories, and ACT Laboratories), all issued after Florida's new testing rules took effect on May 28, 2026, reproduced in part and annotated for education. Tap any image to open it full size; each caption links to the complete lab report as the MMTC published it. The lab reports remain the property of the laboratories that issued them; nothing here should be taken as a substitute for the full report.
What a lab report is, and why Florida requires one
A lab report is tied to one specific batch of a product. It records what an independent laboratory measured in that batch and whether the batch met Florida's limits.
A complete lab report covers two big areas:
- Potency: how much THC, CBD, and other cannabinoids are in the product, and often a terpene profile.
- Safety: screens for contaminants (microbes, mycotoxins, residual solvents, heavy metals, and pesticides) plus quality checks like moisture, water activity, and foreign material.
Cannabis is a crop. Each harvest comes out a little different, so Florida checks every batch before it can be sold. The report shows that the label is right, that nothing harmful was found, and which sample the numbers came from.
Everything on an MMTC menu has already passed. The report lets you see the numbers behind that pass, and compare products that passed but differ in potency, terpenes, and freshness.
Florida requires
- Testing is done by Certified Marijuana Testing Laboratories (CMTLs), independent labs certified by the Florida Department of Health's Office of Medical Marijuana Use (OMMU). A CMTL must hold ISO/IEC 17025:2017 accreditation and pass regular proficiency tests, and an MMTC may not own or have a financial interest in a testing lab.
- Every Retail Batch is tested before it can be dispensed. Products made from the same harvest, such as flower and the pre-rolls made from it, are separate Retail Batches and are tested separately.
- Florida sorts products into four testing categories ("matrices"): Usable Whole Flower Marijuana, Derivative Product intended for inhalation (vapes, concentrates), Derivative Product not intended for inhalation (tinctures, capsules, topicals), and Edibles. Kief, bubble hash, and rosin (trichomes separated without solvent) are tested to the flower standard. A product that can be used more than one way is held to the stricter limit.
- A batch that fails any limit cannot be dispensed. The lab must confirm every contaminant failure by re-testing a stored portion of the same sample, report the failure to the OMMU within 24 hours, and the COA must clearly show which analyte failed and at what level.
- COAs must be delivered as locked PDFs that cannot be edited, and COA results expire no more than one year from the sample date.
The rules behind this page are Florida Administrative Code Chapter 64-4, mainly Rule 64-4.308 (CMTL Sample Testing) and Rule 64-4.311 (CMTL Certificate of Analysis), both effective May 28, 2026. They replaced the emergency rules (64ER20-series) that governed testing from 2020 through mid-2026, so older COAs may follow slightly different formats and limits.
How to get the lab report for your product
Getting a lab report is usually easy. Any one of these paths works:
- Look for it on the product page. Most Florida MMTCs link the lab report directly from the product listing on their website. Look for "Lab Results," "COA," or "Certificate of Analysis" on the product page. On this site, the green Lab report ✓ on a product opens the same document.
- Scan the QR code on the package. Many labels carry a QR code that opens the lab report. Scan it with your phone's camera before you buy or as soon as you get home.
- Use the batch number. Every label carries a batch (Retail Batch) number, usually near the barcode. Florida labs run online lookup portals where you enter that number to pull up the matching report. If you forgot to get the report at the MMTC, the batch number lets you find it later.
- Ask at the counter. Asking an MMTC team member for the lab report on a specific product is normal and encouraged. They will either hand you the report or point you to where it lives.
Check the batch number first: confirm the batch number on the lab report matches the batch number on your product. A report only means something if it describes the exact batch you are holding. If the numbers do not match, or the report cannot be found, ask before you buy.
Florida requires
The MMTC must be able to provide the COA for any Retail Batch it dispenses. The lab delivers the COA to the MMTC within 24 hours of verifying results, and passing results are uploaded to the state's seed-to-sale tracking system. Any COA that was retested or amended must carry a bold 14-point statement saying so, plus a narrative of what changed, so you can tell a revised report from an original.
Page 1: the header and the results summary
- Product name, strain, and matrix (the testing category: here, Usable Whole Flower Marijuana). Check the name matches the product you are considering.
- Seed-to-sale block: harvest batch and Retail Batch numbers, batch and harvest dates, total units, and the cultivation and processing facilities. The Retail Batch number must match your package.
- Lab ID, sampling date, completion date, and the expiration date of the results (one year after sampling at most).
- The overall verdict, in large type: compliance for retail, PASSED. A batch that shows FAIL here cannot be dispensed.
- The results summary grid: one box per test category with PASSED, or NOT TESTED where the test does not apply to this product type (solvents on flower, here).
- The headline potency numbers: Total THC, Total CBD, and total cannabinoids, as a percentage and in milligrams per container.
- CBD reads "<0.00100": below the lab's LOD, written as "<" plus the LOD number (shown two rows down). That is the format Florida's 2026 rule requires; older lab reports wrote "ND".
- Footnotes: the method, instrument, and batch. Below them the lab defines its terms, including the "J" qualifier it adds to any result between the LOD and the LOQ.
- The lab's credentials: Florida CMTL license number and ISO/IEC 17025:2017 accreditation, with the reviewer's signature and date.
The first page is a summary of everything else in the report. Glance here first to confirm you are looking at the right document, then read the pass/fail grid.
The header. Check these five things:
- Product name: should match the product you are considering.
- Batch / lot number: must match the label on the package.
- Test date and expiration date: newer is generally better (see Red flags).
- Laboratory name and accreditation: look for a Florida CMTL and an ISO/IEC 17025 reference.
- Sample type ("matrix"): flower, inhalable derivative, non-inhalable derivative, or edible. The tests required, and the limits applied, differ by type.
The seed-to-sale block. Florida tracks every product from plant to patient, and the lab report carries that trail: which MMTC grew and processed it, the cultivation date, the production or harvest date, the number of units in the batch, and the batch weight. This is how the state, and you, can link the package in your hand to the exact sample that was tested.
The results summary grid. This grid lists each test category (potency, microbials, mycotoxins, heavy metals, pesticides, residual solvents, water activity, moisture, filth and foreign material) with a PASS or FAIL next to each. A passing product shows PASS on every test that applies to its type. Some tests simply do not apply: moisture, for example, is only required for flower and solventless concentrates, so an edible lab report may show it as not tested. That is normal, not a gap.
The potency and terpene summaries. Below the grid you will usually find the headline numbers: Total THC, Total CBD, CBG, CBN, and total cannabinoids, followed by the top terpenes and total terpene percentage. The detailed tables come later in the report.
The footnotes. The bottom of the page usually lists the equations and abbreviations used in the report, such as the Total THC formula, the definitions of LOD and LOQ, and which units apply. Do not skip these. They tell you exactly how the lab calculated the numbers above.
Florida requires
A COA must show the MMTC that submitted the sample, the cultivation and processing facilities, the cultivar (or "mixed cultivar"), the Retail Batch and harvest batch numbers with their creation dates, the number of units and total weight or volume in the batch, the testing matrix, the sample preparation date and time, the instrument used, the SOPs followed, an expiration date no more than one year from the sample date, and a PASS or FAIL statement in bold 14-point type or larger. Any failed COA must include a photo of the product label and packaging. (Rule 64-4.311)
Potency: the cannabinoid panel
- THCA: the raw acid form. On unheated flower this is the big number (26.0% here).
- Delta-9 THC: the already-active THC, usually small on flower (0.726% here). Reading this line as "the potency" is the classic mistake.
- Each result is shown with the lab's LOD and LOQ beside it, then three ways: mg/g, percent by weight, and mg per unit (the whole 3.5 g package). 260 mg/g = 26.0%.
- Between the LOD and the LOQ: CBDA was detected above the LOD (0.316) but below the LOQ (1.71), so the lab reports its best estimate, 1.06, and marks it "J" for estimated. This is the format Florida's 2026 rule requires; older lab reports wrote "<LOQ" and gave no number.
- Below the LOD: nothing detected. Method writes "<LOD" with the LOD itself (0.0900 mg/g) in its own column; Kaycha and ACT print the number directly, for example "<0.0900".
- Total THC = delta-9 THC + (THCA × 0.877): 0.726 + (26.0 × 0.877) ≈ 23.5%, printed as 23.6% because the lab works from unrounded values. 825 mg of THC in the package.
- Total cannabinoids: everything the lab detected, added up. Higher than Total THC, and not a THC number.
- Label claim check: when the package states a potency, the lab prints the deviation here against Florida's tolerance. N/A means this package made no claim.
This is the section most patients read first. It lists each cannabinoid the lab measured and how much of it is present. Results are shown two ways, and they are interchangeable:
- Percent by weight (%): for example, 25% THC.
- Milligrams per gram (mg/g): the same value written differently. Multiply the percentage by 10 to get mg/g (25% = 250 mg/g); divide by 10 to go back.
THC, THCA, and the Total THC formula. Patients misread this line more than any other. Flower usually shows a low delta-9 THC number and a high THCA number, and patients sometimes read that low delta-9 figure as "weak." It usually isn't.
THCA is the raw, non-intoxicating acid form of THC found in unheated flower. When you apply heat (smoking, vaping, cooking) THCA converts to active delta-9 THC through a reaction called decarboxylation. During that reaction the molecule sheds a carbon-dioxide group and loses a bit of mass, which is why labs use a conversion factor of 0.877 (THC weighs about 87.7% of what THCA weighs).
Total THC = Delta-9 THC + (THCA × 0.877)
The same logic gives Total CBD = CBD + (CBDA × 0.877).
Worked example. A flower batch listed at 28.0% THCA and 0.50% delta-9 THC works out to 0.50 + (28.0 × 0.877) = about 25.1% Total THC. Total THC is the number to use when comparing two products head-to-head. Treat it as a ceiling, the maximum after full conversion, because real-world heating is never 100% efficient.
| Cannabinoid | % by weight | mg/g | Note |
|---|---|---|---|
| THCA | 28.0% | 280 | Raw acid form; converts with heat |
| Delta-9 THC | 0.50% | 5.0 | Already-active THC |
| Total THC (calculated) | ≈ 25.1% | ≈ 251 | The key comparison number |
| CBD / CBDA | < 0.10% | < 1.0 | Below the lab's limit of detection (LOD) |
| Total cannabinoids | 29.6% | 296 | Sum of everything detected, acids included |
CBD, minor cannabinoids, and "Total Cannabinoids." CBD and CBDA follow the same acid-to-active relationship as THC. You may also see minor cannabinoids such as CBG, CBN, CBC, THCV, and CBDV in smaller amounts. Total Cannabinoids sums everything the lab detected. It is not the same as Total THC, and a higher Total Cannabinoids figure does not mean a stronger THC effect. For potency comparisons keep your eye on the Total THC line; for a Low-THC Product or a Ratio Product, compare the Total CBD line and the CBD:THC ratio. Research into how the various cannabinoids interact is ongoing, so use these figures to compare products and consistency, and bring questions about effects to your physician.
Dry weight vs. as-received. Flower naturally holds some moisture. Under Florida's current rule, flower potency is reported as received, at the moisture content the lab measured, not corrected to a dry-weight basis. That means two batches at different moisture levels are not perfectly apples-to-apples, but it is the number that reflects the product as sold. Contaminant results for flower, by contrast, are corrected to dry weight.
Florida requires
- Every COA must report Total Active THC and Total Active CBD in milligrams per package, plus the full Cannabinoid Profile in both mg/g and percent, to three significant figures.
- Florida's definition of Total Active THC is delta-9 THC + delta-8 THC + (THCA × 0.877). Labs have until May 2027 to add the delta-8 term, so most COAs you see today use the simpler delta-9 + (THCA × 0.877) formula shown above. Total Active CBD = CBD + (CBDA × 0.877).
- The lab must test for eleven cannabinoids: delta-9 THC, delta-8 THC, THCA, THCV, CBD, CBDA, CBDV, CBG, CBGA, CBN, and CBC.
- Flower potency is reported as received (at the lab-tested moisture content) using the labeled weight of the package; edibles use the measured weight. Any flower result above 32% Total Active THC must be confirmed by re-preparing and re-analyzing the sample and reported to the OMMU.
- Label accuracy is tested too. If the label claims more than 25 mg of a cannabinoid per package, the tested amount may differ by no more than 10%; at 25 mg or less, by no more than 50%; a label claim of 10 mg or less must test at 10 mg or less. For edibles the tolerance is 15%. A claimed ratio (for example 1:1) must be within 10%. A label outside these tolerances is a labeled potency failure and the product cannot be sold until the label is corrected and a new COA issued.
The terpene profile
- Terpenes are marked TESTED, not PASS/FAIL: Florida sets no terpene limits, so there is no action-limit column on this page.
- Results in µg/g (the same as ppm) and in percent. 12,700 µg/g = 1.27%. The LOD and LOQ columns work the same way as on the safety panels.
- The top terpenes: beta-caryophyllene (1.27%, peppery), limonene (0.899%, citrus) and alpha-pinene (0.377%, pine). That trio is this batch's aroma fingerprint; 4.03% total terpenes is printed on page 1.
- Between the LOD and the LOQ: terpinolene at an estimated 32.5 µg/g, marked "J". A trace, reported with a number rather than a blank.
- Below the LOD: "<LOD" on both result columns. Most of a 40-terpene panel reads this way; a handful of terpenes define the character.
Terpenes are the aromatic compounds that give each strain its distinctive smell and flavor. Most Florida MMTCs publish a terpene panel on the lab report, and many list the top terpenes on the menu. Terpenes are usually shown in percent by weight or in mg/g, and sometimes in parts per million (ppm); higher numbers generally mean a more pronounced aroma. A total terpene percentage usually appears just under the table.
Common terpenes you will see include myrcene (earthy, herbal), limonene (citrus), beta-caryophyllene (peppery, spicy), pinene (pine), linalool (floral), humulene (woody, hoppy), ocimene (sweet, herbal), and terpinolene (bright, complex).
Patients often use the terpene profile and the top three terpenes as a guide to a product's character and to find consistency across repurchases. The idea that terpenes and cannabinoids work together, sometimes called the "entourage effect," is an active area of research rather than settled fact, so this page describes terpenes by their aroma, not by any health effect.
A consistency tip: if a strain you like always smells citrus-forward but a new batch's lab report shows a very different top terpene, the experience may differ too. The terpene panel is a useful fingerprint for finding the same character batch to batch, and it is a better guide than the strain name alone, since the same name can vary from grow to grow.
Florida's position
Terpene analysis is not a required compliance test in Florida. The rule only mentions terpenes to say that, when a lab does run them on flower, the results are reported as received rather than corrected to dry weight. Because the panel is voluntary, the set of terpenes measured, the units, and whether a total is shown can vary from lab to lab and MMTC to MMTC. A COA with no terpene section is complete; a COA with no safety section is not.
How to read a contaminant results table
- The columns every contaminant table shares: the analyte, the lab's LOD and LOQ, Florida's limit, the result (here in ppm), and PASS or FAIL for that row.
- The instrument: headspace GC-MS, the standard method for residual solvents. Other panels name LC-MS/MS (pesticides), ICP-MS (metals) or PCR (microbes).
- A measured number: 142 ppm of ethanol against a 5,000 ppm limit, a small fraction of what is allowed. A pass.
- Between the LOD (2.0) and the LOQ (20.0): acetone was detected at an estimated 3.59 ppm, and the lab marks it with an asterisk, its qualifier. Florida's 2026 rule requires exactly this: the estimated number plus a qualifier, not "<LOQ". Still far below the 750 ppm limit.
- Below the LOD: written as "<10.0", the LOD itself. Nothing was detected above the instrument's floor. This "<" plus the LOD number is the format the 2026 rule requires; this lab's reports from June still wrote "ND".
- The status column. Every row must read Passed for the panel, and the whole lab report, to pass.
- Report notes: the lab spells out what its qualifier means. Every lab uses its own symbol ("J", "*"), so read these.
- The panel verdict.
The safety pages are the part of the lab report Florida regulates most tightly, and every one of them uses the same table layout. Once you can read one, you can read them all. Each row is one analyte (one specific contaminant), and the columns tell you:
| Column | What it means | What to look for |
|---|---|---|
| Analyte | The specific compound or organism tested | Florida's required list for that category |
| Method / instrument | How it was measured (for example, LC-MS/MS, GC-MS, ICP-MS, PCR, plating) | Gives insight into the strengths and limits of the result |
| LOD (limit of detection) | The lowest amount the instrument can detect at all | Set by the lab, must be well below the limit |
| LOQ (limit of quantification) | The lowest amount the instrument can measure reliably | Always at or above the LOD |
| Action limit | The most Florida allows before the product fails | Printed on the lab report for every analyte |
| Result | The measured amount, with its unit | "<" plus the LOD, a qualified estimate (for example, "1.06 J"), or a number below the limit |
| Status | PASS or FAIL for that analyte | PASS on every row |
Reading the result column. Since Florida's new rules took effect on May 28, 2026, every result on a lab report is written one of four ways, to three significant figures:
- Below the LOD: written as "<" plus the LOD number, for example <0.0200. Nothing was detected above the instrument's floor. This is the cleanest possible result. (One lab, Method, writes "<LOD" and prints the LOD number in the column beside it.)
- Between the LOD and the LOQ: the lab's best estimate, marked with a qualifier, for example 1.06 J or 3.59 *. The instrument saw something, but the amount is too small to measure precisely. Each lab picks its own symbol and defines it in the notes. Still a pass, and usually far below the limit.
- A number: the analyte was measured. Compare it to the action limit; below the limit is a pass.
- > [value]: the result was above the top of the instrument's calibration range. Rare on a passing lab report.
Older lab reports, and some labs that have not yet caught up, still write ND ("not detected") or <LOQ. Those are the old style: "ND" hides how low the lab could actually see, and "<LOQ" lumps a real trace together with nothing at all.
Worked example. In a residual-solvent table, suppose isopropanol reads <50.0 with an LOD of 50 µg/g, and methanol reads 31.2 J with an LOD of 25 µg/g and an LOQ of 50 µg/g. The isopropanol line tells you the lab found nothing above 50 µg/g. The methanol line tells you the lab detected a trace, about 31 µg/g, between the LOD and the LOQ, so the number is an estimate and carries the "J" qualifier. Both are passes: the Florida limit for isopropanol in an inhalable product is 500 µg/g and for methanol 250 µg/g, so even the highest possible reading is a small fraction of what is allowed.
Units to know. Contaminants are reported in ppm (parts per million) or ppb (parts per billion). 1 ppm = 1,000 ppb. Labs often write ppm as µg/g (micrograms per gram) and ppb as ng/g (nanograms per gram); they are the same thing. Microbial counts are in CFU/g (colony-forming units per gram), and the most serious organisms are simply reported present / not present.
Florida requires
Every result above the LOD must be a numeric value to three significant figures; a value below the LOD is written as "< [LOD value]"; a value between the LOD and LOQ must be marked with a qualifier; and the COA must print the action limit for each analyte so you never have to look it up. Flower contaminant results are corrected to dry weight; derivative products and edibles are not. Any contaminant failure must be confirmed by re-analysis of a stored portion of the same sample, and if confirmed, the highest value is what goes on the COA. A result within 10% of the limit must also be re-analyzed.
Microbials and mycotoxins
- Microbial tables use the same columns as the rest: the limit, the lab's LOD/LOQ, the result, and PASS/FAIL. For pathogens the rule asks only for present or absent, so the limit is written in words.
- The four Aspergillus species Florida names (flavus, fumigatus, niger, terreus), each reported as present or NOT PRESENT in 1 g.
- Listeria monocytogenes: new in the 2026 rule for flower and edibles. A lab report from before mid-2026 will not have this line.
- Total yeast and mold is the one organism count, reported as a number to three significant figures: 78.1 CFU/g here against a limit of 100,000 CFU/g.
- The limit column: "NOT PRESENT IN 1g" for pathogens; 100,000 CFU/g for total yeast and mold.
- The method: PCR (DNA detection) for the pathogens. Florida requires a culture (plating) method for yeast and mold on flower, which the second block below describes.
- Mycotoxins: aflatoxins B1, B2, G1, G2, and ochratoxin A, each with a 0.02 ppm (20 ppb) limit. Every result reads "<0.00200": below the LOD, written as "<" plus the LOD, as the 2026 rule requires.
Microbial screening looks for harmful organisms: bacteria such as Salmonella and toxin-producing E. coli, and problem molds such as Aspergillus. It also counts total yeast and mold. Mycotoxins are poisons, such as aflatoxins, that certain molds leave behind even after the mold itself is gone. This category matters for everyone and is especially relevant for patients with weakened immune systems, since inhaling or ingesting these organisms can cause serious infection.
On the lab report, the dangerous organisms are reported as present / not present (you want "not present" or "ND" on every line). Total yeast and mold is reported as a count in CFU/g, compared with the limit.
Florida requires (all product types unless noted)
Show the microbial and mycotoxin limits
| Analyte | Limit | Applies to |
|---|---|---|
| Shiga toxin-producing E. coli (STEC) | None present in 1 g | All |
| Salmonella spp. | None present in 1 g | All |
| Aspergillus niger, A. fumigatus, A. flavus, A. terreus | None present in 1 g | All |
| Listeria monocytogenes | None present in 1 g | Flower and edibles |
| Total combined yeast and mold | Less than 100,000 CFU/g | All |
| Total aerobic microbial count | Less than 100 CFU/g | Non-oral transmucosal products only (nasal sprays, inhalers, suppositories) |
| Staphylococcus aureus | None present | Non-oral transmucosal only |
| Bile-tolerant Gram-negative bacteria | None present | Non-oral transmucosal only |
| Total yeast and mold (transmucosal) | Less than 10 CFU/g | Non-oral transmucosal only |
| Mycotoxin | Limit | Applies to |
|---|---|---|
| Aflatoxin B1 | Less than 20 ppb | All |
| Aflatoxin B2 | Less than 20 ppb | All |
| Aflatoxin G1 | Less than 20 ppb | All |
| Aflatoxin G2 | Less than 20 ppb | All |
| Sum of all aflatoxins | Less than 20 ppb | All |
| Ochratoxin A | Less than 20 ppb | All |
A few details worth knowing: Listeria was added in the 2026 permanent rule, so COAs issued before mid-2026 will not show it. Yeast and mold on flower must be measured by a culture (plating) method, not just PCR. If a product was sterilized by irradiation, the lab must incubate the yeast and mold plates longer, since irradiation can slow surviving growth. And a lab must report any organism not on this list if it could be harmful, so an unfamiliar name on a microbial page is not automatically a problem; check its status column.
Residual solvents
- Columns: the lab's LOD and LOQ, Florida's action level (limit), the result and the status. Units are mg/kg, which is the same as ppm.
- The action levels are Florida's inhaled-product limits: 5,000 ppm for butane and propane, 1 ppm for benzene, 2 ppm for chloroform. Edibles and tinctures get the looser second column of limits in the rule.
- Every result is "<LOD": nothing detected. Live resin is extracted with hydrocarbon solvents, so a clean column here means the solvent was fully purged.
- Butane: the lab can detect it down to 12.5 ppm, 400 times lower than the 5,000 ppm limit. LODs come from the instrument, not the rule.
- Ethanol: 5,000 ppm limit for inhaled products. Oral products and topicals are exempt, but the lab must still report the number.
- The panel verdict.
Many concentrates, vape oils, and the distillate inside edibles and tinctures are made by washing cannabinoids out of the plant with a solvent (butane, propane, ethanol, CO₂) and then purging the solvent off. Residual-solvent testing confirms that whatever solvent is left behind is within Florida's limits. Solventless products (flower, kief, bubble hash, rosin) are not required to have this test, so their lab reports show it as not tested.
The limits differ by how the product is used: inhaled products (vapes, dabs) have tighter limits for many solvents than non-inhaled products (edibles, capsules, tinctures, topicals), because the lungs are a more sensitive route than the gut.
Florida requires testing of derivative products for these 21 solvents
Show the 21 solvents and their limits
| Solvent | Limit, inhaled (ppm) | Limit, not inhaled, incl. edibles (ppm) |
|---|---|---|
| Acetone | < 750 | < 5,000 |
| Acetonitrile | < 60 | < 410 |
| Benzene | < 1 | < 1 |
| Butane | < 5,000 | < 5,000 |
| Chloroform | < 2 | < 2 |
| 1,2-Dichloroethane | < 2 | < 2 |
| 1,1-Dichloroethene | < 8 | < 8 |
| Ethanol | < 5,000 | < 5,000 (see note) |
| Ethyl acetate | < 400 | < 5,000 |
| Ethyl ether | < 500 | < 5,000 |
| Ethylene oxide | < 5 | < 5 |
| Heptane | < 5,000 | < 5,000 |
| Hexane | < 250 | < 250 |
| Isopropyl alcohol | < 500 | < 5,000 |
| Methanol | < 250 | < 3,000 |
| Methylene chloride | < 125 | < 125 |
| Pentane | < 750 | < 5,000 |
| Propane | < 5,000 | < 5,000 |
| Trichloroethylene | < 25 | < 25 |
| Toluene | < 150 | < 890 |
| Total xylenes (m-, p-, o-) | < 150 | < 2,170 |
Ethanol note: oral products, topicals, and metered-dose inhalers are exempt from the ethanol limit, because ethanol is a common and accepted ingredient in tinctures and similar products. The lab must still measure and report the ethanol level on the COA, so you will see a number there even though it cannot fail.
What good looks like. On a well-made butane or propane extract you should see those two solvents below the LOD (ND on older lab reports) or at a small fraction of the 5,000 ppm limit. Benzene, chloroform, 1,2-dichloroethane, ethylene oxide, and trichloroethylene are not used in cannabis extraction; they are on the list because they are toxic at tiny amounts and can turn up as impurities in lower-grade solvents. Below the LOD on those lines is what you want.
Pesticides, herbicides, and fungicides
- The familiar columns. Note the unit: this lab reports pesticides in ppm, so 0.100 ppm is the 100 ppb limit that applies to most compounds on Florida's list.
- Two instruments: GC-MS/MS for the few compounds Florida assigns to gas chromatography (chlordane, chlorfenapyr, methyl parathion, PCNB) and LC-MS/MS for the rest.
- The limit column is not uniform: carbaryl 0.5, clofentezine 0.2, chlorantraniliprole 1.0 ppm. Each compound has its own number in the rule.
- The result column: "<" plus the LOD for every compound, i.e. nothing detected. The same lab's reports from June wrote "ND" down this column; since the 2026 rule, you see the actual detection floor.
- Abamectin: LOD column 0.008, result "<0.00820". Same number; the result is written to three significant figures, as the rule requires.
- Chlorantraniliprole: a limit ten times the usual (1.000 ppm), still below the LOD here.
- The panel verdict. This page holds the first 29 of 66 compounds; the rest continue on the next page.
The cannabis plant absorbs and holds on to whatever is sprayed on it or applied to its soil, and heat can concentrate or change those chemicals when the product is smoked or vaped. Florida calls these agricultural agents and requires every product to be screened for 66 of them, each with its own limit. Any detection above the limit is a failure, and the batch cannot be dispensed. This page is long, but reading it is simple: you want "<" plus the LOD number (ND on older lab reports) down the whole result column, and PASS down the whole status column.
As with solvents, most limits are tighter for inhaled products than for edibles and other non-inhaled products. Where the two limits are the same, the compound is considered hazardous by any route.
Florida requires screening for these 66 agricultural agents
Limits are in ppb (parts per billion); "inhaled" covers flower and inhalable derivatives, "not inhaled" covers edibles and other non-inhaled derivatives.
Show the full list of 66 agricultural agents and their limits
| Agricultural agent | Inhaled (ppb) | Not inhaled (ppb) |
|---|---|---|
| Abamectin (B1a + B1b) | < 100 | < 300 |
| Acephate | < 100 | < 3,000 |
| Acequinocyl | < 100 | < 2,000 |
| Acetamiprid | < 100 | < 3,000 |
| Aldicarb | < 100 | < 100 |
| Azoxystrobin | < 100 | < 3,000 |
| Bifenazate | < 100 | < 3,000 |
| Bifenthrin | < 100 | < 500 |
| Boscalid | < 100 | < 3,000 |
| Carbaryl | < 500 | < 500 |
| Carbofuran | < 100 | < 100 |
| Chlorantraniliprole | < 1,000 | < 3,000 |
| Chlordane (cis + trans) | < 100 | < 100 |
| Chlorfenapyr | < 100 | < 100 |
| Chlormequat chloride | < 1,000 | < 3,000 |
| Chlorpyrifos | < 100 | < 100 |
| Clofentezine | < 200 | < 500 |
| Coumaphos | < 100 | < 100 |
| Cyfluthrin | < 500 | < 1,000 |
| Cypermethrin | < 500 | < 1,000 |
| Daminozide | < 100 | < 100 |
| Diazinon | < 100 | < 200 |
| Dichlorvos | < 100 | < 100 |
| Dimethoate | < 100 | < 100 |
| Dimethomorph (E + Z) | < 200 | < 3,000 |
| Ethoprophos | < 100 | < 100 |
| Etofenprox | < 100 | < 100 |
| Etoxazole | < 100 | < 1,500 |
| Fenhexamid | < 100 | < 3,000 |
| Fenoxycarb | < 100 | < 100 |
| Fenpyroximate | < 100 | < 2,000 |
| Fipronil | < 100 | < 100 |
| Flonicamid | < 100 | < 2,000 |
| Fludioxonil | < 100 | < 3,000 |
| Hexythiazox | < 100 | < 2,000 |
| Imazalil | < 100 | < 100 |
| Imidacloprid | < 400 | < 3,000 |
| Kresoxim-methyl | < 100 | < 1,000 |
| Malathion | < 200 | < 2,000 |
| Metalaxyl | < 100 | < 3,000 |
| Methiocarb | < 100 | < 100 |
| Methomyl | < 100 | < 100 |
| Methyl parathion | < 100 | < 100 |
| Mevinphos | < 100 | < 100 |
| Myclobutanil | < 100 | < 3,000 |
| Naled | < 250 | < 500 |
| Oxamyl | < 500 | < 500 |
| Paclobutrazol | < 100 | < 100 |
| Pentachloronitrobenzene (PCNB) | < 150 | < 200 |
| Permethrin (cis + trans) | < 100 | < 1,000 |
| Phosmet | < 100 | < 200 |
| Piperonyl butoxide | < 3,000 | < 3,000 |
| Prallethrin | < 100 | < 400 |
| Propiconazole | < 100 | < 1,000 |
| Propoxur | < 100 | < 100 |
| Pyrethrins (I, II, cinerins, jasmolins) | < 500 | < 1,000 |
| Pyridaben | < 200 | < 3,000 |
| Spinetoram (J + L) | < 200 | < 3,000 |
| Spinosad (A + D) | < 100 | < 3,000 |
| Spiromesifen | < 100 | < 3,000 |
| Spirotetramat | < 100 | < 3,000 |
| Spiroxamine | < 100 | < 100 |
| Tebuconazole | < 100 | < 1,000 |
| Thiacloprid | < 100 | < 100 |
| Thiamethoxam | < 500 | < 1,000 |
| Trifloxystrobin | < 100 | < 3,000 |
Two more rules on top of the list. First, there is a total contaminant load cap: all agricultural agents added together must be under 5 ppm for inhaled products and under 30 ppm for non-inhaled products, so a batch cannot pass by having many compounds each just under its own limit. Second, if a lab finds a pesticide, solvent, metal, or microbe that is not on Florida's list and could be toxic, the OMMU can fail the batch anyway, and the lab must report the finding within 24 hours.
A note on what growers may use. Being on this list does not mean a compound is allowed in cultivation. Florida MMTCs may only apply pesticides registered with the Florida Department of Agriculture or the U.S. EPA for use on the crop (Rule 64-4.013). The testing list exists to catch what should not be there.
Why some names look familiar. Myclobutanil is the fungicide sold as Eagle 20; when heated it can release hydrogen cyanide. Its inhaled limit is 30 times tighter than its limit for products that are not inhaled. Piperonyl butoxide and pyrethrins are common in household bug sprays. Chlorpyrifos and carbofuran are organophosphate and carbamate insecticides that are now heavily restricted in food crops.
Heavy metals
- Same columns as every other panel: limit, LOD, LOQ, result, unit, PASS/FAIL.
- The four metals every lab report has carried since 2020: arsenic, cadmium, lead, and mercury. Each reads "<" plus its LOD, i.e. nothing detected.
- Nickel and tin: added by the 2026 rule. Nickel matters most on vapes, where it can leach from cartridge heating elements.
- The limits, in ppm on this lab's report: 0.5 ppm lead = 500 ppb, 0.2 ppm arsenic = 200 ppb (the inhaled limits, since this is flower).
- Watch the unit. Some labs report metals in ppb, some in ppm; 1 ppm = 1,000 ppb.
- The method: ICP-MS, which detects metals at parts-per-billion levels.
Metals get into a plant from soil, water, fertilizer, and processing equipment, and cannabis is unusually good at pulling them up from the ground. In vape products, metals can also leach from the cartridge hardware into the oil. Heavy-metal testing checks the finished product for a short list of toxic metals, each with its own limit. Because the lungs absorb metals more readily than the gut does, the limits for vapes and flower are tighter than for edibles and tinctures for four of the six metals.
Florida requires testing every product type for six metals
| Metal | Inhaled (ppb) | Not inhaled, incl. edibles (ppb) |
|---|---|---|
| Lead (Pb) | < 500 | < 500 |
| Arsenic (As) | < 200 | < 1,500 |
| Cadmium (Cd) | < 200 | < 500 |
| Mercury (Hg) | < 200 | < 3,000 |
| Nickel (Ni) | < 500 | < 3,000 |
| Tin (Sn) | < 4,000 | < 4,000 |
Nickel and tin were added in the 2026 permanent rule (labs had 60 days from May 28, 2026 to begin reporting them), so a COA issued before then will show only the "big four": lead, arsenic, cadmium, and mercury. The lab measures these by ICP-MS, which can see metals at parts-per-billion levels, so a result below the LOD means none was detected even at those trace levels.
Remember the unit: Florida's metal limits are written in ppb (the same as µg/kg or ng/g), but some labs report metals in ppm. A lead result of "0.12 ppm" is 120 ppb, which is a pass.
Moisture, water activity, and foreign material
- Water activity: 0.56 aw against a 0.65 limit for flower. Below about 0.60, mold cannot grow; this is the number that predicts shelf stability.
- The water-activity action level: 0.65 aw for flower and solventless concentrates (kief, hash, rosin); 0.85 aw for other derivatives and edibles.
- Moisture: 8.2% of the flower's weight is water, under Florida's 15.0% ceiling. There is no lower limit, but flower much drier than this can burn harsh and lose aroma; most growers aim for about 10 to 12%.
- The moisture action level, 15%. A result of 15.0% or higher fails. Flower and solventless concentrates only.
- Water activity is measured with a water activity probe, and moisture (right) with a moisture analyzer (loss on drying). The two numbers are not interchangeable.
These are the quality checks. Moisture content is how much of the flower's weight is water. Water activity (aw) is different: it measures how much of that water is available for microbes to use, on a scale from 0 to 1. Water activity is the better predictor of whether mold can grow, which is why it applies to more product types than moisture does. Filth and foreign material is a visual inspection for things that should not be there: hair, insects, bits of packaging, processing waste, or visible mold.
Beyond compliance, these numbers hint at the experience. Very dry flower (say, under 8% moisture) can burn hot and lose aroma; flower near the top of the range carries more microbial risk and may feel spongy. Many growers aim for 10 to 12% moisture and 0.55 to 0.62 aw.
Florida requires
| Test | Limit | Applies to |
|---|---|---|
| Moisture content | Below 15.0% (a result of 15.0% or higher fails) | Flower, plus kief, bubble hash, and rosin |
| Water activity | 0.65 aw or less | Flower, plus kief, bubble hash, and rosin |
| Water activity | 0.85 aw or less | Derivative products and edibles, except products that list water as an ingredient |
| Filth and foreign material | No more than an average of 1% by weight, and covering no more than 10% of the sample area | All |
| Feces | None visible | All |
| Mold, mildew, or fungus | None visible | All |
Moisture is reported to the nearest tenth of a percent and water activity to two significant figures. For flower, the lab must inspect both the inside and outside of the buds for foreign material. Moisture is only required for products tested to the flower standard, so a vape, tincture, or edible COA that shows moisture as "not tested" or "N/A" is complete; it is not missing anything. Solventless concentrates are the exception: because kief, ice-water (bubble) hash, and rosin (including live rosin) are made by separating trichomes mechanically with no solvent, Florida tests them exactly like flower, so their COAs should show a moisture result below 15.0% and a water activity of 0.65 aw or less, not the looser 0.85 aw limit that applies to solvent-based extracts.
A note on edibles: servings, totals, and homogeneity
- Serving math: a 42.0 g package, 4.5 g per serving, 10 servings. Check these first on any edible.
- Total THC per container: 102 mg, so about 10.2 mg of THC per piece. Florida caps a serving at 10 mg of THC and a package at 200 mg of THC, each with a 15% allowance.
- Below the LOD: CBDA reads "<0.0000670", the same number as its LOD printed below. The new-format notation, even on an edible's cannabinoid panel.
- On an edible the useful row is mg per unit (101 mg delta-9 THC in the package); the percent row (0.241%) means little on its own.
- Package label deviation: the tested THC is 1.52% off the label. Edibles may differ from the label by up to 15%.
- Homogeneity: the lab tests individual pieces and reports the spread as a relative standard deviation, 3.21% here, against a 25% limit. Florida also fails a batch if any single piece is more than 50% off the average.
Edible lab reports deserve a second look because the numbers are about milligrams per serving, not percentages. A 10-piece gummy pack at 10 mg of THC each is a 100 mg THC package; the percentage of THC by weight is tiny and tells you nothing useful. When reading an edible lab report, check three things: the serving size, the mg of THC (and CBD) per serving, and the number of servings per package, so you know the total in the container.
Homogeneity is the edible-only test. It checks that the active ingredient is spread evenly through the batch, so that every piece of a ten-piece pack carries the same dose rather than one piece carrying most of it. The lab tests several individual servings, averages them, and calculates how much they vary. A small spread means consistent dosing.
Florida requires
- A single serving, or a single-serving portion of a multi-serving edible, may contain no more than 10 mg of THC. A multi-serving edible may contain no more than 200 mg of Total Active THC per package. Edibles may vary up to 15% from those thresholds before failing.
- Label accuracy for edibles is 15%: the tested Total THC, Total CBD, or any other labeled cannabinoid may differ from the label by no more than 15%.
- Every multi-serving edible batch gets homogeneity testing. The number of units and servings tested scales with batch size: a batch of 1 to 249 units has 3 servings tested from 1 unit; a batch of 5,000 to 7,499 units has 28 servings tested from 14 units; the largest batches (90,000 to 100,000 units) have 50 servings tested from 25 units. A batch over 100,000 units is tested as multiple 100,000-unit batches.
- The lab calculates the percent relative standard deviation (%RSD) of Total Active THC and Total Active CBD across all servings tested. A %RSD above 25%, or any single serving more than 50% off the average, fails homogeneity. The %RSD must be printed on the COA.
- Edible potency is calculated using the measured weight of the product, and the lab must homogenize the whole product (without removing sugar coatings) before testing.
%RSD = (standard deviation of servings ÷ average of servings) × 100
So a pack whose tested servings read 9.8, 10.2, 10.0, 9.6, 10.4 mg of THC has an average of 10.0 mg of THC and a %RSD of about 3%: a well-made, evenly dosed product.
Red flags worth a second look
Ask at the counter if you see any of these:
- Mismatched or missing batch number. The lab report must correspond to your exact product batch. If the numbers don't match, the report isn't for your product.
- An old test date, or an expired one. Florida lab reports expire no more than one year after the sample date. Cannabinoids are fairly stable but still degrade slowly (THC converts to CBN over time), and terpenes fade faster. A report many months old may not reflect the current terpene character even if it is still valid.
- No safety panel. A complete lab report includes potency and every contaminant screen required for that product type. A sheet with only potency leaves out the safety tests.
- A "R&D ONLY NOT FOR RETAIL" stamp. Labs also run research samples, and those lab reports must be labeled as such. An R&D lab report is not a compliance lab report and cannot be used to sell product.
- A retest or amendment note you cannot explain. Amended lab reports are legal and must carry a bold notice plus a narrative of what changed. Read the narrative. A corrected label is routine; a changed contaminant result deserves a question.
- Round numbers everywhere. Real results are messy (23.6%, not 24%). If every line is a whole number, ask.
- Flower above 32% Total THC. Not impossible, but Florida requires the lab to confirm any flower result above 32% with a second preparation and report it to the OMMU. It is a number worth checking against the strain's history.
- A lab you do not recognize. Look for a Florida CMTL and an ISO/IEC 17025 reference. The OMMU publishes the list of CMTLs.
A passing report means the batch met Florida's limits. It does not say how the product will affect you, and a single failing result does not necessarily mean a product would have harmed any individual. Use the lab report to inform your choices, and rely on your physician for medical guidance.
Do and don't: choosing medicine with a lab report
Do
Start with the five checks at the top of this page. Then:
- Use the terpene profile as a fingerprint. Learning which terpene profiles work for you, and which do not, makes future choices more intuitive than strain names alone.
- Check the serving math on edibles. Serving size × servings per package = total. Look at the %RSD for consistency.
- Ask. MMTC staff are used to being asked for lab reports. If a report cannot be produced, that is an answer too.
Don't
- Don't assume percentage equals potency. A 30% flower is not necessarily a better experience than a 22% flower; terpenes, cannabinoid mix, freshness, and how you use it all matter.
- Don't read a low delta-9 THC number on flower as "weak." Look at THCA and Total THC.
- Don't treat Total Cannabinoids as a THC number. It is the sum of everything, including CBD, CBG, and the acids.
- Don't skip the contaminant pages. Nothing detected across the board is the goal; a passing number close to a limit is worth knowing about.
- Don't panic over a "J" or an asterisk. It marks a trace between the LOD and the LOQ: detected, estimated, and almost always far below the limit. It is a pass.
- Don't compare across product types without adjusting. Inhaled and non-inhaled products are held to different limits, and flower is tested differently than concentrates.
- Don't only consider the cannabinoids. The rest of the report is where the real information about safety and character lives.
Florida testing requirements at a glance
Every test Florida requires, by product type. "Flower" is Usable Whole Flower Marijuana (plus kief, bubble hash, and rosin); "inhaled" is a derivative product meant for inhalation (vapes, concentrates); "not inhaled" is a derivative product not meant for inhalation (tinctures, capsules, topicals); edibles are their own category.
| Test | Flower | Inhaled | Not inhaled | Edibles | Key limits |
|---|---|---|---|---|---|
| Cannabinoid profile (11 cannabinoids) | Required | Required | Required | Required | Reported in mg/g and %, 3 sig. figs |
| Total Active THC and CBD (mg/package) | Required | Required | Required | Required | Flower > 32% THC must be confirmed |
| Label accuracy | Required | Required | Required | Required | 10% (> 25 mg), 50% (≤ 25 mg), 15% for edibles |
| Terpenes | Voluntary | Voluntary | Voluntary | Voluntary | No state limit; reported as received |
| Microbials (STEC, Salmonella, 4 Aspergillus spp.) | Required | Required | Required | Required | None present in 1 g |
| Listeria monocytogenes | Required | – | – | Required | None present in 1 g |
| Total yeast and mold | Required | Required | Required | Required | < 100,000 CFU/g (< 10 for transmucosal) |
| Mycotoxins (aflatoxins B1, B2, G1, G2, sum; ochratoxin A) | Required | Required | Required | Required | < 20 ppb each; aflatoxins < 20 ppb combined |
| Residual solvents (21) | – | Required | Required | Required | Two limit columns; see table above |
| Heavy metals (Pb, As, Cd, Hg, Ni, Sn) | Required | Required | Required | Required | Pb and Sn: one limit for every route; others vary by route |
| Agricultural agents (66) | Required | Required | Required | Required | Two limit columns; total load < 5 / 30 ppm |
| Water activity | Required | Required | Required | Required | ≤ 0.65 aw flower; ≤ 0.85 aw others |
| Moisture | Required | – | – | – | Below 15.0% |
| Filth and foreign material | Required | Required | Required | Required | ≤ 1% by weight, ≤ 10% of area; no visible feces or mold |
| Homogeneity (%RSD) | – | – | – | Multi-serving only | %RSD ≤ 25%; no serving > 50% off average |
| Serving and package caps | – | – | – | Required | 10 mg THC/serving; 200 mg/package (±15%) |
This page will be updated as the rules change. If a lab report you are reading uses a limit different from the ones above, the lab report reflects the rule in force on its test date, and the limit printed on the lab report is the one that applied.
Sources
Rules behind this page. Florida Administrative Code Chapter 64-4: Rule 64-4.300 (definitions, including Total Active THC), 64-4.301 (lab certification and the testing fields for each matrix), 64-4.308 (sample testing and every acceptable limit), 64-4.311 (what a lab report must contain), all effective May 28, 2026; Rule 64-4.212 (MMTC compliance testing) and 64-4.013 (pesticide use). These permanent rules replaced emergency rules 64ER20-39 (sample testing) and related 64ER20-series rules that governed testing from 2020 until 2026. Two transition periods matter for lab reports you read in 2026: labs had 60 days from May 28, 2026 to begin reporting Listeria, nickel, and tin, and have one year to add delta-8 THC to the Total Active THC calculation.
- Rule 64-4.308, CMTL Sample Testing (Florida Administrative Code)
- Rule 64-4.311, CMTL Certificate of Analysis
- Rule 64-4.300, CMTL Definitions
- Proposed CMTL rules text, Florida Administrative Register Vol. 51 No. 84 (April 30, 2025)
- Notice of Change to CMTL rules, Florida Administrative Register Vol. 52 No. 41 (March 2, 2026)
- OMMU Rules and Regulations page (all current rules and effective dates)
Written by FL Cannabis Index from the sources listed. Last reviewed 5 November 2026. Found a mistake? Email [email protected].