Documentation

Inventory Aging Credits

Docs / Credit Recovery / Inventory Aging Credits
Credit Recovery

At a Glance

  • An inventory aging credit fires when a wholesale package ages past its threshold and sells below keystone
  • No specific promotion is required — time on the shelf is the trigger
  • Thresholds are category-aware and resolve SKU > vendor > category > platform default
  • Platform defaults: 60 days for Flower, Pre-Rolls, and Concentrates; 120 days for Vapes, Edibles, and everything else
  • Wholesale only — on consignment the vendor already shares every markdown through their split

How Inventory Aging Credits Work

An inventory aging credit is what a vendor owes you when a slow-moving lot of their product sits on your shelf past a threshold and you eventually sell it below keystone to clear it. Unlike a return or a destruction, the product isn't defective and hasn't expired — it's simply stale, and clearing it protects both of you. Aging is the close cousin of co-marketing: both share a below-keystone markdown with the vendor, but aging needs no planned promotion. Time on the shelf is the whole trigger.

Our credit recovery engine reads each package's receive date from your inventory records and the sale date from your synced Metrc sales, measures the shelf age, and when an aged package sells below keystone, it calculates the vendor's share and rolls it into the monthly credit memo.

Wholesale only. Inventory aging credits apply to product you bought outright at wholesale. On a consignment order the vendor's split is already calculated on the discounted sale price, so they share every markdown automatically — there is nothing to bill back. Consignment product is eligible for return and waste credits only. Never treat a consignment vendor as owing an aging credit.

Aging Thresholds

A package is "aged" once the number of days from when you received it to when it sold crosses a threshold. Thresholds are category-aware because flower goes stale far faster than an edible does. When you have not set your own rule, the platform uses these defaults:

CategoryDefault threshold
Flower60 days
Pre-Rolls60 days
Concentrates60 days
Vapes120 days
Edibles120 days
Everything else120 days

You can set your own thresholds, and they resolve in a strict order of precedence — the most specific rule wins:

SKU > vendor > category > platform default

A rule on a specific SKU beats a rule you set for that vendor, which beats a rule for the whole category, which beats the built-in default. Set thresholds under Settings & Defaults.

The Aging Math

The dollar amount is the keystone shortfall multiplied by an aging coverage rate you set. The steps:

  1. Age the package. Shelf age = sale date − receive date. If it's below the resolved threshold for that category, the sale isn't aged and nothing is charged.
  2. Compute keystone. keystone = cost ÷ (1 − target margin). At a 50% target margin, keystone is 2× your unit cost.
  3. Compute the shortfall. shortfall = keystone − sale price. If the aged package still sold at or above keystone, there's no shortfall and no credit.
  4. Apply the coverage rate. credit = shortfall × aging coverage rate. The aging rate is independent of the co-marketing rate and can be set higher; if you leave it unset, it inherits the co-marketing rate.
Worked example: A flower eighth cost $15, target margin 50%, so keystone is $30. It was received 74 days before it sold — past the 60-day Flower threshold. You marked it down to $22 to move it. Shortfall is $30 − $22 = $8. At a 50% aging coverage rate, the vendor's aging credit is $4 per unit. Across a stuck lot of 40 units, that's $160 shared on product you'd otherwise clear entirely on your own margin.

The Retailer-Discount Guardrail

This is the rule that keeps aging credits fair: an aged sale that carried a retailer POS discount is excluded from aging credit. If the unit sold with a loyalty discount, an employee discount, or another retailer-run POS program attached, that sale is not charged to the vendor at all. Vendors are never billed for markdowns that came from your own programs. Aging shares the cost of clearing genuinely slow stock, not the cost of running your loyalty or employee programs.

Two more conditions round it out: the package must have a receive date on file (age can't be measured without one), and a line's cost is never allowed to exceed its sale price when computing keystone, so bad cost data can't inflate a shortfall.

Who Sets the Rates

You do, and they take effect immediately. The retailer sets the aging thresholds, the aging coverage rate, and the target margin. ShelfSpace does not broker the arrangement between you and your vendor — you agree to whatever terms you agree to directly, and the platform runs the operations: measuring shelf age against your thresholds, computing the shortfall, building the memo, and handling the vendor's approve, approve-a-partial-amount, or decline. On the monthly memo, aging credits are split into what the vendor has approved versus what is still awaiting their yes. See the credit memo approval process for how each status resolves, including what happens on silence.

Ready to start recovering what you're owed? Let's talk.

Talk to Us
Free evaluation. No commitment.