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 p...

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