Quality Assurance
Quality assurance in wholesale isn’t “how nice it looks.” It’s whether a batch can pass a defined review process,
backed by documentation that survives scrutiny. This page is a buyer-side QA framework designed for EU-focused procurement.
This is operational guidance, not legal advice.
Core references: Testing standards ·
COA requirements ·
Lab verification ·
Batch traceability ·
Sample COA
QA first principles (read this once, then enforce it)
- Write specs before you buy: If your acceptance criteria are created after a problem appears, they’re not criteria—they’re arguments.
- Batch-linked reality: every decision ties to a batch/lot ID that appears across COA, invoice, and packing list.
- Verification beats trust: treat lab results as decision-grade only after verification.
- Control variance: define how you handle measurement uncertainty, sampling variability, and retests.
The buyer QA workflow (simple, repeatable, audit-friendly)
Step 1 — Pre-purchase specification
Define the requirements that determine pass/fail. Don’t leave them “understood.” Put them in writing.
- Potency window: acceptable THCA/Δ9-THC range and how “Total THC” is calculated/reported.
- Contaminant panel: which categories you require (pesticides, heavy metals, mycotoxins, microbials) and your internal limits.
- Documentation completeness: minimum COA fields and batch linkage requirements.
- Retest policy: when retesting is allowed, which lab counts as referee, and which result governs.
Align specs to the technical baseline in /compliance/thca-testing-standards/.
Step 2 — Batch file readiness check
Before you approve a batch, confirm the batch file is complete and internally consistent.
- COA meets required fields: COA requirements
- Lab is verifiable: lab verification
- Batch/lot IDs map across documents: batch traceability
- Shipment paperwork can map to the batch: shipping documents
Step 3 — Receiving inspection (what you document on arrival)
Receiving is where “it looked fine in the email” becomes reality. Record it.
- Packaging condition: tamper evidence, damage, moisture exposure indicators.
- Label consistency: batch/lot ID and product descriptors match paperwork (packaging & labeling).
- Weight checks: spot-check container weights where practical.
- Photos: take timestamped photos of outer carton, inner packaging, labels, and seals.
Storage handling discipline matters here: /compliance/storage-handling/.
Step 4 — Disposition decision
Decide using your written specs. Options:
- Accept: batch meets specs and documentation is complete.
- Accept with concession: minor variance documented and approved internally.
- Quarantine: pending clarification, verification, or confirmatory testing.
- Reject: non-conforming against written criteria.
COA review checklist (fast, brutal, effective)
If any item below fails, the COA is incomplete or non-decision-grade until corrected.
- Batch/lot ID present and matches invoice/packing list.
- Dates present: sample received date + test date(s) + report issue date.
- Methods named (potency method should be clear; contaminants should include LOQ/LOD where relevant).
- Units and cannabinoid list are clear (THCA, Δ9-THC, Total THC calculation approach disclosed).
- Lab identity is verifiable (contact details, report number authenticity path).
- Pass/fail logic is not assumed—buyers define acceptance specs.
Use /documentation/sample-coa/ as your field reference.
Sampling and retained samples (dispute insurance)
Sampling is where most “lab debates” begin. Your QA program should define sampling discipline and retention.
- Composite sampling: multiple increments from across the batch, not a single grab sample.
- Split samples: send one sealed split to the lab and retain one sealed split.
- Chain-of-custody: document who sampled, how, when, and how seals were handled.
Baseline guidance: /compliance/thca-testing-standards/.
Non-conformance workflow (when something fails)
A mature QA program assumes failure will happen and defines the response in advance.
Minimum workflow
- Quarantine: isolate inventory and pause distribution.
- Document audit: verify batch/lot mapping, COA integrity, and lab verification.
- Confirmatory testing: if your SOP allows, test retained split at an independent lab (chain-of-custody required).
- Disposition: accept, accept with concession, return, or reject based on written criteria.
- Corrective action: require supplier CAPA (root cause + prevention) for repeat issues.
What buyers should submit in a dispute
- Order ID + batch/lot ID(s)
- Receiving photos and receiving notes
- COA + any independent test report(s) and chain-of-custody notes
- Specific spec that was allegedly failed (not “it’s bad”)
Risk context for cross-border variability: /documentation/risk-disclosure/.
Audit-ready habits (small things that prevent big problems)
- Store batch files in a consistent folder structure by batch/lot ID.
- Keep a “verification note” for each lab COA (who verified, when, how).
- Keep a receiving log with photos and timestamps.
- Document concessions (what was off, why accepted, who approved).
- Track supplier performance over time (repeat failures are a purchasing decision).
FAQ
Is this QA framework a legal compliance program?
No. It’s an operational QA framework designed to support documentation discipline and reduce procurement risk.
For legal context references, use /legal-status/ and consult qualified professionals for decisions.
What’s the fastest “minimum viable QA” for a new buyer?
Define acceptance specs, require a complete batch-linked COA, verify the lab, and enforce batch traceability.
Start with COA requirements and lab verification.
How do we handle conflicting lab results?
Use a written retest/referee-lab policy and rely on retained split samples with chain-of-custody.
If you don’t define this before ordering, you’ll define it during a dispute—bad timing.
Where do packaging and storage fit in QA?
Packaging/labeling ensures batch identity survives transit and receiving review (packaging & labeling).
Storage/handling reduces degradation and quality drift (storage & handling).
Who do I contact for batch documentation questions?
Use /contact/ and include order ID and batch/lot ID(s).