The first time I watched someone resolve an inventory discrepancy, the fix held for exactly one day. A package showed eight units in METRC and nine in the point-of-sale system. Someone with the right permissions opened the package in METRC, adjusted it up to nine, and the two screens agreed. By the next afternoon they disagreed again, this time by two. The adjustment hadn't corrected anything, it had just moved the gap around.
This is the most common mistake I see in track-and-trace work, and it isn't really about cannabis. When two systems disagree, the instinct is to make them match. But getting two numbers to agree doesn't tell you which one was right in the first place.
Three systems, not two
In a regulated retail operation, a single package usually lives in three places at once:
- The shelf. Physical product you can pick up and count.
- METRC. The state's system of record, the legal version of the count.
- The POS. The transaction engine that depletes inventory as you sell.
A discrepancy is just the gap between two of these three, and the mistake is treating the gap as a problem in whichever system happens to be open. The package in METRC wasn't wrong because METRC was wrong. It was wrong because a sale had landed in one system and not the other, and nobody had checked the shelf.
The hidden assumption
The adjustment failed because it rested on an assumption nobody had stated out loud: that the number on the screen you happen to be looking at is the number worth changing. Usually it isn't. What was actually missing was a decision about which number was real, and you can't make that decision from a screen. You make it from the shelf.
The rule
The control that prevents the one-day fix is short enough to write on a sticky note:
Source of truth = physical count
Then correct the system that is wrong,
not the system that is convenient
Once a physical count gives you the real quantity, the rest is mechanical. If the shelf and METRC agree but the POS is off, correct the POS. If the POS and the shelf agree but METRC is off, find the METRC event that caused it (a missed sale, a misapplied adjustment, a transfer) and correct that event. What you don't do is start by editing whichever system was easiest to open.
You cannot recount everything every day
The obvious objection is time. A busy store can't do a full physical inventory every morning, and it doesn't need to. Reconcile by exception instead: compare METRC against the POS daily, and only pull product off the shelf to count when the two disagree. Counting is expensive, so you spend it where the systems have already flagged a problem.
In practice that becomes a layered routine:
- Daily: compare POS sales and quantities against METRC, and count only the exceptions.
- At each event: check receiving, transfers, and conversions as they happen, because those are the moments discrepancies are born.
- Weekly: review the exceptions that did not resolve, looking at package history rather than just current quantity.
- Always: keep a clear rule for what gets fixed in-house versus escalated.
What I learned
A discrepancy isn't an instruction to edit something. It's a question about which of these numbers is real. The team that adjusted the package to nine was answering a different question, how do I make the screens match, and getting them to match told them nothing, because neither screen had been checked against the shelf.
Treat METRC as the system of record, the POS as the transaction engine, and the physical count as the only thing that breaks a tie. Do that and most discrepancies turn into a routing question rather than a mystery. You still have to count and correct, but you stop spending that effort on the wrong number.