Accounting & Finance
How should a DTC brand recognize revenue for pre-orders, subscription boxes, and gift cards under ASC 606?
Recognizing revenue correctly for pre-orders, subscriptions, and gift cards under ASC 606.
Last updated September 16, 2026
Cash is not revenue. Revenue is when you satisfy the performance obligation. Shopify capturing a card is not that event.
ASC 606 is five steps: identify the contract, identify the obligations, determine the price, allocate the price, recognize when you transfer control. For most DTC, the obligation is delivering the goods. The payout hitting the bank is cash. It is not step five. This is accounting under US GAAP, not tax advice and not legal advice. Gift-card expiry, escheat, and unclaimed-property rules are a lawyer-and-auditor conversation. Do not invent a breakage rate to make the P&L look clean.
Recognizing revenue on pre-orders
Pre-orders: take the cash, hold it as a contract liability, recognize when the unit ships. If the order splits, recognize each shipment, not the whole checkout. Do not dump the pre-order into COGS at payment. Inventory is still yours until it leaves. "Ship when available" and partial kits are how brands recognize too early. Match the journal to the pack, not the checkout.
Subscription boxes and prepaid plans
Subscription boxes: each box that actually ships is usually its own obligation (or a series of the same one). A prepaid annual or a 3-pack is a liability you peel as boxes leave. Skip a month, do not recognize that month. Charge-by-the-month with same-day ship has almost no liability. Prepaid with future cycles does. Add-ons and shipping charged at checkout need their own allocation if they are distinct. This is the revenue side. Protecting month-2 inventory from DTC is a different post.
Gift cards and breakage
Gift cards: cash is a contract liability until redemption. When the card is redeemed and the goods ship, recognize that portion. If you expect to be entitled to breakage (cards that will never be used) and you can estimate it without a probable significant reversal, you may recognize that portion in proportion to redemptions. If you cannot estimate, or if unused balances must be remitted under the law that applies, do not take breakage. Wait until redemption is remote, or until expiry or escheat. Do not book gift-card cash as a sale on the day it is bought. Ask your auditor before you book breakage.
Returns and variable consideration
Returns and refunds are a variable-consideration estimate, not a surprise at month end. You reduce revenue (and often record a refund liability and a returns-inventory asset) for what you expect to come back. Marketplace reimbursements and withheld tax are not extra revenue. They are settlement noise. Recognize the customer obligation, then reconcile the payout. If you sell a bundle that ships in two boxes a week apart, two dates, two revenue entries, one leftover liability. Loyalty points or store credit issued at checkout are usually a second obligation, not free revenue on the first SKU.
The ship event is the journal. Cash, gift cards, pre-orders, and prepaid boxes sit on the balance sheet until then. Do not let a payout-summary tool recognize them on the day Shopify or Amazon pays you.
Connect Claude or ChatGPT to your Fulfil data with the Fulfil MCP, then run this prompt on your own numbers.
You are the controller for a DTC brand under US GAAP (ASC 606). Here is: order_id, type (prepaid_box / preorder / gift_card / split_ship), cash_date, ship_dates, items, amounts, refund_rate. [paste] Produce: 1. What is contract liability vs revenue today. 2. What to recognize on each ship date. 3. Gift-card breakage: estimate vs wait. 4. Orders recognized too early (checkout instead of pack). Do not give tax advice. Accounting only. Flag anything that needs the auditor.
Explore this in Fulfil
More on Accounting & Finance
Moving-average cost and contribution margin
How weighted-average cost feeds an honest contribution margin for each product.
How do I speed up month-end close for a Shopify Plus brand with a 3PL and Amazon?
Closing the books faster when sales run across Shopify, a 3PL, and Amazon.
How do I reconcile Shopify Payments payouts and Amazon settlements to my bank account?
Matching Shopify and Amazon payouts to your bank so cash ties out cleanly.
See it run on
your data.
Fulfil runs inventory, fulfillment, purchasing, and accounting for scaling DTC brands in one system.