npx claudepluginhub brainbytes-dev/everything-claude-financeThis skill uses the workspace's default tool permissions.
Provides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
Integrates PayPal payments with express checkout, subscriptions, refunds, and IPN. Includes JS SDK for frontend buttons and Python REST API for backend capture.
name: revenue-recognition description: Revenue recognition — IFRS 15 five-step model, ASC 606
Both standards follow an identical framework. This skill covers both, noting differences where they exist.
A contract exists when ALL of the following are met:
Contract modifications:
Contract combinations:
A performance obligation is a promise to transfer a distinct good or service (or a series of distinct goods/services that are substantially the same and transferred with the same pattern).
Distinctness test (both criteria must be met):
Common PO identification judgments:
| Scenario | Typically Distinct POs | Typically Combined |
|---|---|---|
| Software license + implementation | If implementation is standard | If significant customization required |
| Hardware + installation | If installation is simple | If integration is essential |
| Product + warranty | Standard warranty = not a PO; extended warranty = separate PO | — |
| SaaS subscription | Single PO (series of daily services) | — |
| Product + training | If customer can use without training | If training is essential to functionality |
| Construction contract | Typically single PO (integrated output) | Multiple POs if separable buildings |
Components of transaction price:
Variable consideration:
Estimate using:
Expected value method — probability-weighted amounts (best for large number of outcomes)
Most likely amount — single most likely outcome (best for binary outcomes)
Constraint: Include variable consideration only to the extent that it is
highly probable (IFRS) / probable (US GAAP) that a significant reversal
of cumulative revenue will NOT occur.
Examples: performance bonuses, penalties, rebates, price concessions,
rights of return, milestone payments
Significant financing component:
Non-cash consideration: Measure at fair value
Consideration payable to customer:
Allocate to each PO based on relative standalone selling prices (SSP).
SSP estimation methods (in order of preference):
Discount allocation:
Variable consideration allocation:
Over time recognition (if ANY ONE criterion is met):
Measuring progress (over time):
Point in time recognition (all other situations): Indicators of transfer of control:
Principal: Controls the good/service before transfer to customer → recognizes gross revenue
Agent: Arranges for another party to provide → recognizes net revenue (commission/fee)
Indicators of principal:
This determination significantly impacts reported revenue (not profitability).
Right to access (over time): IP that is dynamic — entity undertakes activities that significantly affect the utility of IP AND customer is exposed to those effects AND those activities do not transfer a good/service. Examples: franchise rights, brand licenses with ongoing marketing requirements.
Right to use (point in time): IP that is static — functional IP such as software, patented technology, completed media content. Revenue at the point the license is transferred.
IFRS 15 and ASC 606 are aligned on this framework, but ASC 606 provides more detailed application guidance for software licensing.
Typical SaaS contract elements:
1. Cloud hosting / access to software → Single PO (series), over time
2. Implementation / configuration → Distinct if standard; combined if customization
3. Data migration → Usually distinct PO
4. Training → Usually distinct PO
5. Support and maintenance → Often combined with hosting (same pattern)
6. Professional services (ongoing) → Distinct PO
Revenue recognition pattern:
- SaaS subscription: straight-line over contract term (daily obligation in a series)
- Implementation: over implementation period or at go-live depending on distinctness
- Setup fees: if non-refundable upfront fee with no distinct PO → allocated to SaaS PO
and recognized over contract term (including expected renewals if material right)
Typically recognized over time using cost-to-cost method:
Revenue recognized = (Costs incurred to date / Total estimated costs) × Total transaction price
Period revenue = Cumulative revenue recognized - Revenue recognized in prior periods
Example:
Total contract price: $10,000
Total estimated costs: $8,000
Costs incurred to date: $3,200
% complete: $3,200 / $8,000 = 40%
Revenue recognized: 40% × $10,000 = $4,000
Contract losses: If total estimated costs exceed transaction price, recognize the entire expected loss immediately (onerous contract).
Step 1: Is there a valid contract?
→ No: defer until criteria met (or recognize to extent of costs recoverable)
→ Yes: proceed
Step 2: How many POs?
→ Identify each distinct promise
→ Apply the distinctness test (capable + separately identifiable)
Step 3: What is the total transaction price?
→ Fixed + variable (constrained) + financing + non-cash - consideration payable to customer
Step 4: How to allocate?
→ Relative SSP for each PO
→ Special rules for discounts and variable consideration
Step 5: Over time or point in time for each PO?
→ Test three over-time criteria
→ If none met: point in time (assess indicators of control transfer)
Incremental costs of obtaining a contract:
Costs to fulfill a contract:
=== REVENUE RECOGNITION ASSESSMENT ===
Contract: [Description]
Customer: [Name]
Total Consideration: $____
Contract Term: ____ months
--- Performance Obligations Identified ---
PO# | Description | Distinct? | SSP | Allocated Price | Timing
1 | [Software license] | Yes | $____ | $____ | Point in time
2 | [Implementation] | Yes/No | $____ | $____ | Over time
3 | [Support 12 months] | Yes | $____ | $____ | Over time (straight-line)
4 | [Training] | Yes | $____ | $____ | Point in time
Total Allocated: $____ (= transaction price)
--- Variable Consideration ---
Type: [Performance bonus / rebate / penalty]
Estimation method: [Expected value / Most likely amount]
Estimated amount: $____
Constrained amount included in TP: $____
Reassessment trigger: [Quarterly / at milestone]
--- Recognition Schedule ---
Period | PO1 | PO2 | PO3 | PO4 | Total
Q1 | $____ | $____ | $____ | $____ | $____
Q2 | — | $____ | $____ | — | $____
Q3 | — | — | $____ | — | $____
Q4 | — | — | $____ | — | $____
Total | $____ | $____ | $____ | $____ | $____
=== PRINCIPAL VS AGENT ANALYSIS ===
Arrangement: [Description]
Goods/Services: [What is being provided to the end customer]
Indicator | Assessment | Supports
Primary fulfillment obligation | [Entity/Supplier] | [Principal/Agent]
Inventory risk | [Yes/No] | [Principal/Agent]
Pricing discretion | [Yes/No] | [Principal/Agent]
Credit risk | [Entity/Customer] | [—]
Conclusion: [Entity is Principal/Agent]
Revenue presentation: [Gross $____ / Net $____]
Before finalizing revenue recognition, verify: