Every store has it: a lot of a vendor's product that just sits. It's not defective and it hasn't expired, so there's no return or waste credit to claim. It's simply slow. Eventually you mark it down to move it before it goes stale, and that markdown comes out of your margin. Inventory aging credit is the mechanism that lets the vendor share that hit — because a slow lot is a shared problem, and clearing it protects both of you.
Aging is the close cousin of co-marketing: both share a below-keystone markdown with the vendor. The difference is the trigger. Co-marketing needs a promotion you both planned. Aging needs nothing but time — once product has been on your shelf too long, a below-keystone clearance sale qualifies on its own.
Same caveat as co-marketing, and it's important: aging credits are wholesale-only. On a consignment order the vendor's split is already calculated on the discounted price, so they share every markdown automatically — there's nothing to bill back. Aging credits apply to product you bought outright, where a slow lot marked down to clear otherwise eats your margin alone. Consignment product stays limited to return and waste credits.
When product counts as "aged"
A package is aged once the time 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 haven't 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 aren't stuck with the defaults. You can set your own thresholds, and they resolve in a clear order of precedence — the most specific rule wins:
SKU > vendor > category > platform default
So a rule on a specific SKU beats a rule you set for that vendor, which beats a rule you set for the whole category, which beats the built-in default. If you know a particular vendor's live resin turns slow at 45 days, set a 45-day vendor rule and it governs every one of their SKUs unless a SKU-level rule overrides it.
The math
The dollar side is the same keystone shortfall as co-marketing, just multiplied by an aging coverage rate that you can set independently — often the same as your co-marketing rate, sometimes higher, since a genuinely stale lot is more the vendor's problem:
credit = (keystone − sale price) × aging coverage rate
Keystone is your unit cost divided by one minus your target margin — at a 50% target margin, that's 2× cost.
Worked example
Across a stuck lot of 40 units, that's $160 the vendor shares on product you'd otherwise have cleared entirely on your own dime. Every aged, below-keystone sale on that vendor's product rolls into one line on the monthly credit memo, split on the memo into what the vendor has approved versus what's still awaiting their yes.
The guardrails
- A retailer POS discount excludes the sale. This is the one to internalize: if an aged unit sold with a loyalty discount, an employee discount, or another retailer-run POS program attached, that sale is excluded from aging credit entirely. Vendors are never charged for markdowns that came from your own programs. Aging shares the cost of clearing slow stock, not the cost of running your loyalty program.
- It has to sell below keystone. An aged package that still sold at or above keystone has no shortfall, so there's nothing to share.
- The receive date has to be on file. Age is measured from when the product was received into inventory; without a receive date, the platform can't determine shelf age and the sale isn't charged as aging.
- Below-cost data is clamped. Bad cost data never inflates a shortfall — a line's cost is never allowed to exceed its sale price when computing keystone.
As with every credit type, the retailer sets the terms — the thresholds, the coverage rate, the target margin — and they take effect immediately. ShelfSpace doesn't broker the arrangement between you and your vendor; it runs the operations: measuring shelf age against your thresholds, computing the shortfall, and building the memo.
What to do Monday morning
- Set thresholds that match how your categories actually move. The 60/120 defaults are a sensible start, but if your flower turns slow at 45 days, say so — a tighter threshold catches more recoverable markdown.
- Decide your aging coverage rate per vendor. It doesn't have to equal your co-marketing rate; a slow lot is often more the vendor's problem, and the rate can be higher.
- Keep receive dates clean in inventory. Aging math is only as good as the received-on date behind it.
Aging is the third of the wholesale credit types, next to co-marketing and the returns and waste credits that apply on every order — the full picture is walked through in the anatomy of a vendor credit memo. If you want to know how much aged markdown you've been eating alone, start with a free evaluation and we'll show you your last 90 days.