Every dispensary carries two inventories at once: the one in the POS, built from what actually sold, and the one in Metrc, built from what the state believes is on the shelf. They are supposed to be the same thing. In practice they drift - a split package logged as a single unit, a return rung as a void, a sample pulled without an adjustment - and that drift compounds daily until someone has to go looking for it. The fix isn't a frantic end-of-month count. It's a cadence, built on three clocks instead of one.
Three reconciliations, not one
Most operators think of reconciliation as a monthly event: the 30-day count the rule requires. That's backwards. The monthly count should be the easy part - a report assembled from work already done, not a scramble through back rooms on a Sunday. The real discipline happens daily and weekly.
Daily, every POS ticket needs a matching Metrc sales receipt - same package tags, same quantities, same totals within rounding. Weekly, rotate through rooms - vault, sales floor, staging, quarantine, returns - so every package tag gets physically counted against its Metrc quantity at least once a month. Do those two consistently and the 30-day reconciliation becomes a lookup exercise: pull the logs, trace anything unresolved, sign off. Skip them, and by day 28 a store isn't reconciling anymore. It's investigating, with a deadline bearing down.
Where the mismatches actually come from
A POS ticket with no Metrc receipt usually means a sync failure, or a sale rung against a package that wasn't yet in a sellable state in Metrc. The fix lives in the POS - re-push the transaction. Creating a receipt by hand in Metrc should be a last resort, not a habit.
A Metrc receipt with no POS ticket is the mirror case: someone recorded a sale directly in the state system, or the POS voided a ticket after it had already pushed. That needs a reasoned void in Metrc, not a shrug.
Quantity mismatches on a single tag are almost always a unit-of-measure problem - eaches counted as grams, five-packs logged as singles. The item mapping is broken, not the receipt; fixing the receipt just hides the error until it resurfaces. Total mismatches, similarly, usually trace back to tax-line mapping. States want excise, state, city, county and municipal tax broken out separately; a POS that reports one combined "tax" field will never reconcile cleanly against Metrc's five fields.
Receiving is where a lot of shelf discrepancies begin, long before anyone notices them. A manifest says 30 units; the store accepts 28. The accepted quantity - not the invoice quantity - is what should flow into inventory, backed by a credit memo. A tag on an invoice that doesn't appear on the manifest is a problem for the sender to fix, not an invitation to relabel anything on the receiving dock.
Classify before you adjust
Not every discrepancy is the same, and treating them identically is how stores either over-adjust or under-report. A useful split:
- Documentation - a package was split in Metrc but never relabeled on the shelf. Relabel it; no inventory adjustment needed.
- Timing - a sale rang this morning and the receipt hasn't synced yet. Wait for the next cycle, don't force it.
- Process - a sample left the shelf without a corresponding Metrc adjustment. Fix the count with a reason code, then fix the sample procedure so it doesn't recur.
- Loss - a tag is missing with no paper trail at all. This is the category that can trigger a state theft or loss notification, and it deserves investigation before any adjustment gets entered.
Only after classification should anyone touch Metrc, and the adjustment should carry a reason code and a name. Software can flag the exception and even draft the explanation. It should not have an "approve all" button for regulated adjustments - if a platform offers one, that's worth asking hard questions about.
The deadlines vary, the discipline doesn't
California requires inventory reconciliation at least every 30 days under its administrative code, with separate notification windows for loss or theft. New Mexico sets a monthly floor and, as of its 2026 transition, runs retail sales through its own system rather than Metrc directly, with an expanded API adding inventory reads and adjustment capability for approved integrators. Michigan and New York each set cadence through their own rules and licence conditions, and operators should confirm current language rather than relying on last year's guidance - rule text changes, and a cadence that was accurate six months ago may not be today.
What doesn't vary by state is the underlying mechanics: POS data and Metrc data need a shared timestamp, a shared unit of measure, and a human being willing to classify a discrepancy before adjusting it. Tolerance thresholds some states apply before treating a variance as an enforcement matter should never be mistaken for a target. A store that's merely under tolerance every month is still drifting; it's just drifting slowly enough not to get caught yet.