Circulos AI

Finance AI Skill

Revenue Recognition

Automate complex revenue recognition calculations per ASC 606 / IFRS 15 including performance obligation identification, transaction price allocation, deferred revenue tracking, and contract modification handling. Use when implementing revenue recognition policies, processing multi-element arrangements, managing deferred revenue, handling contract modifications, preparing revenue disclosures, or auditing revenue practices. Triggers on phrases like "revenue recognition", "ASC 606", "IFRS 15", "performance obligation", "deferred revenue", "contract liability", "transaction price", "variable consideration", "bill vs recognize", "revenue deferral".

Revenue Recognition (ASC 606 / IFRS 15)

Automate revenue recognition across complex contract structures ensuring compliance with ASC 606 / IFRS 15 standards.

Workflow

Five-Step Revenue Recognition Model

Trigger: Contract execution, contract modification, or periodic (monthly) revenue recognition run:

  1. Identify the contract: Validate all five criteria (approval, identifiable parties, enforceable rights, probable collection, commercial substance). Determine commencement date; assess modification vs. new contract; handle oral vs. written; evaluate combined vs. separate.
  2. Identify performance obligations: Distinguish distinct goods/services; evaluate distinctness criteria; group interrelated obligations; classify as point-in-time or over-time.
  3. Determine transaction price: Fixed + variable consideration; constraint on variable; financing component; non-cash consideration; consideration payable to customer.
  4. Allocate to performance obligations: Based on standalone selling price (SSP); determine SSP via market assessment, cost-plus, or residual; allocate discounts and variable consideration.
  5. Recognize when/as satisfied: Over-time (three criteria) or point-in-time; select progress measurement (input/output method); recognize when control transfers.

Monthly Revenue Recognition Run

MONTHLY REVENUE RECOGNITION RUN — 5-DAY CYCLE
===============================================

Day 1: Contract Data Refresh
  └─ Import new contracts and amendments from CRM
  └─ Update contract status (active, completed, cancelled, modified)
  └─ Refresh variable consideration estimates (rebates, bonuses, penalties)
  └─ Update progress measurement data (costs incurred, milestones achieved)
  └─ Load FX rates for international contracts

Day 2: Calculation Engine
  ├─ Calculate revenue to recognize this period by performance obligation
  ├─ Update deferred revenue balances (contract liabilities)
  ├─ Process contract modifications (cumulative catch-up or prospective)
  ├─ Adjust for changes in variable consideration (catch-up if constraint lifted)
  ├─ Calculate contract assets (revenue recognized > billed)
  └─ Generate recognition journal entries

Day 3: Validation and Review
  ├─ Revenue by segment vs. prior period (flag > 10% variance)
  ├─ Deferred revenue roll-forward validation
  ├─ Contract asset/liability balance check
  ├─ Remaining performance obligation (RPO) calculation
  ├─ SSP reasonableness test (compare to actual transaction prices)
  └─ Exception report review (unusual patterns, threshold breaches)

Day 4: Management Review
  ├─ Revenue recognition manager reviews exceptions
  ├─ Controller approves material adjustments
  ├─ CFO signs off (for public companies)
  └─ Audit documentation prepared (workpaper trail)

Day 5: Posting and Reporting
  ├─ Post revenue recognition entries to GL
  ├─ Update revenue analytics dashboards
  ├─ Prepare revenue disclosure data (for quarterly/annual reports)
  └─ Archive recognition calculations with version control

Performance Obligation Classification

Common PO Types by Industry

PERFORMANCE OBLIGATION CLASSIFICATION GUIDE
=============================================

