You buy flower expecting it to move at a certain margin over the next few weeks. What you don't see on the invoice is the clock. Cannabis is perishable — flower dries out, cannabinoids degrade, and a jar packaged three months before it reached your dock is worth less the day it arrives than one packaged last week. You pay the same price for both.

Every other part of the delivery gets a second look. Someone counts the boxes. The invoice gets matched to the order. But nothing in the old workflow ever asked the one question that decides whether product will actually sell before it ages out: how old is this already? That number lives in Metrc, on every package — and until now, nobody was reading it at the dock.

The invoice charges full price. Metrc knows the age.

Here's the thing about a cannabis delivery: you already have the answer. Every package that transfers to your license carries a packaged date in Metrc, logged at the source. The invoice is the vendor's word on what you owe. Metrc is the shared record of what actually crossed your door — and how old it was when it did.

The invoice

What the vendor says you owe. Full price on every line — no mention of how long the product has been sitting since it was packaged.

Metrc

What actually arrived — including the packaged date on every package. The record that tells you whether product is fresh enough to sell before it ages out.

This isn't about distrusting your vendor. Old inventory piles up on everyone; a jar gets pushed to the back of a shelf and shipped a quarter later without anyone meaning any harm. The point is that you and your vendor both want to settle on product that will actually sell. Metrc is the record that settles it — so a bit of honest aging doesn't quietly become a loss you carry.

The check moves to the dock

Most of ShelfSpace's over-pay protection already runs the moment you approve a delivery for payment — the invoice gets checked against Metrc before a check is ever cut. Manifest-first receiving moves the first look even earlier: to the moment the truck is still at your door, when you can still do something about it.

Before a cannabis delivery can be received, the platform matches its Metrc manifest to the delivery — automatically off the invoice, or in one click from a list of incoming manifests. That match is what unlocks receiving. (If Metrc is down, anyone on your team can override with a reason — it keeps the dock moving and leaves a record.)

Once it's matched, receiving gets a lot smarter. When you open Confirm Physical Receipt, the platform has already compared the manifest to the invoice line by line and read the packaged date on every package. Anything that fails your freshness rules is called out in plain English, right on the line:

Confirm Physical Receipt

Acme Farms · Invoice #10428 · 9 packages · Metrc matched

Flower · Blue Dream 3.5g × 24

Fails freshness rules — packaged 03/23/2026 (108 days; your Flower rule is 60). Reject package …4821 in Metrc.

Pre-Rolls · Sunset Sherbet 1g × 10

Invoice qty 10 · Metrc manifest qty 8

Vapes · Gelato 0.5g × 12

Matches Metrc · packaged 41 days ago

1 package fails freshness rules — reject it during Metrc acceptance and it goes back with the driver.

The Confirm Physical Receipt dialog flags stale product and quantity mismatches before you accept. Example figures shown.

You don't have to know Metrc package tags or do date math. The line tells you exactly what's wrong and exactly what to do: reject that package during Metrc acceptance. It goes back on the truck, and it never enters your inventory.

And it comes off your invoice

Here's the whole pass, from the matched manifest to the adjusted invoice:

1

The manifest matches the delivery

Automatically off the invoice, or one click from the incoming-manifests list. Matching is what unlocks receiving.

2

The platform reads every packaged date

And flags anything older than your rule for that category, plus any short count or mismatch against the invoice.

3

You reject stale product in Metrc

The flagged package goes back with the driver instead of onto your shelf.

4

It comes off your invoice

The payable adjusts to what you actually kept, through the same receive-and-reconcile flow you already use. You never pay for what you sent back.

5

The vendor gets an itemized notice

Which product, which tag, how old, and the amount coming off the invoice. Grounded in the shared Metrc record, so the conversation starts from facts.

That fourth step is the one that matters on your P&L. You're not eating the cost of aged-out product and hoping to argue it back later. It comes off the invoice the moment you reject it — you only pay for what you actually kept.

The invoice charges full price whether product was packaged last week or last quarter. Metrc knows the difference. Manifest-first receiving reads it at the dock — while the truck is still there and you can still send it back.

Know before the truck even shows up

Because the platform matches manifests while they're still in transit, it can warn you the night before. If tomorrow's delivery contains packages that fail your freshness rules, your team gets an email — so you walk up to the dock already knowing which packages to reject, instead of finding out after you've signed for them.

Freshness is one number on the manifest. Short counts and lines that never made the truck are others. Manifest-first receiving reads all of them at the dock, so the two ways a delivery quietly costs you — paying for product that didn't arrive, and paying full price for product that's already aging out — both get caught in the same pass. It's one more piece of how the accounts payable system keeps you from overpaying without adding a step to your week. Want the full mechanics? The manifest-first receiving guide walks through matching, freshness rules, and the Rejected tab.

If you're receiving cannabis deliveries today without anything reading the packaged date before you sign, talk to us — we'll show you how much of your shelf is older than you think.