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 had not corrected anything. It had only moved the gap.

This is the most common mistake I see in track-and-trace work, and it has nothing to do with cannabis specifically. It is a reasoning error. When two systems disagree, the instinct is to make them match. But matching two numbers is not the same as finding the right one.

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. This is reality.
  • METRC. The state's system of record. This is the legal version of reality.
  • The POS. The transaction engine that depletes inventory as you sell. This is the operational version of reality.

A discrepancy is just the gap between two of these three. The mistake is treating the gap as a problem in whichever system happens to be open. The package in METRC was not 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 are looking at is the number worth changing. It almost never is. The screen you are looking at is just the screen you happened to open.

What was actually missing was a decision about which number was real. And that decision cannot be made from a screen. It has to be made from the shelf.

The rule

The control that prevents the one-day fix is small 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

A physical count tells you the real quantity. From there the path is mechanical. If the shelf and METRC agree but the POS is off, the POS is wrong and you correct it there. If the POS and the shelf agree but METRC is off, you find the METRC event that caused it (a missed sale, a misapplied adjustment, a transfer) and correct that event. You never start by editing the system that is merely easiest to reach.

You cannot recount everything every day

The obvious objection is time. A busy store cannot do a full physical inventory every morning, and a full count is not the point. The point is to reconcile by exception. You compare METRC against the POS daily, and you only pull product off the shelf to count when the two disagree. Physical counting is expensive, so you spend it where the systems already tell you something is wrong.

That turns reconciliation into a layered routine rather than a fire drill:

  • 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 is not an instruction to edit. It is a question: which of these numbers is real? The team that adjusted the package to nine had answered a different question, how do I make the screens match, and the screens matching told them nothing, because neither screen had been checked against the shelf.

Once you treat METRC as the system of record, the POS as the transaction engine, and the physical count as the only thing that can break a tie, most discrepancies stop being mysteries. They become routing problems. You still have to do the work of counting and correcting, but you stop spending that work on the wrong number.