Metrc Compliance: What Your Dispensary POS Must Do
What a POS must do to keep a dispensary Metrc compliant: reporting sales, adjustments and waste, closing the reconciliation gap, and surviving an outage.

Every US dispensary owner learns the same three things in the same order. First, that the state traceability system is mandatory. Second, that your POS “integrates” with it. Third, somewhere around month three, that those two facts do not add up to compliance.
The gap between them is where shops get hurt. Not in a dramatic way, usually. It shows up as a monthly inventory count that will not close, a package the state thinks still has 14 grams in it, or an audit question about waste that nobody can answer because the person who threw the product away is no longer on the roster.
This is a working note on what a POS actually has to do to keep that gap closed, written from the engineering side rather than the sales side.
What Metrc is, and what it is not
Metrc is the regulator’s ledger. It holds a copy of your inventory, tagged at the package level, and it expects that copy to stay identical to what is physically in your store. Your POS is where the events happen. Compliance is the discipline of keeping those two records the same.
That framing matters because it clarifies what Metrc is not. It is not an inventory system. It will not tell you margin, reorder points, or which strains earn their shelf space. It is not built for speed at a counter on a Friday evening. Operators who try to run the business out of the traceability system end up with two half-systems and a manual reconciliation stitched between them.
One clarification before the detail. Not every state uses Metrc. BioTrack covers several markets and a few states run their own upload-based reporting. Rules differ meaningfully state to state, including reporting deadlines and which adjustment reasons are valid. This post uses Metrc as shorthand because it is the largest, but the mechanics below apply to any state traceability system, and your own state’s rules are the ones that bind you.
The three writes that matter
Retail traceability comes down to three categories of write. Get all three right and the rest is bookkeeping. Get one wrong and it compounds daily.
Sales
Every retail transaction has to reach the state as a sales record: which package it came out of, how much, when, and at which licensed facility. Most states give you until the end of the business day. Some are stricter.
The failure mode is boring and common. The POS decrements its own stock and posts to the state as two separate operations. When the second one fails, because of an API timeout, an expired key, or a package that was already finished on the state side, most systems write a line to a log that nobody reads. The sale is fine. The receipt printed. The customer left happy. The state’s copy is now wrong, and it will stay wrong until somebody counts.
A POS should treat a failed state write the way it treats a failed card authorisation: visible, queued, and impossible to lose quietly.
Inventory adjustments
Every gram that leaves a package without being sold has to be accounted for with a reason. Scale variance, moisture loss, a mis-entry at intake, breakage, theft. Metrc wants an adjustment with a reason code and, in many states, a note attached.
This is where weight-based retail bites. Your POS thinks it sold 3.5 grams because that is what the price was calculated from. The scale actually delivered 3.54 because the budtender rounded in the customer’s favour. Do that four hundred times and your shelf and the state ledger have drifted apart by an amount you cannot reconstruct.
The structural fix is to report the weight the scale actually captured, not the weight the price was based on. That requires the scale to be part of the transaction rather than a separate device somebody reads and types in. Our Bluetooth scale integration exists for exactly this reason: the Acaia streams a live weight into the line item, the price computes from the strain’s per-gram rate, and the number that reaches the state is the number that came off the pan.
Waste
Expired product, failed lab tests, returns you cannot resell, damaged packaging. Waste is the write operators defer most often, because it carries the least commercial urgency and the most paperwork.
It is also the one that draws the sharpest questions in an audit. Unexplained shrink and undeclared waste look identical from the outside, and the burden of telling them apart is yours.

