A HACCP plan for a cannabis extraction facility is a written hazard analysis of every step from biomass intake to filled package, with a critical control point wherever a step is the last chance to stop a hazard. On a hydrocarbon line that is the vacuum purge (residual butane released under an internal limit of 500 ppm, ten times under California’s 5,000 ppm action level), on an ethanol line it is the solvent recovery and purge (40 to 50C under 28+ inHg until the batch tests under its limit), and on a beverage line it is the acidification or thermal step (pH 4.6 or lower, and in California a written HACCP to the 5-log pathogen reduction standard of 21 CFR 120.24). Biomass hazards that no extraction step removes, pesticides, heavy metals and mycotoxins, are controlled at the supplier with a COA and a water activity floor of 0.65, not in the process. Records of every monitoring check are reviewed within 7 working days, and the whole plan is reanalyzed at least every 3 years or whenever the process changes.

Most extraction labs that say they have a HACCP plan have a binder. The binder lists “microbial, chemical, physical” under every step, marks nothing as a critical control point, and has no critical limit a technician could fail. That plan passes nobody’s audit and protects nobody. What follows is the version an auditor can test: the hazard analysis worked line by line, the CCPs with numbers, and the crosswalk to the federal rule your state inspector is quietly reading from.

Which Rule Asks for What: HACCP, Part 117, and the State Plans

Federal FDA does not inspect a state-licensed marijuana manufacturer under its food rules. That does not make HACCP optional. The state programs that regulate ingestible cannabis borrowed the food-safety architecture wholesale, and the documents they ask for are HACCP plans under other names.

Framework Who it binds What it requires What it means for an extraction lab
Codex HACCP (7 principles, 12 steps) Nobody by law; the method every other row is built on Hazard analysis, CCPs, critical limits, monitoring, corrective action, verification, records The method. Use it to build whichever document your jurisdiction names
21 CFR Part 117 (FSMA preventive controls) FDA-registered food facilities, including hemp-derived ingestibles that sit under FDA jurisdiction A written food safety plan by a PCQI: hazard analysis plus process, allergen, sanitation and supply-chain preventive controls, recall plan, records kept 2 years The template auditors and insurers use. Broader than HACCP: controls are not limited to CCPs
California Product Quality Plan (DCC) Every licensed manufacturer, one plan per product Process steps from intake to transfer, hazard evaluation (biological, chemical, physical), preventive measures, monitoring, corrective actions A HACCP plan in all but name. Multiple products means multiple PQPs
California juice and beverage HACCP Manufacturers of cannabis juice, infused juice and beverages A written HACCP meeting 21 CFR 120.8, with the 5-log pathogen reduction of 120.24 The beverage line needs a validated 5-log step, not just a low pH
Health Canada preventive control plan Processing licence holders making extracts or edibles (SOR/2018-144) A written PCP covering every activity and ingredient, with verification procedures and evidence of implementation Health Canada points to generic HACCP models as the input and approves no templates

The practical rule: build one hazard analysis per product line to Codex HACCP, then map it to whatever your regulator calls the document. One analysis, several covers. The GMP side of the same quality system (cleanrooms, validation, the document control that holds this plan) is covered in our GMP certification guide for extraction labs.

The Five Preliminary Steps Nobody Writes Down

Codex puts five steps in front of the seven principles, and they are where extraction plans fall apart first:

  1. Assemble the team. The extraction lead, the QA person who signs the release, and whoever runs sanitation. A plan written by a consultant alone fails the first time the night shift changes the purge schedule.
  2. Describe the product. Form, cannabinoid range, water activity, pH, packaging, storage. A shatter at 0.3 aw and a gummy at 0.62 aw have different biological hazards before you analyze a single step.
  3. Identify intended use. Inhaled, ingested or topical, and by whom. Inhalation changes the chemical hazard list: anything that pyrolyzes in a coil (vitamin E acetate, the additive behind the 2019 EVALI outbreak) is a hazard for a cart and irrelevant for a tincture.
  4. Draw the flow diagram. Every step, including the ones that only happen on bad days: rework, remediation, a second purge, a re-filter.
  5. Walk the floor with the diagram. Verify it on the actual line. Diagrams drawn in the office leave out the hot box where carts sit overnight and the bucket the CRC media gets dumped into.