SaaS / Cloud Software:
  PO-1: Software License (Point-in-Time)
    - Recognition: Upon delivery/activation
    - Control transfer: Customer can access and use software
    - SSP: Standalone license price or residual if not sold separately

  PO-2: Implementation/Onboarding Services (Over-Time)
    - Recognition: As services rendered (input method: cost-to-cost)
    - Control transfer: Customer benefits as services performed
    - SSP: Standalone implementation fee or market rate

  PO-3: Cloud Hosting/Subscription (Over-Time, Straight-Line)
    - Recognition: Equal monthly amounts over contract term
    - Control transfer: Continuous access to hosted service
    - SSP: Monthly/annual subscription price

  PO-4: Premium Support (Over-Time, Straight-Line)
    - Recognition: Equal monthly amounts over support period
    - Control transfer: Ongoing availability of support
    - SSP: Standalone support fee

  PO-5: Training (Point-in-Time or Over-Time)
    - If standardized: Point-in-time upon delivery
    - If customized: Over-time as training rendered
    - SSP: Per-session or per-program price

Professional Services / Consulting:
  PO-1: Discovery/Strategy (Over-Time)
    - Recognition: Cost-to-cost or milestone-based
    - Progress measurement: Hours incurred / total estimated hours
    - Risk: Estimate changes → catch-up adjustment

  PO-2: Design/Development (Over-Time)
    - Recognition: Cost-to-cost (most common) or milestones
    - Progress measurement: Value of work completed / total value
    - Risk: No alternative use + right to payment → over-time qualifies

  PO-3: Testing/QA (Over-Time or Point-in-Time)
    - If integrated with development: Combined PO
    - If distinct: Point-in-time upon test completion
    - SSP: Separate testing fee if sold standalone

  PO-4: Ongoing Maintenance (Over-Time, Straight-Line)
    - Recognition: Equal monthly over maintenance period
    - SSP: Annual maintenance contract price

