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.
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:
| Category | Default threshold |
|---|---|
| Flower | 60 days |
| Pre-Rolls | 60 days |
| Concentrates | 60 days |
| Vapes | 120 days |
| Edibles | 120 days |
| Everything else | 120 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:
- 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.
- Compute keystone.
keystone = cost ÷ (1 − target margin). At a 50% target margin, keystone is 2× your unit cost. - Compute the shortfall.
shortfall = keystone − sale price. If the aged package still sold at or above keystone, there's no shortfall and no credit. - 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.
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.