Worked Hazard Analysis: Closed-Loop Hydrocarbon (BHO) Line

The test for every row is the same: is the hazard reasonably likely to occur, and is this step designed to eliminate or reduce it to an acceptable level? If both answers are yes and no later step catches it, the step is a CCP. If a later step catches it, the step is controlled by a prerequisite program, not a CCP.

Step Hazard (type) Reasonably likely? Control CCP?
Biomass receiving Pesticides, heavy metals (C); Aspergillus, mycotoxins (B/C) Yes: no downstream step removes them, and a 15 percent yield concentrates any co-extracted residue roughly 5 to 7 times Supplier approval, full-panel COA per lot, water activity at or under 0.65 (ASTM D8197) on receipt No: supply-chain preventive control
Solvent receiving Non-food-grade butane or propane carrying mercaptans, unsaturates or heavier alkanes (C) Yes, when grade drifts between deliveries Purity COA per cylinder lot (instrument grade, 99.5 percent n-butane or better), reject odorized gas No: supply-chain control
Column pack and soak (-40C) Metal fines from fittings and mesh (P) Low Gasket and screen inspection in the pre-run checklist No
Recovery Solvent carryover into the collection pot (C) Yes: recovery ends with 5 to 15 percent solvent still in the oil Handled by the purge step No (controlled at the purge)
Vacuum purge Residual butane or propane over the action level (C) Yes: this is the step that removes it, and nothing after it does 29 to 38C, 29+ inHg, 24 to 72 hours; GC headspace on every batch before release YES: CCP 1
Formulation (carts) Cutting agents (vitamin E acetate, MCT, PEG) and non-cannabis terpenes with undisclosed solvent (C) Yes, wherever additive suppliers are not qualified Approved additive list, solvent COA on every terpene lot, no diluent on the banned list No: supply-chain control, unless the formulation step is the only check
Hardware fill Lead and other metals leaching from cart hardware (C) Yes, with unqualified hardware Heavy-metal COA on hardware lot, finished-product metals test No: supply-chain control
Packaging and labeling Wrong potency or missing warning (C, regulatory) Yes Label reconciliation against the release COA No: prerequisite program

The residual solvent row is the only CCP on most BHO lines, and it should be. A plan that declares six CCPs on a hydrocarbon line has confused prerequisite programs with critical points, and the auditor will ask for six sets of monitoring records the lab does not keep. Purge parameters and solvent-by-solvent endpoints are in our residual solvent purge SOP. Formulation ingredients are the other supply-chain control on a cart line; the terpene and flavor receiving checklist is in our terpene supplier COA guide.

Worked Hazard Analysis: Ethanol Line (Crude to Distillate)

Step Hazard (type) Reasonably likely? Control CCP?
Biomass receiving Pesticides, heavy metals, mycotoxins (C); microbial load (B) Yes Same supplier controls as the hydrocarbon line; water activity at or under 0.65 No: supply-chain control
Ethanol receiving Denaturant not permitted for ingestible products; methanol (C) Yes, when purchasing substitutes a cheaper SDA formula Grade and denaturant on every drum COA against the state’s allowed list No: supply-chain control
Cold extraction and winterization Lipids and waxes (quality, not safety) n/a Process specification No
Filtration and CRC Filter-aid and adsorbent fines: diatomaceous earth, bentonite, silica (P) Yes, if the final filter is skipped or torn Final filter at 1 micron or finer, integrity check per batch No if distillation follows; YES if the product ships as crude or tincture
Solvent recovery and purge Residual ethanol over the action level (C) Yes 40 to 50C, 28+ inHg, 8 to 24 hours; GC headspace before release YES: CCP 1 (for crude, tinctures and any oil that is not distilled)
Short path or wiped film distillation Microbial survival (B); thermal degradation products (C) Microbes: no, the 150 to 200C pass leaves nothing alive. Mycotoxins: yes, they are heat-stable Distillation parameters as a process control; mycotoxin test on any lot whose biomass flagged Aspergillus No (process control; mycotoxins controlled at receipt)
Storage of distillate Oxidation to CBN (quality); container leachables (C) Low Inert headspace, glass or fluoropolymer containers No