Hardware + Software Bundle:
  PO-1: Hardware (Point-in-Time)
    - Recognition: Upon delivery and acceptance
    - Control transfer: Physical delivery + customer acceptance
    - SSP: Hardware list price or market price

  PO-2: Software License (Point-in-Time)
    - Recognition: Upon activation/installation
    - SSP: Software standalone price

  PO-3: Installation/Configuration (Over-Time)
    - Recognition: As installation performed
    - SSP: Installation fee

  PO-4: Maintenance/Warranty (Over-Time, Straight-Line)
    - Recognition: Over warranty/maintenance period
    - SSP: Standalone maintenance contract price

  Key issue: Discount allocation — is discount allocated to all POs proportionally
  or entirely to one PO (e.g., hardware if it's the discount driver)?

Transaction Price Allocation

STANDALONE SELLING PRICE (SSP) DETERMINATION
===============================================

Method 1: Adjusted Market Assessment
  - Analyze market conditions and competitor pricing
  - Consider company's market position and value proposition
  - Best when: Product sold in competitive market with observable prices
  - Data sources: Competitor pricing, industry reports, market research
  - Example: Cloud hosting — comparable AWS/Azure/GCP pricing adjusted for features

Method 2: Expected Cost Plus Margin
  - Estimate cost to deliver the good/service
  - Add target margin (based on similar products/services)
  - Best when: Custom service with no direct market comparison
  - Formula: SSP = Expected Cost × (1 + Target Margin %)
  - Example: Implementation services — $200K cost × 1.30 = $260K SSP

Method 3: Residual Approach (Limited Use)
  - SSP = Total Transaction Price − Sum of observable SSPs of other POs
  - Best when: One PO has highly variable/unobservable SSP
  - Restrictions: Only when SSP is highly variable or uncertain (e.g., reseller margin)
  - Example: Reseller arrangement — SSP of reseller services uncertain; allocate residual to product

SSP Documentation Requirements:
  - Method used for each PO (with justification)
  - Data sources and assumptions
  - Date of SSP determination
  - Review frequency (at least annually, or when market changes)
  - Sign-off by revenue recognition manager

Discount Allocation:
  Pro-rata allocation:
    - Discount allocated to all POs proportionally to SSP
    - Default method unless criteria for specific allocation met
    - Example: $1,000 contract, $1,200 total SSP → 16.7% discount to all POs

  Specific allocation to one PO:
    - Discount relates entirely to one PO (e.g., promotional hardware price)
    - Evidence: Separate pricing for that PO at discounted amount
    - Example: Hardware sold at 50% off; software at full price → discount to hardware only

  Partial allocation:
    - Discount relates to subset of POs
    - Evidence: Separate pricing evidence for subset
    - Example: Hardware + software bundle discount; support at full price

Deferred Revenue Management

Roll-Forward and Analysis

DEFERRED REVENUE ROLL-FORWARD — Standard Template
===================================================

BALANCE, Beginning of Period:              $X,XXX,XXX

Additions:
  New billings (not yet earned):           $XXX,XXX
  Contract modifications (additional):       $XX,XXX
  Changes in variable consideration:        ($X,XXX)
  Foreign exchange adjustment:               $X,XXX
  Other additions:                           $X,XXX
Total Additions:                           $XXX,XXX

Deductions:
  Revenue recognized this period:         ($XXX,XXX)
  Contract cancellations/refunds:          ($XX,XXX)
  Write-offs (uncollectible):              ($X,XXX)
  Other deductions:                        ($X,XXX)
Total Deductions:                         ($XXX,XXX)

BALANCE, End of Period:                    $X,XXX,XXX

AGING OF DEFERRED REVENUE:
  Expected recognition < 6 months:       $XXX,XXX (XX%)
  Expected recognition 6–12 months:      $XXX,XXX (XX%)
  Expected recognition 12–24 months:     $XXX,XXX (XX%)
  Expected recognition > 24 months:      $XXX,XXX (XX%)

KEY METRICS:
  Deferred revenue / Annual revenue:    XX% (healthy: 60–150%)
  Quarter-over-quarter change:         +X.X%
  Conversion rate (deferred → recognized): XX%
  Cancellation rate:                   X.X%

ASC 606 Disclosure Requirements

Public Company Disclosures

ASC 606 FINANCIAL STATEMENT DISCLOSURES
==========================================

Required Disclosures (per ASC 606-10-50):

1. Revenue disaggregation:
   - Revenue by segment, geography, product line, contract type
   - Explanation of how disaggregation relates to revenue dynamics
   - Enough detail to reconcile to total revenue

2. Contract balances:
   - Opening and closing balances of contract assets and contract liabilities
   - Explanation of changes (revenue recognized, impairments, acquisitions)
   - Timing of expected recognition of contract liabilities

3. Performance obligations:
   - Aggregate amount of transaction price allocated to unsatisfied POs (RPO)
   - Explanation of how and when unsatisfied POs will be satisfied
   - Disaggregation of RPO by time horizon (<1yr, 1-2yr, 2-3yr, 3-5yr, 5+yr)
   - Practical expedient: POs with original duration ≤ 1 year may be omitted

4. Significant judgments:
   - Determination of transaction price (variable consideration, financing)
   - Identification of performance obligations (bundling decisions)
   - Determination of SSP (methods used, key inputs)
   - Method of recognizing revenue (input vs output, progress measurement)

5. Assets from contract costs:
   - Opening/closing balance of capitalized acquisition costs (sales commissions)
   - Amortization expense
   - Impairment losses

Practical expedients available:
  - Significant financing component: Ignore if payment within 1 year of PO satisfaction
  - Selling costs: Expense immediately if amortization period ≤ 1 year
  - RPO disclosure: Omit POs with original duration ≤ 1 year
  - Consideration: Allocate to POs destroyed by modification

Edge Cases

  1. Cumulative catch-up: Modified contract = continuation of original
  1. Prospective: Modified contract = new contract
  1. Termination + new: Original terminated; new contract created
  1. Substantive reason for bill-and-hold (customer's request)
  2. Goods identified separately as belonging to customer
  3. Goods ready for physical transfer
  4. Seller cannot use the goods or redirect them

Integration Points

Disclaimer: All rights reserved by Circulos AI. These skills are specifically designed for Claude Code, Claude Cowork, Codex, and OpenClaw. When using or referencing any skill, please provide proper attribution to Circulos AI.