Skip to content

CFA Level I Exam · Analyzing Income Statements

Revenue Recognition: IFRS 15 and ASC 606 Five-Step Model

Updated 7 October 2026 · Fact-checked

Revenue recognition under IFRS 15 and ASC 606 says a company records revenue when it transfers promised goods or services to a customer, in the amount it expects to receive. You apply five steps: identify the contract, identify performance obligations, determine the price, allocate the price, recognize revenue as obligations are satisfied.

Understand Revenue Recognition (IFRS 15 and ASC 606)

Before IFRS 15 and ASC 606, revenue rules differed by country and industry. The two standards now share one core principle: recognize revenue to show the transfer of promised goods or services to customers, in an amount that reflects the consideration the company expects to be entitled to.

The principle is applied through five steps. Step 1: identify the contract with the customer. Step 2: identify the performance obligations, which are the distinct goods or services promised. Step 3: determine the transaction price. Step 4: allocate the transaction price to the performance obligations. Step 5: recognize revenue when (or as) each obligation is satisfied.

A good or service is distinct if the customer can benefit from it on its own (or with readily available resources) and it is separately identifiable within the contract. If it is not distinct, bundle it with other items. Example: a phone sold with a separate service plan usually has two obligations. Software that cannot work without a bundled customisation service may be one.

The transaction price is what the seller expects to receive. It includes fixed amounts and variable consideration such as discounts, rebates, returns and bonuses, estimated using the expected value or most likely amount. Both standards apply a constraint against a significant revenue reversal. Variable consideration is included only to the extent it is highly probable (IFRS 15) or probable (ASC 606) that a significant reversal will not occur. The two wordings are intended to have the same meaning. Allocation is based on relative standalone selling prices. If a standalone price is not observable, estimate it.

Timing depends on control. Revenue is recognized over time if the customer receives and consumes the benefit as you perform, the customer controls the asset as it is created, or the asset has no alternative use and you have an enforceable right to payment for performance completed to date. Otherwise revenue is recognized at a point in time, when control passes. For over-time contracts, measure progress by an output or input method (for example, costs incurred to total expected costs). This replaces the older percentage-of-completion versus completed-contract choice. Under the new standards, if the over-time criteria are met, you cannot use completed contract.

Analysts also watch contract balances. A contract asset arises when revenue is recognized before the right to payment is unconditional. A contract liability (deferred or unearned revenue) arises when cash is received before performance. Costs to obtain a contract (such as sales commissions) are capitalized if incremental and expected to be recovered, then amortized. Principal versus agent matters too: a principal reports revenue gross, an agent reports only its net fee.

Key formulas to remember

Core principle
Revenue = consideration expected × transfer of control to customer
Recognize when (or as) control of the good or service passes to the customer.
Five steps
Contract → Performance obligations → Transaction price → Allocate → Recognize
Memorize the order. Exam items often ask which step an action belongs to.
Allocation of transaction price
Allocated price(i) = Transaction price × [SSP(i) ÷ Σ SSP]
SSP is standalone selling price. Use estimates if no observable price exists.
Over-time progress (input method)
Progress % = Costs incurred to date ÷ Total expected costs
Cumulative revenue = progress % × transaction price. Period revenue = cumulative revenue − revenue already recognized.
Contract position
Revenue recognized > cash billed → contract asset; cash received > revenue recognized → contract liability
Contract liability is also called deferred or unearned revenue.
Principal vs agent
Principal: gross revenue. Agent: net fee or commission
Test is whether the entity controls the good or service before it passes to the customer.

How to solve Revenue Recognition (IFRS 15 and ASC 606) questions

Work through the five steps in order, but only as far as the question needs. Most items test one step.

  1. 1Identify what is asked: timing of revenue, amount of revenue, or analysis of quality.
  2. 2Decide the performance obligations. Ask if each item is distinct. If not, bundle it.
  3. 3Find the transaction price, including variable consideration. Remove amounts the seller is not entitled to keep, such as expected refunds.
  4. 4If there are several obligations, allocate the price using relative standalone selling prices.
  5. 5Decide over time or point in time using the three over-time criteria. If none apply, use point in time at transfer of control.
  6. 6For over-time contracts, compute progress with costs incurred ÷ total expected costs, then cumulative revenue less prior revenue.
  7. 7Check the balance sheet effect: contract asset, contract liability or receivable.
  8. 8Eliminate two options by testing them against the control principle and the allocation weights.

Quickest way: Weights, then timing

When to use it: Use for allocation and over-time calculations when you have about 90 seconds.

  1. For allocation, compute each SSP share as SSP ÷ total SSP, then multiply by the price.
  2. Sanity check: allocated amounts must add up to the transaction price.
  3. For over-time revenue, take progress % × price for the cumulative figure, then subtract earlier revenue.
  4. Options are listed smallest to largest, so estimate roughly first and discard options that are far off.
  5. For conceptual items, ask one question: has control transferred?