The ethanol line is where the CCP count depends on the product. If every batch goes through distillation, the purge before it is a process control, because the still is the last step that removes ethanol. If the line also ships crude, RSO or tincture, the purge is the last chance and becomes a CCP for those SKUs. That is one more reason California wants a separate plan per product.

Worked Hazard Analysis: Cannabis Beverage Line

The beverage line is the only one of the three where the biological hazard is real at the finished-product stage. Water, sugar and a pH above 4.6 will grow Clostridium botulinum in a sealed can. This is why California pulled cannabis beverages into the juice HACCP rule.

Step Hazard (type) Reasonably likely? Control CCP?
Water and ingredient receiving Microbial (B); allergens such as soy lecithin or nut-oil carriers (allergen) Yes Potable water records; allergen matrix and supplier specs No: prerequisite and allergen controls
Emulsion receiving or production Unvalidated emulsion carrying the wrong dose or separating in the can (C, dose) Yes Emulsion spec: droplet size, potency per gram, stability data on file No: supply-chain or process control
Batching and dosing Dose error: over-label THC per can (C) Yes: a 10 mg can at 15 mg is a consumer-safety failure, not a labeling nit Batch-sheet reconciliation, in-process potency on the batch tank No (verified at release testing)
Acidification C. botulinum growth if pH stays above 4.6 (B) Yes, in any low-acid formula pH at or under 4.6 on every batch, calibrated meter, recorded YES: CCP 1
Pasteurization or validated 5-log step Vegetative pathogens (B) Yes for juice-class products Time and temperature validated to a 5-log reduction (21 CFR 120.24 in California); continuous chart record YES: CCP 2
Filling and seaming Seam failure and recontamination (B); glass or metal fragments (P) Yes Seam teardown on schedule; metal detection or X-ray at the end of line YES: CCP 3 (metal detection)
Release testing Microbial, potency, residual solvent from the emulsion (C/B) n/a Batch hold until the COA is back No: verification

The beverage line also breaks a common assumption: the cannabinoid itself is not the main hazard. The dose is. A can that tests at 150 percent of label passed every microbial check and still delivered a 15 mg surprise to someone who budgeted for 10. Dose uniformity belongs in the hazard analysis, with the batch-tank potency check as the control, and it ties directly to the homogeneity work in our state potency audit guide.

The CCP Table: Critical Limits, Monitoring, Corrective Action

This is the page of the plan an auditor reads first. Every CCP gets a number a technician can fail, a check frequency, a named response, and a record.

CCP Critical limit Monitoring (what, how, how often, who) Corrective action Verification Record
BHO vacuum purge Residual butane and propane under 500 ppm internal limit (state action level 5,000 ppm in California) GC headspace on every batch before release; oven temperature and vacuum logged every 2 hours by the purge tech Hold the batch, re-purge, retest; if two re-purges fail, investigate film thickness or trapped solvent before a third QA reviews purge logs and GC results within 7 working days; GC calibration per the lab method Purge log, GC report, hold tag
Ethanol recovery and purge (non-distilled SKUs) Residual ethanol under the state action level (5,000 ppm in California) with an internal margin GC headspace per batch; rotary or falling-film temperature and vacuum logged per run Hold, re-purge, retest; root-cause any batch that needed more than one re-purge QA record review within 7 working days Run log, GC report
Beverage acidification pH 4.6 or lower (target 4.2 or lower for margin) pH on every batch after acid addition and again at the filler, meter calibrated daily with two buffers Stop fill, adjust and re-measure; anything filled out of limit is held and evaluated Calibration log, daily meter check, record review pH log, calibration log
Beverage thermal step Time and temperature from the process authority’s 5-log validation Continuous chart or data logger, checked at start and every hour Divert or re-process any product under the minimum; hold and evaluate anything that reached the filler Chart review same day; thermometer calibration Chart, deviation record
Metal detection Rejects ferrous 1.5 mm, non-ferrous 2.0 mm, stainless 2.5 mm test pieces Test wands at start, every 2 hours and at end of run; reject bin checked Re-inspect everything since the last good check; find the source Weekly detector verification, reject review Detector log, reject log

