Recognize revenue at fulfillment
By default SKU.io books a sale as revenue on the order date. That suits most online stores, where orders ship within a day or two. If you take pre-orders, sell on long lead times, or report under ASC 606, you may need revenue to wait for the shipment. With fulfillment-based recognition, a sale first posts to a Deferred Revenue liability and moves to Sales as each shipment goes out, in the same entry as its cost of goods sold.
Before you begin
- Accounting entry generation must be on (Accounting → Settings → General).
- Map a Deferred Revenue account under Accounting → Settings → Nominal Code Mappings. It must be a liability account. The default chart includes 2400 Deferred Revenue.
- Decide when to switch. The change applies only to orders created after you save it, so switching at the start of a month keeps your books easy to read.
Switch to fulfillment-based recognition
-
Go to Accounting → Settings → General and scroll to Revenue recognition.

-
In Revenue recognition basis, choose At fulfillment (deferred revenue). The hint under the field explains what changes.

-
Click Save Changes.
-
In Change revenue recognition basis?, read the summary and confirm.
If SKU.io can't switch, it tells you why. The usual reasons are that the Deferred Revenue mapping is missing or isn't a liability account, or that entry generation is off.
What changes in your books
| Event | At order date (default) | At fulfillment |
|---|---|---|
| The order is invoiced | Credit Sales | Credit Deferred Revenue |
| Each shipment goes out | Debit Cost of Goods Sold, credit Inventory Control | The same, plus debit Deferred Revenue and credit Sales for that shipment's share |
- Orders created before the switch keep order-date recognition, even when they ship afterwards. SKU.io decides per order, by the date it was created.
- Partial shipments release revenue in proportion, so an order shipped in two parts recognizes it in two parts.
- Deferred Revenue on your Balance Sheet shows sales you've invoiced but not yet shipped.
- In your accounting provider, invoices post to Deferred Revenue too. With QuickBooks Online, SKU.io sets up a SKU Deferred Revenue item for this when you switch. If that item is deleted in QuickBooks, click Re-provision QuickBooks deferred revenue item under the setting to recreate it.
After you've used fulfillment-based recognition, you can't change the Deferred Revenue mapping.
Switch back to order-date recognition
- Fulfill, cancel or credit every order that still has deferred revenue open. SKU.io won't switch back while any remains.
- Set Revenue recognition basis to At order date (default) and click Save Changes.
Orders created after that post revenue at the order date again.
Next steps
- Chart of accounts reference: where Deferred Revenue sits.
- Read your financial statements: see deferred revenue on the Balance Sheet.