The reconciliation gap, and why it is where shops get hurt
At any moment a dispensary is running three ledgers: what is physically on the shelf, what the POS believes, and what the state believes. Compliance is the work of holding all three in agreement.
Most shops discover a divergence monthly, at inventory count. By then it represents weeks of transactions, and reconstructing which of four thousand sales was the one that failed to post is not a real option. What actually happens is that somebody makes an adjustment large enough to close the gap and picks a reason code that seems defensible. That works until it is examined.
The fix is structural rather than procedural. The same action that rings up the sale should produce the state write. Not a nightly export. Not a CSV a manager uploads after close. Not a sync job at 2am that emails a failure report to an address that stopped being monitored when the person who set it up left.
Here is a test worth running on any vendor, including us. Ask them to show you, live, what the system does when a state write fails. If the answer is that it retries, ask where the queue is visible and who gets told. If there is no screen that shows unposted writes, there is no reconciliation. There is hope.
When the internet drops mid-shift
Two failure modes get conflated here, and they deserve separating.
The first is that your own connection drops. An ISP blip, a router reboot, construction outside. The second is that the state system itself is unreachable: a maintenance window, a degraded API, an incident on the regulator’s side. You control neither, and both are ordinary rather than rare.
A cloud-only POS treats both the same way. It stops. In a dispensary, “it stops” does not mean a slow afternoon. It means a queue of customers holding cash while a budtender apologises, and a shift’s revenue that does not happen.
“We work offline” is worth pressing on, though, because vendors mean at least three different things by it:
- A read-only cache. You can browse the menu. You cannot complete a sale. This is the most common version and the least useful.
- A local queue on a cloud core. Sales complete, but the app is still a thin client over a remote database, and what degrades during an outage is hard to predict from the outside.
- A local database that is the system of record. The terminal owns its data. The server is a sync target, not the source of truth.
Budy is the third. Every terminal runs its own database and that database is authoritative, not a copy. A sale completes because the terminal already holds everything needed to complete it: catalogue, per-gram pricing, member records, purchase allowances, batch and lot data. The state write is queued as part of the same unit of work as the sale, so a reconnect cannot post one without the other.
Two things that does not mean, which we would rather say ourselves than have you find out:
It does not make you compliant during the outage. The state’s copy is behind until it catches up, and if your outage runs past your state’s reporting deadline you have a late filing. No software fixes that.
It does not remove the need to watch the queue. Automatic reconciliation is only trustworthy if somebody can see that it happened. The queue is visible on the terminal and in the back office for that reason.
What offline-first genuinely fixes is the far more common case: the forty-minute outage at six on a Friday that would otherwise cost you a shift, and the state writes that would otherwise be reconstructed by hand on Monday.
Compliance that happens before the payment, not after
Traceability is the half of compliance that faces the regulator. The other half faces the customer, and it has to happen earlier in the transaction than most systems put it.
Age verification belongs before payment rather than after. A check that runs at the end of a transaction is a check that gets skipped when the queue is long. Purchase allowances, daily and monthly, have the same property: they are only meaningful if the till refuses the sale, and they are only workable if a manager can override with the override being recorded rather than silent. Budy handles all three that way, and the compliance overview covers the document capture side.
Batch and lot traceability runs underneath all of it. If you cannot answer “which lot did this gram come from” from a receipt, you cannot answer a recall either.
Where the older vendors are ahead of us
We would rather write this section than have you discover it in month two.
Per-state depth. Metrc behaves differently state to state. Reason codes, deadlines, package rules, and the specific ways a state’s implementation is quirky are things a vendor absorbs by shipping there for years. Platforms that have operated in your state since 2018 have hit edge cases we have not. That is a real advantage and it is not one we can talk our way out of.
Dedicated compliance staff. Larger vendors employ people whose entire job is reading rule changes and updating the product before the rule takes effect. We do that work, but not with a team that size.
US cannabis tax. This is the sharpest gap and it is worth being blunt. Budy currently applies a single VAT-style tax rate per store. A US dispensary that has to break out state excise, local cannabis tax and sales tax separately on one receipt is not served by that today. If your jurisdiction requires that split, ask us where it stands before you sign rather than after.
Adjacent systems. We do not process payments, we do not do delivery dispatch, and we do not syndicate your menu to the big consumer marketplaces. Several competitors do all three. If those are load-bearing for your business, weigh them properly.
Where we think we are ahead: the counter itself. Weighed sales, product onboarding, and staying open when the network does not. The Budy versus Flowhub comparison lays out that trade honestly, and the dispensary software overview shows the workflow end to end.
Five questions to ask any vendor about traceability
- Are the sale and the state write one operation or two? If two, ask what happens when the second fails.
- Where do I see unposted writes? Ask for the screen, not the architecture diagram.
- What weight reaches the state on a by-weight sale? The captured weight or the priced weight. These are not the same number.
- Disconnect the network and complete a sale. Do this during the demo. Watch what the till does and what it does when the network comes back.
- How do adjustments and waste get recorded? If the answer involves logging into the state portal separately, you have bought half a system.
Frequently asked questions
What is Metrc and does my dispensary have to use it? Metrc is a state-run cannabis traceability system, meaning the regulator’s own ledger of every plant, package and sale in the licensed market. If your state uses it, participation is a condition of your licence rather than an option. Not every state does: BioTrack covers several markets and a few states run their own upload-based system. The mechanics are the same everywhere. The state keeps a copy of your inventory, and your job is to keep that copy identical to what is actually on your shelf.
Does Budy integrate with Metrc? Yes, and with BioTrack. Sales, inventory adjustments and waste are reported to your state system from the same action that rings up the sale, so there is no second system to key into at close. The state write is queued alongside the sale rather than fired and forgotten, which means a failed post is something you can see and retry rather than something you discover at month-end inventory.
What happens to Metrc reporting when the internet goes down? The counter keeps selling and the state writes queue on the terminal. Every Budy terminal runs its own database as the system of record rather than a cache, so a sale completes using the catalogue, pricing, member records and allowance checks it already holds. When the connection returns, the queued writes post and reconcile automatically. This does not make you compliant during the outage, because the state copy is still behind until it catches up, but it does mean a dropped connection costs you time rather than trade.
Is Metrc compliance the job of the POS or of a separate system? It should be the job of the POS, because the POS is where the event actually happens. Any design that puts traceability in a separate tool creates a second ledger and therefore a permanent reconciliation task. If your compliance data is assembled from a nightly export, a spreadsheet, or a manager retyping numbers after close, the gap between the shelf and the state is being created faster than anyone can close it.
Why does my Metrc inventory never match my shelf? Almost always because of small repeated variances rather than one large error. Flower sold by weight is the usual culprit: the price is calculated from a target weight while the scale actually delivered something slightly different, and a tenth of a gram repeated a few hundred times becomes a number nobody can explain. The structural fix is to report the weight the scale actually captured rather than the weight the price was based on, and to record adjustments with a reason at the moment they happen.
What software do dispensaries use for state traceability? Most run a cannabis POS with a traceability integration on top, and the market splits into two shapes. Legacy platforms have years of per-state edge-case handling and staff whose full-time job is tracking rule changes. Newer platforms tend to be faster at the counter and cheaper to run. What matters more than the brand is whether the sale and the state write are one operation or two, and whether you can see the queue when a write fails.
Does Metrc replace my POS or my inventory system? No. Metrc is the regulator’s record, not a retail system. It will not tell you your margin, your reorder points, or which strains earn their shelf space, and it was never designed to be operated during a busy Friday evening. Trying to run the business out of the traceability system is how shops end up with two half-systems and a manual reconciliation between them.
The short version
Traceability compliance is not a feature you buy. It is a property of how your POS is built, and it comes down to one question: is the state write part of the sale, or is it a second job that happens afterwards.
If it is part of the sale, the reconciliation gap stays small enough to close. If it is a second job, the gap grows on its own, quietly, until an inventory count or an auditor makes it everyone’s problem.
If you want to see how this works on real hardware, get in touch and we will run a live demo, network cable included, so you can pull it out yourself. The cannabis inventory management guide covers the stock side in more depth, and what dispensary POS software actually costs covers the money.