Common mistakes in Revenue Recognition (IFRS 15 and ASC 606)

  • Allocating the discount to only one item

    Students assume a bundle discount belongs to the item that looks cheaper.

    Fix: Allocate on relative SSP so the discount is spread across all obligations, unless the standard's specific criteria show it belongs to some of them.

  • Allocating by contract list prices instead of standalone selling prices

    The contract shows prices, so they look usable.

    Fix: Always use SSP. Contract prices matter only if they equal SSP.

  • Using completed contract when over-time criteria are met

    Old notes presented a choice between percentage of completion and completed contract.

    Fix: Under IFRS 15 and ASC 606, if the over-time criteria are met you recognize over time. Otherwise it is a point in time.

  • Reporting cumulative revenue as the period's revenue

    Students stop after progress % × price.

    Fix: Subtract revenue recognized in earlier periods to get the current period amount.

  • Recognizing revenue when cash is received

    Cash feels like proof of a sale.

    Fix: Cash received before performance is a contract liability. Revenue follows transfer of control.

  • Reporting gross revenue as an agent

    Students focus on the total customer payment.

    Fix: If the entity does not control the good or service before transfer, report only the net fee or commission.

Worked examples

Example 1

A company sells a machine and a two-year maintenance package to a customer for a total of $110,000. The standalone selling prices are $100,000 for the machine and $20,000 for the maintenance. How much of the transaction price is allocated to the machine?

Show the solution
  1. Both items are distinct, so there are two performance obligations.
  2. Total standalone selling price = 100,000 + 20,000 = $120,000.
  3. The bundle discount is 120,000 − 110,000 = $10,000. It is spread across both obligations in proportion to SSP, not given to one item.
  4. Machine share = 100,000 ÷ 120,000 = 0.8333.
  5. Allocated to machine = 110,000 × 0.8333 = $91,667 (rounded). Same result: 100,000 less its share of the discount, 10,000 × 0.8333 = 8,333, gives $91,667.
  6. Check: maintenance = 110,000 × 20,000 ÷ 120,000 = $18,333 (rounded), which is 20,000 less its discount share of $1,667. Total = $110,000.

Answer: About $91,667 is allocated to the machine, recognized when control transfers. About $18,333 goes to maintenance, recognized over the two years. The $10,000 bundle discount is spread across both obligations in proportion to their standalone selling prices.

Example 2

A contractor signs a $5,000,000 contract that meets the over-time criteria. Total expected costs are $4,000,000. Costs incurred are $1,000,000 in Year 1 and $1,800,000 in Year 2 (cumulative $2,800,000 at the end of Year 2). Using the cost-to-cost input method, what revenue is recognized in Year 2?

Show the solution
  1. Year 1 progress = 1,000,000 ÷ 4,000,000 = 25%.
  2. Year 1 revenue = 25% × 5,000,000 = $1,250,000.
  3. Year 2 cumulative progress = 2,800,000 ÷ 4,000,000 = 70%.
  4. Cumulative revenue at end of Year 2 = 70% × 5,000,000 = $3,500,000.
  5. Year 2 revenue = 3,500,000 − 1,250,000 = $2,250,000.

Answer: Revenue recognized in Year 2 is $2,250,000.

Exam tips

  • Questions are three-option and standalone. Start by deciding whether the item tests timing, amount or analysis, then eliminate options that contradict control transfer.
  • Do the allocation maths with fractions of total SSP. Check that your parts add up to the price.
  • Remember that cumulative minus prior revenue gives the period figure. Wrong options often show the cumulative amount.
  • Expect red-flag items: receivables growing faster than revenue, or revenue growing much faster than operating cash flow, aggressive variable consideration estimates, early recognition, and gross reporting where net applies.
  • Unless a question says US GAAP, assume IFRS. The five steps are the same under both.

Practice questions from Analyzing Income Statements

Revenue Recognition (IFRS 15 and ASC 606) in other exams

The same ground in other exams, if you are preparing for more than one or want another angle on it.

Revenue Recognition (IFRS 15 and ASC 606): frequently asked questions

What are the five steps of revenue recognition under IFRS 15?

Identify the contract with the customer, identify the performance obligations, determine the transaction price, allocate the price to the obligations, and recognize revenue when or as each obligation is satisfied. ASC 606 uses the same five steps.

How do you allocate the transaction price to performance obligations?

Use relative standalone selling prices. Divide each item's SSP by the total SSP and multiply by the transaction price. If no observable SSP exists, estimate it.

Is percentage of completion vs completed contract still tested?

Think in terms of over time versus point in time. If the over-time criteria are met, revenue is recognized as progress is made, using an output or input method. If not, revenue is recognized when control transfers.

What revenue recognition red flags should analysts watch?

Receivables rising faster than revenue, and revenue rising faster than operating cash flow, large contract assets, aggressive estimates of variable consideration, early recognition at period end, and gross reporting by an entity that acts as an agent. These signal possible earnings management.