Receiving & Quality Control
Receiving & Quality Control
Cannabis dispensary receiving and QC operational playbook -- manifest verification, package inspection, COA decision gate, quarantine triggers, cold chain, Metrc transfer acceptance, FIFO rotation, and discrepancy documentation.
Extends: sops.md §Receiving. That SOP is the index; this file is the operational playbook.
See also: coa-testing.md for COA panel anatomy | lab-testing-operations.md for failure decision trees | supply-chain.md for manifest mechanics | compliance-metrc.md for Metrc mechanics
Data current as of early 2026. Metrc mechanics are state-tenant-specific (see §8); always qualify by state.
1. Overview: The Receiving Desk as Compliance Gate
The receiving desk is the last compliance checkpoint between a distributor's truck and your sales floor. Once a package is accepted in Metrc -- the state traceability system -- the dispensary owns the regulatory liability. Rejecting a damaged, mis-manifested, or lab-failing lot in the parking lot is free. Rejecting it off the sales floor after a consumer complaint or a regulator inspection is a career-defining event.
This playbook treats receiving as three sequential gates, any one of which can halt acceptance:
| Gate | What It Verifies | Failure Consequence | Typical Time | |------|------------------|---------------------|--------------| | Gate 1 -- Manifest | Paperwork matches the physical delivery and the Metrc transfer record | Refuse acceptance in Metrc; driver leaves with the load | 5-10 min | | Gate 2 -- Physical | Seals intact, package counts correct, labels legible, no visible damage or pest signs | Partial accept with distributor sign-off, or full reject | 15-30 min per pallet | | Gate 3 -- COA | Certificate of Analysis passes state-mandated safety panels and matches the batch you were shipped | Accept for shelf, quarantine pending clarification, or reject | 5-15 min per COA (reading, not testing) |
Acceptance in Metrc is a regulator-visible commitment. It transfers custody of the Metrc package to your license. It is not reversible by clicking "undo" -- reversal requires a regulator-coordinated adjustment or a formal return/destroy workflow. The receiving desk's job is to make the accept/quarantine/reject decision before hitting Metrc's "Accept" button, not after.
Who Runs the Desk
Typical staffing model in a mid-size single-store retailer (2025-2026 archetype):
- Inventory Manager -- owns the SOP; runs receiving during high-volume windows; trains backups
- Inventory Clerk / Receiver -- primary on daily receipts; runs Gates 1 and 2 solo on routine loads; escalates Gate 3 on anything non-standard
- General Manager / Compliance Officer -- approver for quarantine-to-accept decisions and for any COA exception
- Distributor Driver -- participant in Gates 1 and 2; witnesses seal break; signs discrepancy logs
Dual custody is the norm: two employees on the receiving desk for the physical count (Gate 2). This is both a Metrc-compliance best practice and an internal-theft control -- one employee reading the manifest, one employee counting, both signing. See internal-theft.md for the broader dual-custody rationale at the receiving surface.
Why This File Is Separate From sops.md
sops.md §Receiving holds the SOP index -- the bullet-list version of receiving procedures that sits inside the auto-generated SOP table. This file is the operational playbook: the actual decision trees, the actual thresholds, the actual COA-reading decision table. If you need the SOP bullets, open sops.md. If you are training a new receiver or auditing a receiving failure, read this file.
Why COA Reading Lives Here
The COA review is a receiving-desk decision, not a lab decision. The receiver is not re-running chemistry -- they are reading a finished Certificate of Analysis and applying an accept/quarantine/reject rule against state-defined thresholds. The mechanics of how a COA is built, what each panel actually measures, and the potency math behind the label number all live in coa-testing.md. This file covers only the decision: given a COA in hand, should this package come off the truck?
2. Manifest Verification (Gate 1)
The manifest is the paper and electronic trail that proves the product on the truck is what the distributor loaded and what the state traceability system expects your license to receive. A manifest discrepancy is the single most common reason to refuse a load at the parking lot, and it is the cheapest possible moment to say no.
Pre-Arrival: The Electronic Handoff
Before the truck ever arrives, the distributor initiates a Metrc transfer (or equivalent traceability-system transfer in states running BioTrack or LeafData). The transfer generates:
- A Metrc Transfer ID (state-tenant-specific numbering; CA uses
0000XXXXXX, CO uses000XXXX, etc.) - A manifest PDF -- human-readable document listing origin license, destination license, driver, vehicle, departure time, estimated arrival time, and a line item per Metrc package
- A package-level detail -- each line item lists the package label (Metrc tag), product name, item category, weight/count, source harvest or production batch, and required COA reference
The receiving desk should have the electronic manifest in hand -- pulled from Metrc directly by the receiver under their own Metrc login -- before the driver knocks on the door. Reading a manifest for the first time at the receiving desk in front of the driver is an anti-pattern. It creates time pressure and pushes receivers toward shortcuts.
Driver Arrival Checklist
Step-by-step at the back dock:
- Verify driver identity. Government-issued ID + distributor-issued cannabis transporter ID. The name must match the Metrc manifest's listed driver. If it doesn't, pause and call the distributor dispatch to confirm a driver substitution.
- Verify vehicle identity. License plate must match the Metrc manifest vehicle entry. A mismatched plate is a documented in-transit diversion risk and a regulator-visible discrepancy if it hits Metrc in that state.
- Verify arrival time window. Most states require transfers to complete within a stated window (typically 4-24 hours from departure, state-dependent). Late arrival needs a documented reason -- log it, continue if reasonable, escalate if implausible.
- Verify trailer seal. If the load was sealed at origin, the seal number on the trailer must match the manifest. Seal integrity is photographed before break.
- Break seal in camera view. Every legal state requires receiving to happen in recorded-camera view. The seal break should be deliberate and timestamped in the camera log.
- Cross-check manifest totals. Before any physical count, the receiver cross-checks: total package count on manifest, total net weight, total item categories. These should match what is on the truck at a summary level before any unit-level count begins.
Seal Typologies and What to Look For
Distributors use one of three seal schemes, and the receiver has to know which is which before breaking the wrong one:
| Seal Type | Where Applied | What to Check | Break Protocol | |-----------|---------------|---------------|----------------| | Metal cable seal (bullet seal) | Trailer door or container; standard for long-haul multi-stop distributors | Serial number readable, cable intact, no cut-and-replace; serial matches manifest | Cut in camera view; photograph before/after | | Plastic pull-tight seal | Trailer door or rolling cage for regional routes | Numeric or alphanumeric serial; no evidence of softening or cut-and-glue | Cut in camera view; photograph before/after | | Tamper-evident tape + numbered label | Smaller loads and single-stop deliveries | Label un-tampered, tape not re-applied, serial matches manifest | Peel in camera view; photograph before/after |
A seal failure in Gate 1 is never a "small issue". If the seal is not what the manifest says it is, the chain of custody is broken and the load is a rejection candidate regardless of what is inside. Photograph the failure, call distributor dispatch, and -- depending on state -- file an incident report within 24 hours (see §9).
Multi-Stop Manifest Nuance
Multi-stop distributor routes complicate Gate 1. On a multi-stop manifest, your packages are a subset of the truck's total load. The driver may present a long manifest listing packages for you plus packages for two other retailers. Receiving-desk behavior:
- Ignore the other retailers' lines. Your Metrc record will show only your transfer-ID's packages. That is your authoritative slice.
- Confirm the driver's departure-to-your-location time window is within the stated window for your transfer-ID, not the earliest or latest stop on the truck.
- Seal may already be broken. If the truck made a prior stop, the trailer seal is already broken. The per-pallet seal or per-cage seal for your load is what you verify.
- Cross-contamination risk. If your stop is the third of five, your product has ridden with someone else's product for several hours. Temperature-log review (§6) matters more on multi-stop routes.
Manifest-to-Metrc Cross-Check
The single most common manifest failure mode is a paper manifest that doesn't match the Metrc system record. Drivers can hand you a printed manifest that was edited after the Metrc record was created. The Metrc record is the authoritative source.
Cross-check protocol:
- Pull the Metrc transfer record live in your Metrc session (not the driver's paper).
- Confirm the Transfer ID on the paper manifest matches the Metrc record.
- Spot-check 3-5 Metrc package tags on the paper against the Metrc record; any substitution is a reject signal.
- Confirm the item list on the paper matches the Metrc item list package-for-package.
- If any discrepancy: do not click Accept. Call distributor dispatch with the driver present. Either the paper or the Metrc record is wrong; the distributor has to fix the authoritative record before you accept.
State Callouts: Manifest Timing and Partial-Accept Rules
Metrc tenants are not uniform. The table below captures the manifest-acceptance behavior that matters for receiving-desk decisions in the four core states; cross-reference compliance-metrc.md for deeper mechanics.
| State | Manifest Acceptance Window | What Happens If Driver Leaves Without Acceptance | Partial Accept Allowed? | |-------|---------------------------|-------------------------------------------------|-------------------------| | California (Metrc CA, DCC-regulated) | Acceptance expected within stated manifest window; must accept or reject before driver departs the license | DCC treats unclaimed packages as an open regulatory event; distributor must initiate return transfer | Yes, with per-package reject reason entered in Metrc | | Colorado (Metrc CO, MED-regulated) | Acceptance within stated manifest window; MED rule requires accept/reject before departure | Package status in Metrc stays "In Transit" pending manifest re-work by distributor | Yes, per-package | | Illinois (IDFPR/IDOA, Metrc IL) | Acceptance before driver departs; Illinois couples manifest acceptance with the 7-day cannabis waste notice rule if any are rejected for destruction | Rejected packages go back to the distributor's license, or enter your license's waste workflow if retained for destruction | Yes, per-package | | Nevada (CCB, Metrc NV) | Acceptance before driver departs; CCB requires rejection documentation inline with the Metrc transfer | Distributor re-routes; CCB-visible | Yes, per-package |
The pattern in every state: accept or reject each Metrc package before the driver leaves. A driver who leaves with ambiguity in the transfer is a regulator-visible problem. Never let a driver depart with "we'll sort the count out tomorrow."
Manifest Failure Decision Tree
Manifest arrives
|
+-- Paper matches Metrc record? ---- No ---> Reject acceptance; distributor fixes record
| |
Yes |
| +-- Fix arrives same-day: re-run Gate 1
|
+-- Driver ID + vehicle match? ---- No ---> Pause; call dispatch; resume or reject
|
Yes
|
+-- Trailer seal intact? ---- No ---> Reject; document seal failure with photos; distributor owns chain-of-custody break
|
Yes
|
+-- Proceed to Gate 2 (Physical Count & Inspection)
3. Physical Count & Package Inspection (Gate 2)
Gate 2 is a dual-custody physical count. The receiver and a second employee (inventory clerk, manager, or second receiver) work the pallets side by side: one reads, the other counts and inspects. The goal is to validate that every Metrc package on the manifest is physically present, correctly labeled, un-damaged, and within the product description on the manifest.
Count Procedure
For each Metrc package on the manifest:
- Physical locate the package. Pull it from the pallet or cart.
- Scan the Metrc package tag. Scanner confirms it is live in Metrc and is on the expected transfer.
- Read the label aloud. Item name, item category, net weight or count, source batch, manufacture date. Second employee confirms against the manifest line.
- Inspect the package for damage, seal integrity, correct legal disclaimers, and print quality.
- Stage for COA review (Gate 3) or for rejection (back to distributor).
Dual custody matters because a single-custody receiver can silently accept a short-count or label-swap -- either in error or in collusion with a driver. Two employees signing the count log create a hard audit trail. See internal-theft.md §Receiving-Desk Controls for the broader exception-based-reporting angle.
Package Inspection Criteria
A package passes physical inspection if all of the following are true. Any single failure is a documented discrepancy and halts shelf-ready status.
| Inspection Point | Pass Criteria | Common Failure Modes | |------------------|---------------|----------------------| | Outer package seal | Intact, factory-sealed, tamper-evident seal un-broken | Re-taped package; broken tamper tab; visible re-seal attempt | | Metrc tag | Attached, scannable, matches manifest line | Tag falling off, tag smudged/unreadable, tag mismatched | | Label text | Legible, in state-required order, all mandatory fields present | Printer streaks, missing license number, missing batch ID | | Product name match | Package label product name matches manifest line | "Blue Dream 3.5g" on manifest, "Blue Dream Preroll" in package | | Weight / count match | Net weight or unit count matches manifest | Manifest says 3.5g; package labeled 3.0g (shorted); 12-pack vs 10-pack discrepancy | | Manufacture / packaged date | Present and within state-allowed shelf-life window | Missing date; packaged date pre-dates grow-harvest date (printing error) | | Visible product condition | No visible pests, no visible mold, no mechanical damage, no melting/condensation | Flower with webs or frass; chocolate bloom from heat exposure; crushed cartridge boxes | | Temperature-sensitive items | Temperature log attached; within range at the time of arrival | Missing temp log; log shows excursion; beverage warm to the touch |
Rejection Criteria Table
The receiving desk has three response options per package: Accept, Quarantine, or Reject. The rule-of-thumb matrix:
| Finding | Response | Rationale | |---------|----------|-----------| | Damaged outer seal only (contents intact and all other inspection points pass) | Partial Accept with distributor sign-off + photo | Often an in-transit handling issue; distributor issues credit; product usable if contents sealed | | Damaged Metrc tag (package content otherwise clean) | Quarantine; coordinate replacement tag with distributor | Tag is the regulatory anchor; cannot shelf without it | | Wrong label on otherwise clean package | Quarantine; distributor must re-label or take back | Mis-label is a consumer-safety and labeling-law issue | | Count mismatch (manifest says 20 units, only 18 arrived) | Partial Accept at actual count with distributor sign-off; distributor owns the shortage | Drivers sometimes short-load in error; partial-accept flows are supported in every Metrc tenant | | Count mismatch with no driver acknowledgment | Reject the disputed package; accept the rest | Never absorb a shortage into your inventory silently -- it inverts into Metrc variance tomorrow | | Visible mold, pest activity, or product damage | Reject the affected package; other packages in the load may still be accepted | Consumer safety + Metrc documentation of rejection reason | | Temperature excursion on cold chain | Reject; see §6 | Cold chain failure is product-destroying and regulator-reportable in some states | | Missing or illegible Metrc tag | Reject or quarantine pending replacement | Cannot accept un-traceable packages -- this is the whole point of traceability |
Per-Format Inspection Specifics
Every product format has common failure modes that a trained receiver recognizes in under 30 seconds. The checklist below is the "what does good look like vs what does bad look like" cheat-sheet by format.
Dried flower (eighths, quarters, ounces):
- Good: Consistent trichome coverage across the bud; proper cure (not overly dry and crumbly, not damp); clean trim; resealable mylar or glass jar with humidity pack
- Bad: Flat, lifeless trichomes (heat damage); visible powdery mildew on sugar leaves; stem-heavy batches (under-trimmed); audibly crunchy (over-dried, flags RH-mishandling at packaging); off-odors (ammonia = high moisture / mold risk; hay = curing failure)
Pre-rolls (singles and packs):
- Good: Consistent density end-to-end (pinch test); tight twist or crutch; no visible loose flower at the mouth end; cone shape even
- Bad: Soft spots (indicates failed canoe when smoked); loose ends (indicates machine-pack settling); visible mold inside cone (extremely rare but rejection-level)
Distillate cartridges:
- Good: Oil clear to light amber; no separation; meniscus clean at both ends; hardware (510 thread) intact; outer box and inner blister both un-tampered
- Bad: Cloudy or opaque oil (indicates crystallization or moisture); visible air gap larger than factory spec (leaked during transit); hardware loose in packaging; cartridge warm to the touch (heat damage)
Live resin / rosin (concentrates):
- Good: Color and texture match label description (badder, saucy, diamonds-in-sauce); container fill matches label weight; parchment or container properly sealed; ice-pack present if shipped frozen
- Bad: Melted or re-solidified product (indicates cold chain failure); weight short of label; container lid not sealed
Edibles (gummies, chocolates, beverages):
- Good: Uniform color and size per piece; pieces separated (not fused); packaging un-damaged; labels legible; unit count matches
- Bad: Fused pieces (heat excursion); bloom on chocolate (heat cycling); leaking beverages; broken pieces inside intact outer package
Infused pre-rolls (flower + kief/diamond-infused):
- Good: Visible kief or crystal coating consistent end-to-end; outer wrapper intact
- Bad: Kief pooled at one end (heat exposure); coating loose inside wrapper
Training a new receiver on this checklist takes two-to-three shadowed receiving events. Have them verbalize the pass/fail call on each format; correct in real time. This is higher-leverage than a written SOP because format-specific pattern recognition does not transfer from reading.
Partial Accept Workflow
Every state Metrc tenant supports line-item-level rejection within a transfer. The receiving desk can accept 18 of 20 packages and reject the two shorted/damaged ones. The partial-accept workflow:
- In the Metrc transfer record, per-package, select Accept or Reject.
- For each Reject, enter a structured reject reason (state-specific dropdown; typical options: Damaged, Wrong Product, Wrong Weight, COA Issue, Other).
- Print or save the updated manifest reflecting per-package decisions.
- Driver signs the discrepancy log; distributor's dispatch is notified by the driver or the receiver.
- Rejected packages leave with the driver on the same truck, or enter your license's hold area pending pickup if the distributor agrees to retrieve later.
Never leave rejected packages unlabeled and un-segregated. A rejected package sitting on your pallet is functionally still on your license until Metrc says otherwise, and a regulator will treat unlabeled rejected product as accepted product with a documentation failure.
Scanner and Paperwork Hygiene
A small but high-frequency failure mode at Gate 2 is the tool layer -- the scanner, the Metrc session, the paper manifest, the COA binder. Receivers who cannot trust their own tools slow the dock down and make errors. Tool hygiene:
- Scanner calibration: Every shift, test the scanner on a known-good Metrc tag. If it fails to read a clean tag, swap scanners. A dirty scanner reads wrong tags, not no tags.
- Metrc session freshness: Log in under the receiver's own credentials at the start of the shift. Session timeouts during acceptance are a well-known frustration; if the session expires mid-acceptance, start again from the top of the transfer record rather than trusting cached state.
- Paper manifest binder: Every receiving event's paper manifest stays in a chronological binder for 30 days before being scanned and filed. The binder is the physical backup when Metrc is slow or intermittent.
- COA staging area: Electronic COAs arrive by email, SFTP, or distributor portal. Each receiving event has a COA sub-folder named by date + transfer ID. The receiver pulls all COAs to that folder before Gate 3 begins.
4. Reading a COA at Receiving (Gate 3)
Deep reference: For the full 10-panel COA anatomy, potency formulas, and annotated examples for flower / concentrate / edible, see coa-testing.md. This section covers only the receiving-desk decision: accept, quarantine, or reject?
The receiving desk is not running lab chemistry. The receiver is reading a Certificate of Analysis delivered by the distributor, confirming the COA matches the physical batch, and applying the state-defined decision rule. Three documents must line up: the package label, the Metrc manifest line, and the COA. If any one disagrees with the other two, the package quarantines or rejects.
The COA Reference Triangle
Metrc Manifest Line
/\
/ \
/ \
/ \
Package Label ----- COA
All three must cite the same:
- Batch ID (the harvest batch for flower, the production batch for concentrate/edible/beverage)
- Product name / SKU (or a documented name transition; see §4.4)
- Net weight or count (COA is per-batch; package label is per-unit; ratio must reconcile)
- Producer license (or a documented sub-manufacturer relationship, with both entities visible)
- Test date and expiration (see §4.5 on retest windows)
A mismatch at the triangle's vertices is a quarantine signal, not a reject -- it may be a paperwork error resolvable by a re-issued COA. A pattern of triangle mismatches from a specific distributor is a red flag worth escalating to the distributor's compliance officer.
Receiving-Desk COA Decision Table
This is the core deliverable of this file. It is the decision rule the receiver applies to every COA that crosses the desk. States differ on specific tolerances and retest windows (see §4.6); the structure is universal.
| COA Finding | Action | Rationale | |-------------|--------|-----------| | Passes all panels, potency ±10% of label | Accept, stage for shelf | Standard clean receive | | Potency label variance > state tolerance (typically ±10-15%) | Quarantine, notify brand/distro | Label-law violation before it hits the shelf | | Any pesticide hit above LOQ | Reject, do NOT accept in Metrc | Non-remediable in most states | | Microbial fail (Aspergillus, E. coli, Salmonella) | Reject, do NOT accept in Metrc | Consumer safety; non-remediable on flower | | Residual solvent fail (concentrates) | Quarantine pending distributor remediation plan | May be remediable via re-purging | | Heavy metals fail | Reject | Non-remediable | | Missing COA or COA does not match batch | Quarantine, do NOT accept in Metrc | Chain of custody broken; regulator-visible risk | | COA older than state-defined retest window | Quarantine pending retest | Varies by state (often 12 months flower / 6 months concentrate) |
Walking the Decision Rows
Row 1 -- Clean receive (pass, potency within ±10%). The operator checks every panel header on the COA for a Pass result, confirms the reported THC and total cannabinoid numbers against the label, and stages the package for shelf. This is the happy path. Documentation: COA is filed (electronic copy in the retailer's receiving log, linked to the Metrc package ID); shelf-date-tag applied if using rotation tags (see §7).
Row 2 -- Potency label variance. Every state with a packaged-products market sets a tolerance between the number printed on a package and the number on the COA. The typical band is ±10% on the low side and +10 to +20% on the high side. If a product is labeled "25% THC" and the COA comes back at 19%, the label is misleading under state law -- the receiver quarantines, the distributor's brand side either re-labels, re-tests, or the lot goes back. Operator question: Does the label on the package I'm holding match the number on the COA within my state's tolerance? If no, quarantine.
Row 3 -- Pesticide hit above LOQ. Limit of Quantification -- the smallest amount the lab can reliably measure. A pesticide detected above LOQ, on any panel entry above the state's action level, is a reject. In most states, pesticide hits on flower are non-remediable: the lot can be destroyed or, in some states, remediated into extract with a distributor-side workflow that is not the retailer's problem. Operator question: Is there any analyte on the pesticide panel showing a value (not ND or <LOQ)? If yes, reject. Cross-ref lab-testing-operations.md §Decision Matrix: Pesticide Panel Failure for the remediation options that live on the distributor side.
Row 4 -- Microbial fail (Aspergillus, E. coli, Salmonella). These are consumer-safety organisms. A flower COA that fails on any of these three is a reject. On flower, microbial contamination is largely non-remediable (remediation through irradiation is accepted in some states and banned in others). On edibles and beverages, a microbial fail typically triggers destruction. Operator question: Are all microbial panel rows marked Pass? If no, reject.
Row 5 -- Residual solvent fail (concentrates). Residual solvent failures on concentrates come from incomplete purging. They are often remediable: the distributor sends the batch back to the processor, re-purges, re-tests, and a new COA is issued. The receiving desk quarantines rather than rejects, because the batch may return with a passing COA and be shelf-legal. Operator question: Is this a concentrate, and does the residual-solvent panel show any value above the state action level? If yes, quarantine pending a new COA.
Row 6 -- Heavy metals fail. Heavy metals on cannabis typically come from soil uptake during cultivation. They are non-remediable -- you cannot "clean" heavy metal contamination out of flower or concentrate. Reject. Operator question: Does the heavy-metals panel (As/Pb/Cd/Hg) show any value above the state action level? If yes, reject.
Row 7 -- Missing COA or COA mismatch. If the distributor did not send a COA, or sent a COA for a different batch than what's on the manifest, the chain of custody is broken at the paperwork level. The receiver cannot verify the lot is safe. Quarantine and do not accept in Metrc. This is a pure paperwork issue resolvable by the distributor; most cases clear same-day with a corrected COA. Operator question: Can I match the COA batch ID to the package label batch ID and the manifest batch ID? If no, quarantine.
Row 8 -- Stale COA. Every state defines a retest window beyond which a COA is no longer valid. Typical windows: 12 months for dried flower; 6 months for concentrates and edibles; 3-6 months for beverages and perishables. A COA dated outside the window on arrival at receiving means the product needs to be re-tested before shelf. Operator question: What is the date on the COA, and what is my state's retest window for this product category? If the COA is older, quarantine pending retest.
The Distributor Name-Transition Wrinkle
A subtle COA-match failure is the product-rename scenario. A distributor renames "Blue Dream OG 3.5g" to "Blue Dream 3.5g" between batches. The Metrc manifest says one, the COA says the other, the package label says a third. This is usually benign, but the receiver cannot silently waive it. Protocol: quarantine, ask the distributor for a written name-transition notice (common in the industry), file the notice with the COA, and release from quarantine only after the notice is on file.
State-Specific Retest Windows
| State | Flower Retest Window | Concentrate Retest Window | Edible Retest Window | Source | |-------|---------------------|---------------------------|----------------------|--------| | California | 12 months from packaging date | 12 months | 12 months | DCC §15307 (packaged products) | | Colorado | 9 months; R&D and R&D-re-test conditions extend certain cases | 9 months | 9 months | MED Rules (R 712, packaging and labeling) | | Illinois | 6 months | 6 months | 6 months | IDFPR / IDOA joint guidance | | Nevada | 12 months | 12 months | 12 months | CCB Regulations §11 |
Always confirm with current state guidance; retest windows have been re-opened in multiple states in 2024-2026 regulatory updates.
COA Voice: What the Receiver Is and Is Not Doing
The receiver is not:
- Running instruments
- Interpreting raw chromatograms
- Second-guessing the lab's analytical methods
- Making a call on pesticide panels outside the state action levels
The receiver is:
- Confirming that a COA exists, is current, and matches the physical batch
- Reading the pass/fail summary headers
- Confirming that label potency and COA potency match within state tolerance
- Applying the accept/quarantine/reject rule above
Defer all deeper COA-reading to coa-testing.md (panel anatomy, potency math, annotated examples) and to lab-testing-operations.md (failure decision trees, remediation pathways).
Annotated Walk-Through: A Flower COA on the Receiving Desk
Scenario: a delivery arrives with six Metrc packages of "Papaya #7 -- 3.5g Eighth". Packages labeled 28.3% THC. Harvest batch ID HR-2026-0142. The distributor emails a PDF COA with the driver's arrival.
What the receiver checks, in order, in 90 seconds:
- Batch ID match (Triangle vertex 1): COA top banner says batch
HR-2026-0142. Manifest line saysHR-2026-0142. Package label saysHR-2026-0142. All three match. Move on. - Test date / retest window: COA test date is
2026-02-10. Today is2026-04-19. Flower retest window is 12 months in CA -- well inside. Move on. (If this were a CA package with a2024-11-10test date, it would be stale; quarantine.) - Potency row: COA reports 28.9% total THC. Label says 28.3%. Delta = 0.6 percentage points on a 28.3 base, or ~2.1%. Well inside the ±10% band. Move on.
- Pesticide panel: Scan the panel header. If it says "PASS", move on. If it says "FAIL" or shows any analyte value above action level, reject. (The receiver does not need to know what Myclobutanil is; the lab's PASS/FAIL call at the state action level is the decision rule.)
- Microbial panel: Same -- PASS moves on; any FAIL rejects.
- Mycotoxins, heavy metals, residual solvents, moisture / water activity, foreign material: Each panel scanned for PASS header. Any FAIL is a reject or quarantine per Decision Table.
- Final acceptance decision: All panels PASS, potency within band, triangle matches. Accept in Metrc.
The entire decision, for a clean COA, takes less than two minutes. It is not "read the whole PDF" -- it is "check the triangle, then scan panel headers, then apply rule". A receiver who spends 15 minutes per COA is either training or mis-reading the process. Speed matters because trucks carry many loads and drivers have downstream routes.
Annotated Walk-Through: A Concentrate COA Exception
Scenario: four Metrc packages of "Live Resin Badder -- 1g". COA test date is current, microbial and heavy metals panels PASS, pesticide panel PASS -- but residual solvent panel shows butane at 4,500 ppm and the state action level (CA) is 5,000 ppm for butane in inhalable cannabis extracts. Technically a PASS.
Receiver behavior: the panel-header call is PASS. Accept. Document the reading on the receiving log (a higher-than-typical but still compliant residual solvent number is worth noting for trend analysis). If the same distributor delivers three consecutive loads with butane residues above 80% of the action level, that is a trend for the Inventory Manager to raise with the distributor's compliance officer -- the lot is still shelf-legal, but it signals process drift on the distributor's purge workflow. This is exactly the kind of operational feedback loop that keeps consumer complaints from landing on your desk later.
Scenario variant: same COA, but butane reported at 5,400 ppm. Now the receiver has a FAIL on the residual solvent panel. Action per Decision Table Row 5: quarantine pending distributor remediation. The distributor sends the batch back to the processor, re-purges, retests, and issues a new COA. In the quarantine period the Metrc package sits on-hold; if remediation produces a passing COA, the package clears; if not, it moves to destroy.
State-Action-Level Cheatsheet (High-Frequency Analytes)
The receiver does not memorize all action levels. But a short cheatsheet of the most common contamination patterns makes border-line calls faster:
| Analyte | Category | Action Level Typical (Flower) | Why It Trips | Remediable? | |---------|----------|-------------------------------|--------------|-------------| | Myclobutanil | Pesticide | 0.1 μg/g (inhaled) | Formerly common on outdoor; converts to cyanide when combusted | No | | Bifenazate | Pesticide | 0.1 μg/g | Mite-specific; appears in IPM-heavy indoor | No | | Aspergillus (A. flavus, fumigatus, niger, terreus) | Microbial | Absence per 1 g | Mold bloom in high-RH cure or storage | No (flower) / Yes (irradiation where permitted) | | Salmonella | Microbial | Absence per 1 g | Contact contamination | No | | E. coli | Microbial | Absence per 1 g | Contact contamination | No | | Arsenic / Lead / Cadmium / Mercury | Heavy metal | State-specific, sub-μg/g | Soil uptake; site-specific cultivation issue | No | | Butane | Residual solvent | ~5,000 ppm (CA); state-specific | Incomplete purge in BHO extraction | Yes (re-purge) | | Ethanol | Residual solvent | ~5,000 ppm | Incomplete removal in ethanol-extracted tinctures/distillates | Yes (re-purge) |
This is a short-list only; the full ISO-17025-lab-reported analyte list per state is long. The receiver reads the COA header (PASS / FAIL) -- the cheatsheet just accelerates the supervisor conversation when a borderline call comes up.
5. Quarantine Procedures
Quarantine is the operational middle ground between Accept and Reject. It is used when the receiving desk cannot make a clean accept decision but the product may still be salvageable (stale COA, label mismatch, residual-solvent fail pending remediation). Quarantine requires a physical area, a Metrc status change, a communication protocol, and a clearance workflow. Most discrepancy-handling at the receiving desk ends up in quarantine, not rejection.
The Physical Quarantine Area
Every licensed retailer should have a locked, camera-covered, labeled quarantine area. Typical specs:
- Room or caged section inside the vault or secure storage area
- Separate from active sales inventory and from returns/destroy areas
- Lockable door or cage with access restricted to Inventory Manager and GM
- Camera coverage continuous (see security.md §Video Retention for state retention windows)
- Labeled "QUARANTINE -- DO NOT SELL" with internal procedure pointer
Quarantine placement is a Metrc-reportable action in some states (e.g., IL) and a purely internal control in others. Default behavior: treat every quarantine event as reportable unless your state Metrc tenant explicitly does not require it.
Metrc "On-Hold" Package Status
Every Metrc state tenant supports a non-salable package status -- variously called "On Hold", "Quarantine", "Testing Hold", or state-specific labels. The receiver moves the Metrc package into the hold status immediately on quarantine decision. The hold status:
- Prevents the package from appearing in salable inventory
- Creates a regulator-visible trail of the hold reason and hold duration
- Can be cleared only by a Metrc user with manager-level permission
- Some states require a reason code dropdown on hold entry; document accurately
Communication Protocol
When a package is quarantined:
- Immediate (within 1 hour of receiving-desk decision): Email or Metrc-note the distributor with package ID, reason, and requested resolution.
- Same-day (by EOD): Document the quarantine in the retailer's discrepancy log. Include: date, time, package ID, reason, who made the call, camera timestamp, COA reference if applicable.
- 24-48 hours: Distributor responds with a proposed resolution -- corrected COA, corrected label, retest results, remediation plan, or return-for-destroy.
- Resolution: Dispensary's GM or Compliance Officer approves clearance back to salable, extension of quarantine, or movement to destroy.
- Clearance: If returning to salable, the Metrc status moves from On Hold back to Active. If destroying, the package moves from On Hold into the destroy workflow (see waste-management.md).
Quarantine Clearance Criteria
A package exits quarantine only when all of the following are documented:
| Exit Path | Required Documentation | |-----------|------------------------| | Return to salable (COA issue resolved) | New COA matching batch; GM signature; Metrc note; distributor-side acknowledgment | | Return to salable (label issue resolved) | Re-labeled package photographed pre/post; distributor corrective-action statement | | Return to salable (remediation passed) | New passing COA post-remediation; state-specific remediation approval if required | | Return to distributor | Distributor-initiated return transfer in Metrc; driver + trailer + seal workflow repeat (this is a reverse receiving event) | | Destroy | Waste workflow triggered; see waste-management.md |
Maximum Quarantine Duration
Quarantine is not a permanent state. Operators set maximum durations to force resolution:
| Duration | Typical Trigger | Next Step | |----------|----------------|-----------| | 72 hours | Routine COA or label issue | Escalate to distributor's compliance officer | | 7 days | Remediation-pending concentrate | Require distributor to commit to a resolution date | | 14-21 days | Extended remediation or retest | Write the lot off in planning; hold inventory only if the retailer is confident resolution is imminent | | 30 days | Regulatory hold (state-initiated) | Follow state guidance exactly; do not self-clear |
Beyond 30 days without resolution, the default move is return-to-distributor or destroy. Holding inventory in quarantine indefinitely is an inventory-variance risk and, in some states, a regulator flag.
6. Cold Chain Verification
Cold chain applies to a subset of cannabis products: beverages (especially THC seltzers), fresh edibles (certain chocolates, gummies in hot climates), live resin and live rosin concentrates shipped frozen, and some topicals. Dried flower and shelf-stable edibles do not require cold chain and are flagged here only so receivers do not over-apply cold-chain process to products that don't need it.
Applicable Categories
| Category | Cold Chain Required? | Typical Range | |----------|---------------------|---------------| | Dried flower | No | Ambient, humidity-controlled (see §7) | | Pre-rolls | No | Ambient | | Distillate cartridges | No | Ambient | | Live resin / live rosin | Often, especially fresh-frozen | -20°C to 4°C | | Solventless hash / rosin | Sometimes, per brand spec | 4°C to 15°C | | Gummies (in summer or hot climates) | Brand-specific | Below 20°C | | Chocolate edibles | Brand-specific | Below 25°C | | Beverages (seltzers, sodas, teas) | Yes | 4°C or below during transit | | Tinctures | No | Ambient |
Always follow the brand/manufacturer's stated storage requirement on the label. When in doubt, default to refrigerated handling for fresh edibles and any beverage.
Temperature Log Review
Every cold-chain shipment should arrive with a temperature data logger -- a USB-stick or Bluetooth device with a continuous reading from departure to arrival. The receiver:
- Locates the temperature log (device or printed report)
- Reviews the continuous reading for excursions outside the stated range
- Notes time and duration of any excursion
- Applies the rejection threshold (below)
If there is no temperature log on a cold-chain shipment, that is itself a quarantine signal -- the receiver cannot verify the product was handled correctly.
Rejection Thresholds
The industry-standard thresholds for cold-chain rejection:
| Excursion | Response | Rationale | |-----------|----------|-----------| | Temp within range the entire transit | Accept | Clean receive | | Brief excursion (<15 min, <5°C above range) | Accept with documentation | Typical pallet-door-open event; product integrity intact | | Extended excursion (>15 min and <2 hours, or >5°C above range) | Quarantine; contact brand for acceptance guidance | Brand spec governs; some products lose label-accurate potency or shelf life | | Sustained excursion (>2 hours out of range) | Reject | Product integrity cannot be guaranteed; consumer-safety and label-accuracy risk | | No temp log present | Quarantine | Cannot verify; requires distributor to provide log or replacement |
State-Specific Cold Chain Notes
- California: DCC does not prescribe specific temperature thresholds for transport; operators follow brand specs and industry best practice. Cold chain failures that cause a consumer complaint can trigger a DCC inspection.
- Colorado: MED does not prescribe cold chain specifically; operators adhere to brand specs and food-safety standards for edible/beverage handling.
- Illinois: IDFPR/IDOA adhere to Department of Public Health food-safety norms for infused edibles and beverages; expect health-department crossover on cold chain inspections.
- Nevada: CCB and state health authority overlap on beverages; Las Vegas heat creates an outsized cold-chain risk window from June-September.
Cold chain process matters most in summer months and in states with large temperature variance between distribution hub and retail location (AZ, CA desert, NV, FL, TX in medical markets).
7. Storage Placement & FIFO Rotation
Once a package clears Gates 1, 2, and 3, it moves from receiving to storage. Placement and rotation are the quiet compliance layer -- they prevent the single most common audit finding, which is "expired product on the salable shelf."
Category-Specific Storage Conditions
| Category | Storage Condition | Specs | |----------|-------------------|-------| | Dried flower | Humidity-controlled, dark | 55-62% RH, 20-22°C, sealed; humidity packs (Boveda 58% or 62%) common | | Pre-rolls | Same as flower | RH-controlled; flash-loss if under-humidified | | Distillate cartridges | Ambient, upright | Room temp; keep out of direct sun; upright to prevent leak | | Live resin / rosin | Cold | Refrigerated at 4°C or frozen per brand spec | | Edibles (shelf-stable) | Ambient, dry | Below 25°C, out of direct sun | | Edibles (perishable) | Refrigerated | Per brand spec | | Beverages | Refrigerated | 4°C or below | | Tinctures | Ambient, dark | Room temp; amber-bottle light protection typical |
Humidity control on flower is an inventory-loss prevention issue, not just a product-quality issue. Flower stored at <50% RH loses weight (literally -- water evaporates), which creates Metrc variances at the next physical count and accelerates degradation of terpenes and cannabinoids.
FIFO Rotation
First-In-First-Out rotation ensures the oldest stock on the shelf is consumed first, minimizing stale inventory and expired product risk. FIFO is both an inventory-accuracy control and a compliance control in states where label-printed expiration dates are enforced.
FIFO enforcement mechanics:
- Metrc lot-age tracking: Metrc records package creation date and harvest date. Inventory Manager runs a weekly report of packages sorted by age within category.
- Physical placement rule: In the vault and on the sales floor, older stock at the front, newer stock at the back. Restocking from back to front pushes older stock forward.
- Monthly rotation audit: A third of salable categories audited per week on a four-week cycle. Physical lot-age order must match Metrc lot-age order.
- Rotation tags (optional): Some retailers apply dated tags at receiving to provide a quick visual of rotation order independent of Metrc.
- Waste-trigger threshold: Packages approaching expiration (30 days out for edibles, 45 days out for flower in some markets) generate a pull-list for active merchandising (promotion, budtender push, or planned shrink if product will not move).
FIFO and the Receiving Handoff
FIFO happens at the moment of receiving. The receiver staging a newly-accepted package for the vault must place it behind existing stock in the same SKU and category. If the receiver staging area funnels new stock to the front, FIFO breaks at day one.
Inventory Manager audit check: pull five random category bins in the vault, read the Metrc package IDs, sort by creation date, compare to physical front-to-back order. A 5/5 match is clean; a 3/5 is drift; a 1/5 is a broken FIFO process that needs retraining.
Waste-Trigger Cross-Reference
When a package ages into a waste trigger (past expiration, or beyond a brand/operator-defined shelf-life cutoff), the flow moves from inventory management to waste management. The rule is: waste is not a silent shrink event. It is a Metrc-recorded, witness-required destruction workflow. Cross-reference waste-management.md for destruction procedures, Metrc waste entries, and the render-unusable requirement.
Humidity Management in Practice
Flower storage is the single most operationally demanding placement task, because the retail floor and the vault both need humidity control but have different equipment. The practical playbook:
- Vault (bulk storage): Sealed mylar or polypropylene containers with two-way humidity packs (Boveda 62% or Integra Boost 62%) per unit. A 4g-pack serves up to 28g; a 67g-pack serves up to 1 lb. Packs are replaced when rigid (no longer spongy) or every 60-90 days.
- Sales floor display: Display jars sealed with O-ring lids and a visible humidity card. Floor staff open for customer sniff; closing the jar within 20-30 seconds prevents RH drift.
- Hygrometer placement: One hygrometer per storage zone, calibrated quarterly (saturated salt calibration kit, ~$15). Drift from 62% RH by more than ±5 points is an operator action: check pack condition and HVAC.
- Seasonal adjustment: Summer spikes humidity in the store (customers, HVAC cycling); winter drops it (heating dries air). Vault HVAC should hold 60-65% RH year-round independent of ambient.
Trade-offs on humidity target: 58% is the aroma-preservation target; 62% is the weight-preservation target. Flower at 58% smokes smoother but drifts under legal packaged-weight if stored long; flower at 62% holds weight but smokes slightly heavier. Most retailers default to 62% to avoid shrink on the inventory side.
FIFO Audit Script (One-Page)
The monthly FIFO audit is a repeatable, trainable process. The script:
- Pick five category bins at random. Mix at least one flower, one pre-roll, one vape, one edible, one concentrate.
- Photograph current front-to-back order. Timestamped photo goes into the audit log.
- Read every Metrc package ID in the bin (scanner preferred; manual read acceptable).
- Pull the Metrc creation date for each scanned ID.
- Compare physical order to creation-date order. Mark: Clean (all in order), Drift (one out of order), Broken (>1 out of order).
- Re-order Drift bins in place. Broken bins get a retraining note for the receivers who staged that SKU.
- Log audit completion with the Inventory Manager signature.
Frequency: weekly if the store has had recent FIFO issues; monthly in steady state. Training value: a new receiver who sits on three FIFO audits internalizes the rotation discipline faster than reading any SOP.
Storage-Area Environmentals Dashboard
A mid-size retailer running a compliance-first storage environment instruments:
| Sensor / Data | Target | Alert Threshold | |---------------|--------|-----------------| | Vault humidity | 58-62% RH | <55% or >65% sustained 30 min | | Vault temperature | 18-22°C | <15°C or >25°C sustained 30 min | | Vault door-open events | Log per event | >5 opens per hour during off-hours | | Refrigerator temperature (cold-chain) | 2-6°C | >8°C or <0°C | | Humidity-pack replacement log | Per zone | >90 days without replacement |
This is table stakes, not luxury. A single humidity excursion caught at the dashboard level -- and corrected before flower weight drifts -- is worth multiples of the sensor cost.
8. Metrc Transfer Acceptance
The Metrc "Accept" click is the regulator-visible commitment that closes receiving. Before the click, the distributor owns the product. After the click, the retailer owns the product, the license liability, and any downstream audit exposure. This section covers the mechanics of that click -- and the state-tenant variations that trip up operators moving between states.
Pre-Accept Checklist
Before clicking Accept on any Metrc transfer:
- [ ] Gate 1 (Manifest) passed: paper manifest matches Metrc record; driver and vehicle verified
- [ ] Gate 2 (Physical) passed: all packages present, inspected, labels match
- [ ] Gate 3 (COA) passed: each COA matches the triangle and passes state-mandated panels
- [ ] Any quarantine decisions recorded as per-package holds
- [ ] Any rejection decisions recorded as per-package rejects with reason codes
- [ ] Second employee has signed the physical count log
- [ ] Camera timestamps logged (seal break, package unload, COA review)
Once the click happens, reversal requires a regulator-coordinated adjustment or a return-transfer workflow.
State-by-State Metrc Behavior
Metrc is one vendor but ~20 state tenants with different feature sets. The four core states:
| State | Transfer Acceptance Window | Partial Accept? | Discrepancy Flow | |-------|---------------------------|-----------------|------------------| | California (Metrc CA, DCC) | Accept before driver departs license; extended-transit transfers have state-specific windows | Yes, per-package; reject reason dropdown required | Discrepancy entered at acceptance; DCC-visible if it crosses a threshold; 24-hour notification to DCC if a theft/diversion is suspected | | Colorado (Metrc CO, MED) | Accept within stated manifest window; MED rule requires accept/reject before driver leaves | Yes, per-package; MED reason codes | Distributor re-issues transfer if re-delivery needed; MED-visible if variance is material | | Illinois (Metrc IL, IDFPR/IDOA) | Accept before driver departs; IL couples rejection with 7-day destruction-notice rule if retained for destroy | Yes, per-package | Rejected packages flow to distributor return transfer or IL waste workflow; destruction notices go to IDOA 7 days before destroy event | | Nevada (Metrc NV, CCB) | Accept before driver departs; CCB requires rejection documentation inline with the Metrc transfer | Yes, per-package | CCB-visible at acceptance; high-variance events flagged for inspection |
The Pitfall: "Metrc Requires X"
A common operator mistake is to treat Metrc as a uniform system. It is not. Metrc feature sets vary by state tenant. A Metrc-CA operator crossing into Metrc-NV will find similar but not identical workflows. This playbook flags the known receiving-relevant deltas in the table above; for deeper mechanics and other states, cross-reference compliance-metrc.md.
Never say "Metrc requires X" to a team. Say "Metrc-CA requires X" or "the DCC Metrc tenant requires X". This discipline prevents multi-state operators from importing CA-specific workflow into NV and getting audit-dinged.
What Happens After the Accept Click
Immediate:
- The Metrc package transfers to the retailer's license inventory
- The package appears in the retailer's salable inventory (or in On-Hold if the receiver set it so)
- The distributor's Metrc manifest is closed; they cannot unilaterally reverse it
- The retailer now owes any downstream compliance action on the package (sale, destroy, return, waste)
Within 24 hours:
- The receiving log is archived to the retailer's compliance records
- The electronic COA is filed against the Metrc package ID in the retailer's system
- Any discrepancy notes are closed out with the distributor
- Any per-package holds are reviewed by the Inventory Manager
Receiving closure is not complete until these steps land. A receiver who clicks Accept and walks away has only half-finished the Gate 3 workflow.
9. Discrepancy Documentation & Regulatory Reporting
Every receiving event generates a record. Clean receives generate a minimal record (manifest, COA, signed count log). Discrepancy events generate a larger record, and in some cases a state regulatory notification. This section covers both.
What Counts as a Discrepancy
| Discrepancy Type | Examples | State-Reportable? | |------------------|----------|-------------------| | Count mismatch | Manifest 20, received 18 | Sometimes; CA/CO/IL/NV track variance at acceptance | | COA failure | Pesticide hit, microbial fail, heavy metal fail | Yes, typically -- destroyed packages are Metrc-logged which is state-visible | | COA missing / mismatch | No COA, wrong batch | Yes, through quarantine Metrc status | | Damaged product | Crushed, moldy, visible pest | Yes, especially if a destruction follows | | Temperature excursion | Cold chain failure | Yes in some states (NV, CA on beverage), via health-department crossover | | Label issue | Wrong label, missing required field | Sometimes, especially if it results in relabel-and-retest | | Seal failure | Trailer seal broken on arrival | Yes, especially if a theft/diversion investigation follows |
The Discrepancy Log
Every retailer should keep a Discrepancy Log -- a structured record of every non-clean receiving event. Fields:
- Date + time
- Metrc Transfer ID + affected package IDs
- Distributor license + driver name
- Type of discrepancy (dropdown above)
- Quantity / impact (units, weight, dollars)
- Action taken (accept partial, reject, quarantine, destroy)
- Resolution path + resolution date
- Who made the call (receiver, Inventory Manager, GM)
- Camera timestamp + COA reference (if applicable)
This log is the single most useful artifact in a post-incident investigation. Receivers who treat it as paperwork overhead get audited harder when something goes wrong.
State-Specific Regulatory Reporting Thresholds
Some discrepancies require direct notification to the state agency above and beyond the Metrc record. Typical thresholds:
| State | Threshold | Reporting Channel | Timeline | |-------|-----------|-------------------|----------| | California (DCC) | Suspected diversion, theft, or product tampering; any recall-adjacent event | DCC incident report via licensee portal | 24 hours of discovery (DCC §15036) | | California (CDPH/CDFA crossover) | Serious adverse event tied to product, cold chain failure on edible causing illness | Joint DCC + health-authority report | 24 hours | | Colorado (MED) | Diversion, loss, or theft of cannabis product | MED notification | Immediate / within 24 hours | | Illinois (IDFPR/IDOA) | Any cannabis loss, diversion, or tampering | IDFPR/IDOA notification + law enforcement | Immediate / within 24 hours | | Nevada (CCB) | Diversion, theft, serious adverse event | CCB notification | 24 hours |
This is not a full regulatory-reporting grid; cross-reference legality.md for state-by-state agency structure and sops.md §Incident Reporting for the broader incident-reporting SOP. The rule of thumb at the receiving desk: if the discrepancy smells like theft, diversion, or consumer safety, it is always state-reportable.
Documentation Retention
| Document | Retention | Format | |----------|-----------|--------| | Manifest (paper + Metrc PDF) | Retailer: 3-7 years depending on state (CA 7, CO 3, IL 5, NV 5) | Electronic + paper original if available | | COA (per package) | Same as manifest | Electronic; indexed by Metrc package ID | | Receiving count log (dual signature) | Same as manifest | Electronic or paper | | Discrepancy log | Same as manifest | Electronic, ideally POS-integrated | | Camera footage | State-specific video retention (see security.md §Video Retention) | Per retention rule; highlight exports retained with incident record | | Destruction records (if any) | Same as manifest | Cross-ref waste-management.md |
Documentation retention is where receiving discipline meets regulatory discipline. Treat every receiving record as a regulator may read it in year six -- because in states like California, they may.
Archetype Incident Walk-Through: The Short-Load
Scenario: A Tuesday afternoon delivery from a mid-tier California distributor. Manifest lists 60 packages across 12 SKUs. During Gate 2 dual-custody count, the receiver and inventory clerk find only 58 packages -- two eighth-sized packages of a single SKU are missing. Driver insists he loaded 60.
What the receiver does:
- Halt acceptance. Do not click Accept in Metrc.
- Confirm the count. Re-count the two employees, third-party verify by a manager if one is available.
- Search the truck. Many "shortages" are packages that rolled under a pallet skirt or ended up in the wrong tote.
- Engage the driver. Driver re-verifies manifest against his in-cab paperwork. If he has loaded-at-origin photos, look at them.
- Call distributor dispatch. Document the call -- who, when, what they said.
- Partial-accept the 58. In Metrc, accept each of 58 packages individually; the two missing packages are rejected with the reason code "Shortage / Not Present".
- Document on the discrepancy log. Full details per the log structure in §9. Camera timestamps on seal break, count event, and call to dispatch.
- Driver signs the discrepancy log. If the driver refuses to sign, note that in the log. Refusal to sign is itself a data point.
- Distributor credit memo. Distributor's AR issues a credit for the two missing packages or ships them on the next load with a new transfer.
- Post-mortem trend: Inventory Manager reviews shortages by distributor by quarter. A single shortage is noise; a pattern from one distributor is a conversation.
What did not happen:
- The 58 packages did not get short-counted into the vault as "probably 60 and we'll sort it tomorrow". That path inverts into Metrc variance at the next physical count.
- The driver did not leave without sign-off. A driver who leaves with an open discrepancy creates a regulator-visible manifest ambiguity.
- The receiver did not unilaterally accept 60 and plan to destroy 2 later. Destroy without receive is both a Metrc impossibility and a regulatory flag.
Archetype Incident Walk-Through: The Failed COA
Scenario: A Thursday morning delivery from a brand-new distributor. Four packages of a pre-roll SKU. Label potency 22% THC. COA PDF arrives at the same time as the truck. Receiver opens COA at Gate 3 and sees: potency panel PASS at 21.8%; microbial panel FAIL -- Aspergillus flavus positive.
What the receiver does:
- Halt acceptance. Do not click Accept.
- Quarantine the four packages. Physical move to quarantine area, camera-recorded.
- Metrc status: On Hold with reason code "Microbial Fail - Aspergillus".
- Distributor contact. Call distributor compliance officer (not dispatch) -- this is a product-safety issue, not a routing issue. Document call.
- Decision path: Aspergillus on flower-derived pre-rolls is consumer-safety critical. In CA, some jurisdictions allow irradiation remediation; many do not. Default: this lot does not return to the salable stream.
- Distributor-side options: Destroy at distributor's license (return transfer) or destroy at the retailer's license (waste workflow -- see waste-management.md). In practice, distributor usually picks the lot back up on the next truck.
- Regulatory visibility: The quarantine and eventual destroy both hit Metrc. DCC sees both events in CA. If the brand has a history of microbial failures, DCC may pattern-match across its visibility into multiple licensees.
- Discrepancy log: Full details. Flag to GM that the distributor is new -- first three loads from any new distributor get extra scrutiny as a matter of policy.
What did not happen:
- The four packages did not sit on the receiving desk pending a decision. Contaminated product in an unlabeled area is a cross-contamination risk to the rest of the receive.
- The receiver did not accept "pending a clean retest" -- accept-then-retest is not a valid workflow. Retest happens before accept, or not at all from the retailer's perspective.
- The distributor did not unilaterally reassure the receiver that "it's probably fine" and persuade acceptance. Consumer-safety calls are not negotiable.
Archetype Incident Walk-Through: The Label Discrepancy
Scenario: A Monday afternoon delivery from an established distributor. 40 packages of a flower SKU. Manifest says "Wedding Cake 3.5g Eighth." Physical label says "Wedding Cake 3.5g Eighth" with correct Metrc tag. COA says "Wedding Cake #7 3.5g Eighth" -- a sub-variant name on the COA that is not on the label or manifest.
What the receiver does:
- Hold acceptance. Do not click Accept until the triangle mismatch is resolved.
- Contact distributor. Ask: is this a name-transition? A COA mis-labeling? A packaging-house error?
- Distributor response: Distributor confirms that "Wedding Cake #7" is their internal cultivar designation and "Wedding Cake 3.5g Eighth" is the consumer-facing SKU; they promise a name-transition memo.
- Wait for the memo. Packages go on hold in Metrc until the memo arrives.
- Release on receipt of memo. File the memo with the COA; release Metrc status from On Hold to Active; click Accept on the transfer.
What did not happen:
- The receiver did not accept and file later -- "I'll get the memo tomorrow" is how documentation gaps become audit findings.
- The receiver did not refuse outright -- name-transition is a known, resolvable issue and refusal would have been a distributor-side friction event with no safety basis.
These three archetypes -- short-load, failed COA, label discrepancy -- cover roughly 80% of the non-clean receiving events a retailer will see. Train new receivers on these three first.
10. Receiving SOP Cross-Reference Index
This file is one node in a larger operational graph. The pointers below route the reader to the canonical source for each adjacent topic.
| Topic | Canonical Source | What It Owns | |-------|------------------|--------------| | SOP index (all receiving bullets) | sops.md §Product Receiving & Intake | The summary checklist; the auto-generated view | | COA panel anatomy, potency math, annotated COA examples | coa-testing.md | How a COA is built and what every panel means | | Failure decision trees (pesticide, microbial, heavy metals, residual solvent remediation) | lab-testing-operations.md | What the distributor or producer does when a panel fails | | Manifest mechanics, distributor workflow, in-transit risk | supply-chain.md | Transfer creation, route planning, distributor side | | Metrc mechanics (deep) | compliance-metrc.md | Metrc-tenant workflow details, API nuance | | Destroy / return for rejected or quarantined lots | waste-management.md | Rendering unusable, witness requirements, Metrc waste entries | | Physical security at the receiving dock (cameras, seal-break camera coverage) | security.md | Camera retention, alarm states, back-dock security | | Internal theft controls at receiving (dual custody rationale, exception reporting) | internal-theft.md | Buddy-pass variants at the receiving surface | | State legality baseline (rec/med status, general compliance) | legality.md | State-by-state legal status and agency structure |
Where This File Does Not Stand Alone
This playbook is a receiving-desk decision guide. It does not replace:
- The coa-testing.md reference for how COAs are built -- always cross-ref for COA depth.
- The sops.md SOP index -- auto-generated; this file extends but does not replicate.
- The state-specific DCC, MED, IDFPR/IDOA, and CCB regulations -- the receiver must follow state guidance directly on any issue not covered here.
- The retailer's own SOP binder, which should cite this file as a reference and layer on store-specific routing, staffing, and after-hours rules.
Where This File Stands Alone
This file is the canonical source for:
- The receiving-desk COA decision table (§4)
- The quarantine clearance-criteria matrix (§5)
- The FIFO rotation audit protocol (§7)
- The receiving discrepancy log structure (§9)
- The Metrc pre-accept checklist (§8)
A new Inventory Manager reading this file for the first time should be able to run a full receiving event using §§2-8 end-to-end without cross-referencing any other document, then use §10 to go deep on any adjacent topic.
Data current as of early 2026. Receiving-desk regulatory detail -- especially Metrc tenant behavior, COA retest windows, and state-level discrepancy reporting thresholds -- can shift with state guidance updates. Verify with current state agency guidance before codifying into a store-specific SOP. The DCC, MED, IDFPR/IDOA, and CCB all publish licensee-facing bulletins and guidance updates; subscribe to each in states of operation.
See also: sops.md | coa-testing.md | lab-testing-operations.md | supply-chain.md | compliance-metrc.md | waste-management.md | security.md | internal-theft.md | legality.md