Two numbers in that table are worth arguing for. The 500 ppm internal limit on butane is a tenth of the California action level because a GC result has measurement uncertainty and a sample pulled from the top of a slab is not the middle of it; a 4,800 ppm result is a pass on paper and a coin toss in the field. The 4.2 pH target gives 0.4 units of margin to the 4.6 limit, enough to cover electrode drift and temperature error between calibrations, which is where most out-of-limit beverage batches actually come from.

If you want the plan built hands-on, with the hazard analysis worksheets and CCP records your team can actually run, that is exactly what we built extractiontraining.com for.

The 21 CFR 117 Crosswalk

Part 117 is the rule a sophisticated auditor carries into a cannabis facility, because it is the closest federal analog and it is what hemp ingestible plants under FDA jurisdiction already answer to. Map your plan to it once and every later audit is a lookup.

HACCP principle Part 117 section What it adds beyond HACCP Extraction-lab record that satisfies it
1. Hazard analysis 117.130 Must consider hazards from the environment, ingredients, and economically motivated adulteration Line-by-line hazard tables (above), signed by the team
2. Critical control points 117.135 Preventive controls go beyond CCPs: process, allergen, sanitation, supply-chain and other controls CCP table plus a preventive-control list for supplier COAs, allergen matrix, sanitation SOPs
3. Critical limits 117.135(c)(1) Parameters and values for process controls Purge limits, pH limit, thermal process values, detector test-piece sizes
4. Monitoring 117.145 Monitoring must be documented and appropriate to the control Purge logs, GC reports, pH and calibration logs, detector logs
5. Corrective action 117.150 Covers both deviations and situations with no defined procedure Hold tags, re-purge records, deviation and root-cause reports
6. Verification 117.155, 117.160, 117.165 Validation of process controls; records review within 7 working days; calibration Validation file for the purge and the thermal step; QA review signatures
7. Records 117.190, 117.305, 117.315 Records kept at least 2 years; plan reanalysis at least every 3 years (117.170) Document control register; reanalysis date on the plan cover
(no HACCP equivalent) 117.139 recall plan; 117.180 PCQI Written recall procedure; a qualified individual prepares the plan Recall SOP tied to seed-to-sale lot tracking; PCQI training certificate on file

The two rows HACCP never asked for are the ones extraction labs miss: a recall plan that can actually trace a cart back to a biomass lot through the seed-to-sale system, and a named, trained person who owns the plan. Our SOP template guide covers the procedures those records sit inside.

Common Failures and How to Diagnose Them

Every step in the hazard table is marked CCP.

Root cause: The team confused “a hazard exists here” with “this is the last step that controls it.” Prerequisite programs (sanitation, pest control, supplier approval) got promoted to CCPs.

Diagnostic test: Ask of each CCP: if this check fails and nobody notices, does a later step still catch the hazard? If yes, it is not a CCP.

Fix: Collapse to the true last-chance steps. A BHO line usually lands at one CCP, a beverage line at two or three.

Residual solvent results pass, then a state audit sample fails the same batch.

Root cause: The sample tested at release came from the surface of a slab or the top of a jar; solvent stays trapped in the thick center.

