Ask two cannabis bookkeepers how a wholesale purchase should hit the books and you'll get two answers. One expenses it the day the product lands on the dock. The other treats that product as an asset — it sits on the balance sheet until it sells, and only then becomes a cost. Both are correct. Which one is right for a given dispensary depends entirely on who closes the books and how.

ShelfSpace now supports both. Every retailer starts on the simpler method, and nothing changes unless you deliberately switch. This post explains the two approaches in plain terms, shows exactly which entries ShelfSpace posts to QuickBooks Online versus which ones your accountant posts at month-end close, and walks through how to turn perpetual on if it fits your books.

Three ways your purchases can hit your books

In Settings, under QuickBooks, ShelfSpace gives you one control — Accounting method — with three coherent choices. It governs one thing: how your wholesale purchases post. (Consignment is a separate path; more on that below.)

Cash — expense when paid

When you pay a vendor, the cost is recorded. Nothing posts when the product arrives, and no accounts-payable balance builds up in between. This is the simplest option and a common fit if you reconcile mostly from your bank.

Accrual — expense at receipt (periodic — what most self-managed stores use)

The moment you receive product, ShelfSpace records what you owe as a bill, and the cost lands right away. Your Accounts Payable reflects unpaid vendor bills in real time, and the cost hits your books in the period you received the product. The product is expensed immediately — it does not sit on your balance sheet as inventory. This is the default, and it's the right call for most operators doing their own books.

Accrual — capitalize inventory (perpetual — for CPA-managed books)

ShelfSpace records the bill at receipt as an inventory asset, not an expense — purchased product sits on your balance sheet until it sells. The cost stays there and does not hit your profit & loss when you receive it. Someone has to move it to cost-of-goods-sold at month-end close — typically your accountant, from your point-of-sale sell-through.

Choose perpetual only if a bookkeeper or CPA closes your books each month. If you do your own books and won't be booking cost-of-goods-sold at close, pick Accrual — expense at receipt instead, or your P&L will understate cost.

Perpetual vs. periodic, plainly

The difference is when the cost shows up on your profit & loss.

The split: ShelfSpace posts the balance sheet, you post the P&L

This is the one idea to hold onto. Under perpetual, ShelfSpace posts only balance-sheet activity — Inventory, Accounts Payable, and cash. It never books cost-of-goods-sold, because only your point-of-sale knows what actually sold. You, or your accountant, book COGS and the tie-out adjustment at month-end close.

Here's what ShelfSpace posts to QuickBooks as one wholesale bill moves through its life:

Wholesale receipt · posted by ShelfSpace
Dr Inventory Assetat receipt
Cr Accounts Payableat receipt
Vendor credit — return, damage, shortage · posted by ShelfSpace
Dr Accounts Payablewhen applied
Cr Inventory Assetwhen applied
Vendor paid (check or ACH) · posted by ShelfSpace
Dr Accounts Payablenet of credits
Cr Bankcheck / ACH sent
Product sells · posted by YOU at close
Dr Cost of Goods Soldmonth-end close
Cr Inventory Assetfrom your POS

Notice the vendor credit and the payment both draw down the same Accounts Payable that the bill created. The liability nets to zero once — never twice — and the bank is only ever reduced by what you actually paid.

The inventory roll-forward

Put the whole month together and it reads as a clean roll-forward. ShelfSpace owns the balance-sheet rows; you own the two profit & loss rows at close. Your point-of-sale supplies the beginning and ending counts that everything ties out to.

Beginning inventory from POSBalance sheet
+ Purchases ShelfSpaceBalance sheet
− Cost of goods sold you, at closeProfit & loss
± Credits — returns, damage ShelfSpaceBalance sheet
± Adjustment to tie to ending count you, at closeProfit & loss
Ending inventory from POSBalance sheet

The adjustment row is the reconciling step: it moves whatever's needed so your QuickBooks inventory balance equals the ending count your point-of-sale reports. Shrinkage, moisture loss, and miscounts all land there, on the P&L, at close — which is exactly where a cannabis CPA wants them.

Vendor credits stay matched to the bill

A worry with capitalizing inventory is that returns and damage credits drift away from the purchases they belong to. They don't here. When a vendor credit is applied, ShelfSpace posts it as a first-class Vendor Credit in QuickBooks, applied against the original bill, reducing the same Inventory Asset account the bill capitalized. The full liability and the credit against it are both on the books — nothing is hidden inside a quietly-shrunk bill amount, so the audit trail stays complete. If a credit is later reversed, ShelfSpace un-applies it and restores the bill's balance; the payment is never disturbed. Anything QuickBooks can't accept — a closed period, an unmatched vendor — is routed to a review queue, never posted wrong.

Consignment is unchanged

The accounting method controls wholesale purchases only. Consignment is a different arrangement: the vendor keeps title to unsold product, so you never take it onto your balance sheet. Nothing posts when consigned product arrives, and the weekly settlement always posts as the vendor's share of what actually sold — the same Bill-plus-Payment it always has. Whether you're on periodic or perpetual, consignment behaves identically. For how consignment settlements post, see Cannabis Consignment Settlements in QuickBooks.

How to turn perpetual on

Perpetual is opt-in, per store, and reversible. In the retailer portal:

  1. Open Settings → QuickBooks. Under a connected, configured QuickBooks connection you'll see the Accounting method card.
  2. Switch the card from Basic to Advanced. Basic shows the two self-serve choices (Cash and Accrual — expense at receipt); Advanced reveals the third, Accrual — capitalize inventory.
  3. Choose an Inventory Asset account from your QuickBooks chart of accounts — usually the one named "Inventory Asset" (an Other Current Asset in QuickBooks).
  4. Select Accrual — capitalize inventory. A confirmation dialog explains that new wholesale bills will post to your Inventory Asset account and your open, unpaid bills will re-sync to it — while paid bills, and bills covered by a live vendor credit, are left exactly as they are.

Two guardrails to know about. First, "capitalize inventory" stays greyed out until accrual is on and an Inventory Asset account is chosen — those are prerequisites, not options. Second, switching it is restricted to your accounting admin; anyone else sees the choice but can't change it. Both exist to keep an accounting decision in accounting hands. Switching back to expense-at-receipt is available the same way, any time.

Perpetual is a bookkeeping choice, not an upgrade. If a CPA closes your books each month and wants purchases on the balance sheet until they sell, it's exactly right. If you close your own books from the bank, expense-at-receipt is simpler and just as correct — and it's already what you're on.

For the full picture of what the QuickBooks integration posts across settlements, payments, and credits, see the Accounting method doc and the QuickBooks integration overview. If you'd like a cannabis-savvy walkthrough for your own books, reach out for an evaluation.