Dank Logic / Operations guide
Software designed with cannabis in mind

How to Reconcile Dispensary Inventory Between METRC and Your POS

When METRC and your point-of-sale system disagree, the goal is to explain the difference before changing a quantity. Start with a shared scope, preserve both source snapshots, and investigate only the exceptions.

By Dank Logic · Published October 15, 2026 · General operating workflow

Follow your license, state requirements and authorized procedures for any correction. This guide does not prescribe adjustment codes, reporting deadlines or automatic regulatory submissions. METRC API behavior and available endpoints vary by state and version.

1. Match the location, license and cutoff

Choose one facility and license scope at a time. Do not combine different locations or medical and adult-use records simply because they share an item name. Identify the package states included in each export and the inventory concept being compared: on-hand, available, reserved or another provider-defined quantity.

Record the cutoff timestamp and timezone. Check whether one source includes a transaction that the other has not processed yet. If operating activity continues during the review, preserve the baseline and separately record subsequent activity; a local snapshot is not a live provider lock.

2. Preserve METRC and POS snapshots separately

Keep the original exports or authorized read results unchanged. Record the source, facility/license, filters, observation time, retrieval time and whether all pages of results were collected. A partial pull should be investigated as incomplete evidence, not treated as a complete inventory baseline.

Do not add METRC on-hand to POS on-hand. They may represent two views of the same stock. Store each source separately and compare the like-for-like quantities. Keep POS sales demand separate from inventory quantity.

3. Match the package before comparing quantities

Use the package tag or another explicitly documented stable package identifier together with the facility/license scope. Item names and SKUs can help investigate a mismatch, but should not silently replace package identity. Preserve leading zeros and the original tag text; flag malformed or duplicate identifiers.

Check units before calculating a variance. A package measured by weight cannot be compared directly with a count of retail units without a verified conversion and matching inventory basis. Record the conversion source and precision. Keep unmatched packages in a separate queue rather than assuming they have zero stock.

Illustrative comparison — synthetic data, same package scope and unit
PackageMETRC quantityPOS quantityPOS minus METRCNext step
Example A24 each24 each0 eachNo quantity difference at this cutoff
Example B12 each10 each−2 eachInvestigate timing and transaction evidence
Example C5 grams5 eachNot comparableResolve unit and item mapping

The sign describes the comparison only. A negative difference does not prove missing product or establish which source needs correction.

4. Work an exception queue

For each difference, assign an owner and retain the package, source quantities, cutoff and supporting transaction references. Investigate recent receipts, sales, voids, returns, transfers, adjustments and integration failures as applicable to the systems involved. Compare records for the same time window and state; do not replay transactions simply to see whether the totals change.

  • Timing difference: confirm a delayed or queued transaction, then refresh the evidence.
  • Missing or duplicate transaction: identify the exact event and its status in each system.
  • Mapping or unit issue: resolve the identifier or quantity basis before calculating a variance.
  • Unmatched package: investigate lifecycle state, location and import completeness.
  • Unexplained physical difference: escalate for a controlled count and review.

5. Use a physical count to answer unresolved questions

Count the specific packages requiring investigation using your approved procedure. Capture the counter, time, location and unit. Where practical, use a blind count so the expected balance does not influence the observation. If activity occurs during counting, reconcile the count to the original cutoff before comparing it with snapshots.

A count is additional evidence. It does not itself authorize a regulatory or accounting adjustment. Use an independent recount or reviewer when the discrepancy warrants it.

6. Review the correction before applying it

Document the identified cause, affected system, intended correction and reviewer. Follow the applicable provider workflow and state requirements. Avoid changing both systems just to force a match: that can conceal the original cause or duplicate an adjustment.

Where a correction is made outside your reconciliation tool, retain its external reference and result. Keep investigation, approval, application and verification as distinct statuses. A prepared CSV or approved proposal is not proof that an external system accepted the change.

7. Re-pull, compare and close the loop

After authorized corrective work or synchronization, collect fresh, complete evidence from both systems and recheck the original scope. Record whether the discrepancy is resolved, still open or explained by a known timing difference. Retain the original snapshots alongside the follow-up evidence.

Track recurring causes—not just the number of closed rows. Repeated mapping errors, incomplete pulls or duplicate reporting should become a process or integration fix with an accountable owner.

A practical reconciliation checklist

  • Same facility/license, package scope, cutoff and timezone
  • Original source snapshots retained and completeness checked
  • Stable package identifiers and comparable units
  • Only exception rows assigned for investigation
  • Physical count or transaction evidence where needed
  • Reasoned review before authorized corrective action
  • Fresh source evidence confirming the outcome

Where Dank Logic fits

Count Logic focuses on count sessions, variances and reconciliation evidence. Dispensary Doctor brings inventory and replenishment decisions into an operating workspace. Profit Protector helps review discrepancies and potential value with supporting evidence. Provider access, acceptance and release status should be confirmed for your pilot.

Discuss your reconciliation workflow ↗

Opens an email draft. Do not include customer, patient or other sensitive records.

Official reference points

METRC describes how POS and ERP integrations exchange data with its tracking system. Use the documentation for your state and provider version when investigating API behavior; METRC’s Open API overview provides the integration context. These references do not certify this checklist or Dank Logic products.

Keep your operations connected.