Diagnostic test: Pull three increments (edge, center, bottom) from the next batch and test them separately; a spread of more than 2x says the sampling, not the purge, is the problem.

Fix: Write the increment sampling into the monitoring procedure and keep the internal limit at 500 ppm so the center still clears the action level.

A clean pesticide panel on the finished oil, a failed panel on the next lot from the same farm.

Root cause: Supplier COAs were accepted without verification, and the residue concentrated in extraction.

Diagnostic test: Compare the biomass COA lab and date to your intake date; check whether you have ever tested the biomass yourself.

Fix: Add a verification test on a sampling schedule (every lot for new suppliers, then a fraction once history is clean) and reject lots above 0.65 aw at the door.

Beverage pH logs are perfect and a lot still swells in the warehouse.

Root cause: The meter drifted, the log recorded the drifted reading, and the batch sat above 4.6.

Diagnostic test: Check the calibration log against the pH log dates; a meter not checked against two buffers that morning makes every reading that day unverified.

Fix: Daily two-buffer calibration as a verification step, a 4.2 target, and a second pH read at the filler.

The plan exists, but nobody can find the last reanalysis.

Root cause: The plan was written once for licensing and never reopened after the process changed (new solvent, new emulsion supplier, new filler).

Diagnostic test: Compare the plan’s flow diagram to the floor. Every mismatch is a change that should have triggered reanalysis.

Fix: Put a reanalysis trigger list on the plan cover (new product, new equipment, new solvent or supplier, any CCP deviation pattern, and the 3-year date).

Two related reads: what to do once a batch has already failed is in our remediation decision guide, and why biomass water activity drives half of the microbial and mycotoxin risk is in our water activity guide.

Frequently Asked Questions

Do cannabis extraction facilities need a HACCP plan?

Not under federal food law, because FDA does not regulate state-licensed marijuana manufacturing. The state equivalents still require one in substance: California requires a Product Quality Plan for every manufactured product and a written HACCP to 21 CFR Part 120 for beverages, and Health Canada requires a preventive control plan for extracts and edibles. Build to Codex HACCP and map it to the local document.

What are the critical control points in a BHO extraction lab?

Usually one: the vacuum purge, because it is the last step that removes residual butane and propane. A defensible critical limit is an internal 500 ppm, a tenth of California’s 5,000 ppm action level, verified by GC headspace on every batch before release.

What is the difference between HACCP and 21 CFR 117?

HACCP controls hazards at critical control points. Part 117 requires a food safety plan with preventive controls that also cover allergens, sanitation, and the supply chain, plus a recall plan, a qualified individual (PCQI), records kept 2 years, records review within 7 working days, and reanalysis at least every 3 years.

How do you control pesticides and heavy metals in a HACCP plan for extraction?

At the supplier, not in the process. No extraction or distillation step reliably removes them, and a 15 percent extraction yield can concentrate co-extracted residues roughly 5 to 7 times. The control is supplier approval, a full-panel COA per lot, periodic verification testing, and rejecting biomass above 0.65 water activity.

Does a cannabis beverage need a HACCP plan?

In California, yes: cannabis juices and beverages need a written HACCP meeting 21 CFR 120.8, including the 5-log pathogen reduction in 120.24. Elsewhere the hazard is the same: a low-acid beverage above pH 4.6 can grow Clostridium botulinum, so acidification and the thermal step are CCPs.

How often should a cannabis HACCP plan be reviewed?

Monitoring records are reviewed within 7 working days, the plan is reanalyzed at least every 3 years, and any change in product, solvent, supplier, or equipment triggers a reanalysis immediately. A plan whose flow diagram no longer matches the floor is out of date regardless of its date.

Ready to level up your extraction game? Contact WKU Consulting for personalized guidance on building your extraction lab.

For more deep dives into cannabis chemistry, extraction SOPs, and lab design, subscribe to the WKU Consulting YouTube channel.

Watch a related video: