· 9 min read
Cannabis Lab 101: Residual Solvents Testing, Headspace GC, and the Class 1/2/3 Limits
I walk through every step of cannabis residual-solvent testing: how USP <467> Class 1, 2, and 3 limits apply to extracts, why headspace GC is the right tool, how to set up calibration, and why an ethanol extract can still fail. Sourced to primary USP documents throughout.

Residual solvents testing is one of the least glamorous panels in a cannabis lab and one of the most consequential. A concentrate that looks perfect on potency can carry enough residual butane, hexane, or methanol to fail compliance, and the only reliable way to find out is gas chromatography. This article walks through the USP <467> framework that most state programs borrow from, the headspace GC workflow, the Class 1/2/3 logic, and the specific reason ethanol extracts are not automatically safe.
Whether you are a bench tech setting up a headspace GC method for the first time, a lab director deciding how closely to follow USP <467>, or a concentrate manufacturer trying to understand why your ethanol-extracted product came back with a flag, this article gives you the framework, the instrument logic, and the regulatory context you need.
Here is what we cover:
- What USP <467> is and why cannabis labs use it
- Class 1, Class 2, and Class 3: what the categories mean and which solvents fall where
- Headspace GC setup and the USP procedures
- Why ethanol extracts still fail, and what to look for
- When loss on drying is and is not acceptable
- Jurisdiction-specific limits and why you cannot rely on USP alone for butane
Step 1: Understand what USP <467> actually is and why it matters here
USP General Chapter <467>, titled “Residual Solvents,” defines residual solvents as volatile organic chemicals used or produced during the manufacture or preparation of drug substances, excipients, dietary ingredients, drug products, or dietary supplements. The chapter states that these solvents should be removed as far as possible because they provide no therapeutic benefit.
Cannabis extracts are not pharmaceutical drug products in the federal sense, but USP has explicitly identified <467> as providing toxicologically based residual-solvent limits and analytical methods applicable to cannabis extracts. Most state cannabis programs either adopt USP <467> limits by reference or build their own analyte lists using the same toxicological tier structure. That means understanding the chapter is not optional for a cannabis lab director, even if your state rule does not cite it verbatim.
The USP <467> framework is the intellectual foundation for almost every cannabis residual-solvent panel in the United States, whether or not your state rule says so explicitly.
One important boundary: USP <467> is a pharmaceutical compendial chapter. Your state cannabis program may add solvents, tighten limits, or define acceptance differently. Where state rules differ from USP, the state rule governs for compliance purposes. Check your state’s cannabis regulator page directly; I will not guess at limits that vary by jurisdiction.
Step 2: Learn the Class 1, Class 2, and Class 3 tier logic
USP <467> sorts solvents into three classes based on toxicological risk. Understanding the tier tells you immediately how strict the limit will be and what analytical approach is required.
Class 1 solvents carry the strictest limits because they are known or suspected human carcinogens or environmental hazards. The current USP <467> reference-standard list names five: benzene, carbon tetrachloride, 1,2-dichloroethane, 1,1-dichloroethene, and 1,1,1-trichloroethane. If you have seen a sixth compound cited elsewhere as Class 1, verify it against the current chapter before including it in your method.
Class 2 solvents are non-genotoxic animal carcinogens or possible human health hazards. The USP <467> Class 2 list includes compounds such as 1,2-dichloroethene, hexane, methanol, chloroform, methylene chloride, and methylcyclohexane, among others. Limits are set by a permitted daily exposure calculation rather than a flat prohibition.
Class 3 solvents have low toxic potential and are acceptable at higher concentrations. Ethanol, acetone, and isopropyl alcohol are common examples. The key threshold for Class 3 is 0.5%: USP states that loss on drying is not appropriate when the amount of a Class 3 solvent exceeds 0.5%, and gas chromatography must be used to demonstrate compliance above that level.
Note: Butane is not listed among the five USP Class 1 solvents. You cannot automatically assign butane a Class 1 limit. Butane limits for cannabis products must come from the applicable jurisdiction’s cannabis regulation or product specification. Look up your state’s rule directly.
Step 3: Set up the headspace GC method
Gas chromatography is the analytical platform USP specifies for residual-solvent quantitation. Headspace sampling (injecting the vapor above a heated sample into the GC rather than the liquid or solid sample itself) is the practical configuration for volatile solvents because the analytes of interest partition into the gas phase, which keeps the column and inlet clean and avoids matrix interference from waxes, lipids, and cannabinoids.
USP <467> contains three analytical procedures. Procedures A and B are used for limit and confirmatory testing of known solvents; Procedure C is the quantitative test. Procedure B may also be used for quantification when its performance is better than Procedure A. Running Procedure B alongside Procedure A when you have a co-elution is the correct approach, not simply reporting the co-eluted peak as a single compound.
For calibration, you prepare standard solutions at multiple concentration levels bracketing the acceptance criteria for each class. USP <467> describes Class 1 and Class 2 procedures as validated over 50% to 150% of the concentrations described in the standard preparations. Your calibration curve should cover that range at minimum. A linearity check and system suitability run (resolution, peak symmetry, signal-to-noise) belong at the start of every analytical sequence.
Do not describe your method as “USP <467> compliant” solely because it uses headspace sampling. Compliance also depends on the applicable procedure, calibration, system suitability, validation, and acceptance criteria. If your state requires method validation, see our method validation walkthrough for the full framework.
Note: USP distinguishes <467> “Residual Solvents” from <1467> “Residual Solvents: Verification of Compendial Procedures”. Chapter <1467> addresses verification for Class 1 and Class 2 solvents specifically. If your state requires compendial verification, that is the chapter to read alongside <467>.
Step 4: Understand why ethanol extracts still fail
This is the question I get most often from manufacturers, and the confusion is understandable. Ethanol is a Class 3 solvent with relatively permissive limits. So why does an ethanol-extracted product come back with a residual-solvent flag?
There are two common reasons.
First, residual ethanol itself can exceed the acceptance criterion in the governing rule. Class 3 does not mean unlimited. USP is explicit that gas chromatography must be used when Class 3 solvent content exceeds 0.5%, and many state cannabis programs set a specific numeric limit for ethanol that is lower than you might expect for a “safe” solvent.
Second, and more commonly overlooked: an ethanol extract can fail if another process solvent is detected above its applicable limit. Ethanol used in extraction is rarely pure. Denaturants, co-solvents used in winterization (a cold-temperature filtration step to remove fats and waxes), or cleaning agents used on equipment can introduce Class 1 or Class 2 compounds that show up on the GC panel even though the primary extraction solvent was ethanol.
The extraction solvent is not the only solvent the GC is looking for. Every chemical that touched the product, from the extraction vessel to the rotary evaporator to the transfer lines, is a potential source of a residual-solvent hit.
I suggest labs take it a step further and audit the entire production chain when a product fails: ask the manufacturer for a full solvent inventory, not just the primary extraction solvent. The answer is usually somewhere in the winterization or post-processing steps.
Note: Reporting individual solvent identity and concentration is the correct approach. Treating “total residual solvents” as a substitute for individual limits is only appropriate if the governing rule expressly permits it. Most state programs require individual analyte reporting.
Step 5: Know when loss on drying is and is not acceptable
Loss on drying (a gravimetric technique that measures weight lost when a sample is heated, used as a proxy for volatile content) is sometimes proposed as a faster alternative to GC for Class 3 solvents. USP <467> allows it in a narrow circumstance.
USP allows loss on drying to demonstrate Class 3 acceptance when the result is no more than 0.5%. If the loss-on-drying result is at or below that threshold, you have demonstrated that Class 3 solvent is within acceptable limits without running a GC.
But the conditions matter. When a product contains a Class 3 solvent together with a Class 1 or Class 2 solvent, loss on drying may be used for Class 3 acceptance only when the loss-on-drying result is no more than 0.5%. The presence of a Class 1 or Class 2 solvent does not make GC unnecessary for those compounds; it only means loss on drying can still cover the Class 3 portion if the threshold is met.
If loss on drying exceeds 0.5%, you must run GC. There is no shortcut past that threshold.
For most licensed cannabis testing labs, loss on drying as a substitute for GC is rarely practical because state programs typically require GC-based residual-solvent panels regardless of the Class 3 concentration. Check your state’s required analyte list and method requirements before relying on loss on drying for any compliance submission.
Note: USP’s FAQ notes that a laboratory may discuss use of loss on drying with FDA when process-validation information demonstrates that Class 3 solvent can be reduced to 0.5% or lower in the final product. That pathway is a pharmaceutical regulatory conversation, not a cannabis compliance shortcut.
Quick answers
What is the USP Class 1 solvent list for residual solvents testing? USP General Chapter <467> lists five Class 1 solvents: benzene, carbon tetrachloride, 1,2-dichloroethane, 1,1-dichloroethene, and 1,1,1-trichloroethane. These carry the strictest limits because they are known or suspected human carcinogens. Verify against the current chapter before building your analyte list, as the compendium is updated periodically.
What class is butane under USP 467? Butane does not appear in the USP <467> Class 1 list of five solvents, so you cannot automatically assign it a Class 1 limit. The applicable butane limit for a cannabis product comes from the jurisdiction’s cannabis regulation, not from USP Class 1 by default. Look up your state’s cannabis program rule directly.
Why does an ethanol extract still fail residual solvents testing? A product can fail if residual ethanol itself exceeds the acceptance criterion in the governing rule, or if a co-solvent or process chemical is detected above its own limit. USP is explicit that gas chromatography must be used when Class 3 solvent content exceeds 0.5%, and the GC panel covers all solvents on the state’s required list, not just the primary extraction solvent.
When can I use loss on drying instead of GC for Class 3 solvents? USP <467> allows loss on drying to demonstrate Class 3 acceptance only when the result is no more than 0.5%. If the result exceeds 0.5%, or if a Class 1 or Class 2 solvent is also present and needs to be quantified, gas chromatography is required. Most state cannabis programs require GC-based panels regardless, so check your state rule before relying on this pathway.
What are USP <467> Procedures A, B, and C? USP <467> contains three analytical procedures. Procedures A and B are used for limit and confirmatory testing of known solvents; Procedure C is the quantitative test. Procedure B may also be used for quantification when its performance is better than Procedure A, and all three rely on gas chromatography.
Does my cannabis residual-solvent method automatically comply with USP <467> if I use headspace sampling? No. Headspace sampling is an appropriate technique for volatile-solvent analysis, but compliance with USP <467> also depends on the applicable procedure, calibration, system suitability, validation, and acceptance criteria. Headspace injection alone is not sufficient to claim compendial compliance. See our method validation walkthrough for what a full validation package requires.
Sources
FAQ
Frequently asked
- what is the USP Class 1 solvent list for residual solvents testing
- USP General Chapter <467> lists five Class 1 solvents: benzene, carbon tetrachloride, 1,2-dichloroethane, 1,1-dichloroethene, and 1,1,1-trichloroethane. These carry the strictest limits because they are known or suspected human carcinogens. The full chapter is at the USP NF portal.
- what class is butane under USP 467
- Butane does not appear in the USP <467> Class 1 list of five solvents, so you cannot automatically assign it a Class 1 limit. The applicable butane limit for a cannabis product comes from the jurisdiction's cannabis regulation, not from USP Class 1 by default.
- why does an ethanol extract still fail residual solvents testing
- Ethanol is not a Class 1 solvent, but a product can still fail if residual ethanol exceeds the acceptance criterion in the governing rule, or if a co-solvent or process chemical is detected above its own limit. Running the GC panel catches both scenarios.
- when can I use loss on drying instead of GC for Class 3 solvents
- USP <467> allows loss on drying to demonstrate Class 3 acceptance only when the result is no more than 0.5%. If the loss-on-drying result exceeds 0.5%, or if a Class 1 or Class 2 solvent is also present, you must use gas chromatography to confirm compliance.
- what are USP <467> Procedures A, B, and C
- USP <467> contains three analytical procedures. Procedures A and B are used for limit and confirmatory testing of known solvents; Procedure C is the quantitative test. Procedure B may also be used for quantification when its performance is better than Procedure A. All three rely on gas chromatography.
- does my cannabis residual-solvent method automatically comply with USP <467> if I use headspace sampling
- No. Headspace sampling is an appropriate technique for volatile-solvent analysis, but compliance with USP <467> also depends on the applicable procedure, calibration, system suitability, validation, and acceptance criteria. Headspace injection alone is not sufficient to claim compendial compliance.
Related guides
All guides- 01
Cannabis Lab 101: Cannabis Edibles Testing Cost — Why Infused Products Cost More to Test
I spent four years running potency assays on everything from flower to fudge, and infused products always took longer and cost more. Here is exactly why — matrix effects, homogeneity requirements, and the extra sample prep no one explains — plus real prices from published lab menus.
- 02
Cannabis Lab 101: Cannabis Lab Technician Salary by State and Role
I pulled every sourced number I could find from ZipRecruiter, Indeed, and Salary.com to build a real salary table by role — from sample-prep tech to lab manager. Here is what the data actually says, what drives the spread, and how to negotiate your next offer.
- 03
Cannabis Lab 101: Proficiency Testing — How Labs Prove They Get the Right Answer
I spent years running compliance assays and watching labs treat proficiency testing as a paperwork box to check. It is not. PT is the only external proof that your numbers mean something — and regulators in every licensed state are watching the scores.
Need this tested?
Compare labs that run these assays and get quotes in one go — no account, no fee.