Metrc discrepancies: a playbook for each kind, who fixes it and where
6 min read
By BudAlly
Published
What this is. The Metrc reconciliation SOP tells you when to look: daily, weekly, at the 30-day count. This post is the lookup table for what you find when you do. It works with any POS. It is not legal advice, and your state's rule decides the reporting duties.
Classify before you touch anything
Every discrepancy between your POS and Metrc is one of a small number of kinds, and each kind has a home: the system where it gets fixed and the person who fixes it. The commonest mistake is fixing one in the wrong place. If you adjust a Metrc package to cover a POS sync failure, you now have two errors, and one of them is signed with your name.
One industry write-up lists the recurring root causes: unit-of-measure mismatches, timing lag, returns handled inconsistently, destruction workflows, and batch splits or merges that break the link between the two systems (cannabisregulations.ai). The table below maps them to what you will actually see on the exception list.
The playbook
| # | What you see | What it usually means | Fixed where | Owner |
|---|---|---|---|---|
| 1 | POS sale, no Metrc receipt | The push failed or was delayed, or the package wasn't sellable in Metrc at the time of sale | POS: re-push the ticket | Store lead |
| 2 | Metrc receipt, no POS sale | A sale was entered directly in Metrc, or the POS voided the ticket after pushing it | Metrc: void with a reason, or reinstate the POS ticket | Store lead, then compliance approver |
| 3 | Package quantity differs between POS, Metrc and the shelf | Unit-of-measure mapping, an unrecorded sample or destruction, or real loss | Item mapping first; a Metrc adjustment only if the physical quantity really changed | Inventory lead, then compliance approver |
| 4 | Tag on the invoice isn't on the manifest | An invoice typo, such as transposed digits, or a different package | The sender's corrected invoice. Never your tag | Receiving lead |
| 5 | Split, return or void recorded on one side only | The workflow was run in one system and not mirrored in the other | The system that missed the step | Inventory lead |
| 6 | Package in a different room than Metrc says | A move made physically but not in Metrc, or the other way round | Metrc location move, or put the package back | Inventory lead |
| 7 | Totals or tax lines differ on a matched receipt | Tax-field mapping: one combined POS tax field against the separate Metrc fields | POS tax mapping | Controller |
1 and 2: the sale and the receipt don't pair
Match on identifiers, not on time and amount. Metrc's sales-receipt API carries an external receipt number that your POS sends, so the join is POS ticket number to that field (Metrc API documentation). If your POS doesn't send it, join on package tag, quantity and timestamp, and expect more manual review.
Never: create a Metrc receipt by hand to "close" an unmatched ticket when the POS can re-push it. You will get a duplicate the moment the sync recovers.
3: the quantity is wrong on a package
Work through it in order:
- Unit of measure. Eaches against grams, or a 5-pack sold as five singles. Check the item mapping before you check the shelf.
- Undocumented movement. Samples, destructions and damaged units that left the shelf without a Metrc entry.
- Real loss. No paper trail at all. Stop and investigate before you adjust anything. This is the case your state's theft or loss notification rule is written for, so check its window in the state page before anything else.
Never: adjust without a reason code, or make an adjustment you also sign off. In California, an unexplained variance found at inspection can become an enforcement matter (Baghoomian Law). An adjustment with no reason is an unexplained variance with a timestamp on it.
4: the invoice tag isn't on the manifest
Hold the line. The bill for that line waits, and you ask the sender for a corrected invoice. Metrc's Virginia guidance treats transporter details on a transfer as editable but its contents and destination as fixed (Metrc VA IB-0016). The manifest is the fixed record, so the invoice is the document that has to change.
Never: "correct" the tag in your own records to match the invoice, or accept the line as-is because the item and quantity look right. A transposed digit and a different package look the same until somebody checks.
5: splits, returns and voids
These go wrong because each one is a two-system workflow and staff finish it in one:
- Split. The package was split in Metrc and the new tags were never put on the shelf. Or the shelf was split and Metrc wasn't. Relabel or record the split. No quantity adjustment is needed.
- Customer return. Rung as a void in the POS but recorded as a return in Metrc, or the reverse. Make both systems agree on which one happened.
- Transfer return. Use the state's return flow. Metrc's Nevada bulletin describes returning a rejected transfer on the same manifest. Your state's process may differ, so check it (Metrc NV Bulletin 47).
- Void. A voided POS ticket must not leave a live Metrc receipt behind.
Never: net a return against a sale to make the day balance. Each event needs its own record on both sides.
6: room and location
Rooms and locations matter at count time: the weekly cycle count exports a room from Metrc and counts it (procedure). A package on the sales floor that Metrc places in the vault shows up as a phantom loss in one room and a phantom overage in the other. Fix it with a location move, not two adjustments.
7: totals and tax lines
If the packages and quantities match but the totals don't, check the tax mapping first. Fix the mapping once rather than the receipts one by one.
What never to do, whatever the kind
- Never adjust before you classify.
- Never adjust without a reason code and a named person.
- Never let the person who made an adjustment approve it.
- Never edit a tag to match a document. Get the document corrected.
- Never net discrepancies against each other to reach zero.
- Never let software make any of the above "one click". Metrc adjustments, receipt voids and loss notifications are regulated actions. Software can propose them, and a named person should approve each one.
Illustrative example
Hypothetical numbers. The daily list shows 10 exceptions. 6 are one ticket whose push failed, which turned into six unmatched lines (kind 1): re-push, done. 2 are a 5-pack mapped as singles (kind 3): fix the mapping and both clear. 1 is an invoice tag one digit off the manifest (kind 4): hold the line and request a corrected invoice. 1 is a package missing from the vault but present on the floor (kind 6): move it. Not one of the ten needed a Metrc quantity adjustment.
BudAlly runs the daily match and the exception list for any POS and drafts the 30-day report. A person approves every adjustment, and a tag is never edited. See the Metrc hub for state pages and the reconciliation SOP for the clocks.
Sources
- cannabisregulations.ai — ERP and Metrc reconciliation failures: month-end controls that prevent inventory drift · 2026
- Metrc — Sales receipts API (external receipt number lookup) · 2026
- Metrc — Virginia Industry Bulletin IB-0016: wholesale transfer best practices · 2025–10
- Metrc — Nevada Bulletin 47: returning a transfer · 2022–05
- Baghoomian Law — California cannabis inventory audits and Metrc discrepancies · 2026