skills/data-analytics/revenue-recognition-accounting/SKILL.md
Implement ASC 606 / IFRS 15 revenue recognition for subscriptions, bundles, and multi-element arrangements with deferred revenue tracking and journal entries
npx skillsauth add finsilabs/awesome-ecommerce-skills revenue-recognition-accountingInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Revenue recognition determines when you can record revenue in your financial statements. Under ASC 606 (US GAAP) and IFRS 15, revenue is recognized when — or as — performance obligations are satisfied, not simply when cash is received. This matters enormously for subscriptions (revenue earned monthly even if billed annually), gift cards (revenue earned only on redemption), and bundled products (where a warranty component must be deferred).
Getting revenue recognition right protects you from audit findings, builds investor trust, and ensures your financial statements accurately reflect business performance.
This skill guides you through the practical setup of revenue recognition using your accounting system, platform integrations, and relevant apps.
Most standard ecommerce product sales (order placed → shipped → delivered) are straightforward: recognize revenue at delivery. The complexity arises with these arrangements:
| Revenue Type | Recognition Rule | Common Mistake | |-------------|-----------------|----------------| | Physical product (single sale) | Recognize at delivery (when control transfers to customer) | Recognizing at order placement instead of delivery | | Subscription (annual or multi-month) | Recognize ratably over the subscription period | Recognizing full annual payment in month 1 | | Gift cards | Recognize at redemption; handle unredeemed breakage separately | Recognizing at sale | | Extended warranty | Recognize ratably over the warranty period | Recognizing 100% at product shipment | | Bundle (product + service) | Allocate price across components; recognize each independently | Recognizing 100% at shipment of physical component | | Buy Now Pay Later | Recognize at delivery (BNPL provider pays you immediately; installment risk is theirs) | No special treatment needed; straightforward | | Marketplace sales (as principal) | Recognize gross revenue; record fees as cost of revenue | Net revenue recognition (agent treatment) when you control inventory | | Marketplace sales (as agent) | Recognize only your net commission | Gross revenue recognition when you do not control inventory |
The right tool depends on your business complexity and accounting system:
Shopify (subscription apps):
QuickBooks Online approach for annual subscriptions:
Dedicated revenue recognition tools:
Shopify:
A2X for Shopify: A2X allows you to configure how different Shopify transaction types post to your accounting system — set gift card sales to post to a deferred revenue account and gift card redemptions to post to a revenue account.
Manual approach (most common for small-to-mid-size merchants):
Determine the standalone selling price (SSP) of each component:
Allocate the bundle price proportionally:
Example: Bundle = $150 (product + 1-year warranty)
Product SSP: $130, Warranty SSP: $30, Total SSP: $160
Product allocation: $150 × ($130/$160) = $121.88
Warranty allocation: $150 × ($30/$160) = $28.12
Post journal entries:
In QuickBooks/Xero: Create a Deferred Revenue – Warranty liability account for the warranty component; set up a recurring journal entry to release $2.34/month per warranty sold
The most common revenue recognition error for ecommerce: recognizing revenue at order placement instead of delivery.
Under ASC 606: For physical goods, revenue is recognized when the customer obtains control — typically at delivery, not at checkout.
Practical impact:
How to handle in practice:
For most merchants with short transit times (1–3 days), the difference between order date and delivery date is immaterial and auditors typically accept recognition at shipment. However, if you have:
...then you need to accrue for in-transit revenue:
Maintain a running deferred revenue balance to verify your accounting is correct.
Monthly deferred revenue reconciliation (in a spreadsheet):
Opening Deferred Revenue Balance
+ New deferrals this month (gift cards sold + subscription annual billings + warranty components)
- Revenue released this month (gift card redemptions + monthly subscription recognition + warranty releases)
- Refunds/cancellations
= Closing Deferred Revenue Balance
Should equal: Deferred Revenue balance on your balance sheet
If the calculated balance does not match your balance sheet, there is a missing journal entry.
Review checklist each month:
If you sell through Amazon, eBay, or other marketplaces, determine whether you are a principal or an agent:
You are a principal if:
→ Recognize gross revenue (full selling price); record Amazon fees as cost of revenue
You are an agent if:
→ Recognize only your net commission
Most Amazon FBA sellers are principals and should recognize gross revenue. If you are unsure, consult your accountant.
| Problem | Solution | |---------|----------| | Revenue recognized at checkout instead of delivery | For physical goods, recognize when the carrier marks the shipment as delivered; post a deferred revenue entry at order placement and recognize at the delivery trigger event | | Full bundle price recognized at shipment | Split the bundle price across performance obligations using SSPs; defer the warranty/service component and release ratably over the service period | | Gift card revenue recognized at sale | Gift card revenue is a deferred liability until redemption; post to a liability account at sale; recognize at redemption | | Subscription prorations done by calendar month instead of by day | Mid-month subscription starts should be recognized pro-rata by exact days, not calendar month; a subscription started on the 15th of a 30-day month recognizes 16/30 of the monthly fee in month 1 | | Not reassessing variable consideration (returns) each period | Return rates change over time; re-estimate expected returns monthly and record a catch-up adjustment in the current period | | Recording Amazon payout net of fees as revenue | If you are a principal on Amazon, record the full selling price as gross revenue and Amazon's fees as cost of revenue/selling expenses separately |
tools
Let shoppers save products to a wishlist, share it with friends, and get notified when saved items come back in stock or drop in price
development
Build a themeable storefront with design tokens and CSS custom properties that supports white-labeling, multi-brand variants, and dark mode
development
Speed up product discovery with instant search suggestions, fuzzy typo matching, and category-aware results powered by Algolia or Elasticsearch
development
Build a mobile-first storefront with thumb-friendly navigation, sticky add-to-cart buttons, and touch-optimized components for high mobile conversion