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.

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

  1. Quarantine: isolate inventory and pause distribution.
  2. Document audit: verify batch/lot mapping, COA integrity, and lab verification.
  3. Confirmatory testing: if your SOP allows, test retained split at an independent lab (chain-of-custody required).
  4. Disposition: accept, accept with concession, return, or reject based on written criteria.
  5. 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).