Financial Reporting · Reporting financial performance
IFRS 15 Revenue from Contracts with Customers: The Five-Step Model
Updated 11 October 2026 · Fact-checked
IFRS 15 says you recognise revenue when a performance obligation is satisfied, at the amount you expect to be entitled to. You work through five steps: identify the contract, identify the performance obligations, set the transaction price, allocate it, then recognise revenue over time or at a point in time.
Understand IFRS 15 Revenue from Contracts with Customers
Revenue is usually the largest number in the statement of profit or loss. IFRS 15 gives one model to decide how much to record and when. The core idea is simple: revenue follows the transfer of control of goods or services to the customer, not the receipt of cash or the sending of an invoice.
The model has five steps. Step 1: identify the contract. Step 2: identify the performance obligations, which are the distinct promises to transfer goods or services. Step 3: determine the transaction price. Step 4: allocate that price to each obligation. Step 5: recognise revenue as each obligation is satisfied.
A promise is distinct if the customer can benefit from it on its own or with readily available resources, and it is separately identifiable from other promises in the contract. A phone sold with a year of airtime is typically two obligations. Each is allocated a share of the price using stand-alone selling prices, which are the prices you would charge if you sold each item separately. This is a relative split, so any discount is spread across the obligations.
Revenue is recognised over time if one of three conditions is met: the customer receives and consumes the benefit as you perform; your performance creates or enhances an asset the customer controls; or your performance creates an asset with no alternative use to you and you have an enforceable right to payment for work done to date. Otherwise it is recognised at a point in time, when control passes. Indicators of control passing include a present right to payment, legal title, physical possession, risks and rewards, and customer acceptance.
Two further ideas are examined often. A principal controls the goods or service before it passes to the customer and reports revenue gross. An agent arranges for another party to provide it and reports only its fee or commission. Also, costs to obtain a contract (such as incremental sales commission) and costs to fulfil a contract can be capitalised in some cases and then amortised as revenue is recognised.
Key rules to remember
- Five steps
- Contract → Performance obligations → Transaction price → Allocate → Recognise when satisfied
- Use this as your answer structure in any written question.
- Allocation of transaction price
- Allocated price = Stand-alone selling price of item ÷ Total of stand-alone selling prices × Transaction price
- Gives a relative split, so any discount is shared across all obligations.
- Over time: percentage of completion (input method)
- Revenue to date = Costs incurred to date ÷ Total expected costs × Transaction price
- Revenue for the year = revenue to date − revenue recognised in earlier years. Use only when progress is measured by costs.
- Agent revenue
- Agent revenue = Commission or fee only
- Gross amounts collected for the principal are not agent revenue.
- Contract balances
- Contract asset = right to consideration not yet unconditional; Receivable = unconditional right; Contract liability = payment received before performance
- Receivable arises when only the passage of time is needed before payment is due.
- Variable consideration
- Estimate using expected value or most likely amount, and include only if a significant reversal is highly unlikely
- This constraint limits how much variable revenue you can recognise.
How to solve IFRS 15 Revenue from Contracts with Customers questions
Use the same order every time. It keeps you from missing a step and earns method marks in written answers.
- 1Read the scenario and identify the contract and the customer. Note any dates and payment terms.
- 2List every promise made. Decide which are distinct and so form separate performance obligations.
- 3Find the transaction price. Adjust for variable consideration, discounts and any significant financing component if given.
- 4Allocate the price to each obligation using relative stand-alone selling prices. Do not allocate if there is only one obligation.
- 5Decide for each obligation: over time (check the three criteria) or point in time (check when control passes).
- 6Calculate revenue for the reporting period. For over time, use the stated measure of progress and deduct revenue already recognised.
- 7Record the entries: receivable, contract asset or contract liability, and any contract costs. State the amounts for the statement of profit or loss and financial position.
Quickest way: Table-free speed routine for objective questions
When to use it: Use in Section A and Section B objective questions, where you have about two minutes per question and only the final answer scores.
- Ask first: is it one obligation or several? If one, skip allocation.
- If several, add the stand-alone prices, then multiply each obligation's share by the actual price charged.
- Ask: has control passed by the year end? If yes, recognise that obligation in full. If it is over time, work out the fraction complete.
- For principal versus agent, ask who controls the item before the customer gets it and who sets the price. If it is not you, take the commission only.
- Check that the answer is revenue for the period, not revenue to date, and then choose the option.
Common mistakes in IFRS 15 Revenue from Contracts with Customers
Recognising revenue when cash is received or the invoice is raised.
Students link revenue to the cash cycle from earlier studies.
Fix: Ask only when control transferred or the obligation was satisfied. Cash received early is a contract liability.
Allocating the discount to one item only.
The scenario sometimes describes a discount on one product, so students apply it there.
Fix: Unless the question gives evidence that the discount relates to specific items, spread it using relative stand-alone selling prices.
Reporting revenue to date as revenue for the year on long contracts.
Students stop after the cumulative calculation.
Fix: Always subtract revenue recognised in prior years to get the current year figure.
Showing gross revenue for an agent.
The agent handles the full cash from the customer.
Fix: Test control. If you do not control the goods before transfer, report commission only and treat the rest as owed to the principal.
Treating a warranty as a separate obligation when it is only an assurance of quality.
Students see the word warranty and split the price.
Fix: A warranty that only assures the product meets agreed specifications is accounted for under IAS 37. A warranty the customer can buy separately, or that provides an additional service, is a separate obligation.
Expensing all contract costs or capitalising all of them.
The rules on contract costs are remembered loosely.
Fix: Capitalise incremental costs of obtaining a contract if they are expected to be recovered. Capitalise fulfilment costs only if they are not within another standard, relate directly to the contract and generate resources to satisfy future obligations. Amortise them as revenue is recognised.
Worked examples
Example 1
On 1 October 20X1, Kiran Ltd sold a machine and 12 months of maintenance to a customer for a total of $9,000. Stand-alone selling prices are machine $9,000 and maintenance $3,000. The machine was delivered and accepted on 1 October 20X1. Kiran's year end is 31 December 20X1. Calculate revenue for the year ended 31 December 20X1.
Show the solution
- Two distinct obligations: the machine and the maintenance service.
- Total stand-alone selling prices = 9,000 + 3,000 = $12,000. The price charged is $9,000.
- Machine allocation = 9,000 ÷ 12,000 × 9,000 = $6,750.
- Maintenance allocation = 3,000 ÷ 12,000 × 9,000 = $2,250.
- The machine is a point-in-time obligation. Control passed on 1 October, so $6,750 is recognised in full.
- Maintenance is over time, as the customer consumes the benefit evenly. Three months of 12 have passed: 2,250 × 3 ÷ 12 = $562.50.
- Total revenue = 6,750 + 562.50 = $7,312.50.
Answer: Revenue for the year ended 31 December 20X1 is $7,312.50. The remaining $1,687.50 of maintenance is deferred as a contract liability.
Example 2
Bhatt Co has a fixed-price contract for $800,000 to build a facility on the customer's land. Costs to date are $300,000 at the end of year 1 and $540,000 at the end of year 2, and total expected costs are $600,000 at the end of year 2. At the end of year 1, total expected costs were $500,000. Progress is measured by costs incurred. Calculate revenue and profit for year 2.
Show the solution
- The customer controls the asset as it is built on its land, so revenue is recognised over time.
- Year 1 progress = 300,000 ÷ 500,000 = 60%. Year 1 revenue = 60% × 800,000 = $480,000.
- Year 2 progress = 540,000 ÷ 600,000 = 90%. Revenue to date = 90% × 800,000 = $720,000.
- Year 2 revenue = 720,000 − 480,000 = $240,000.
- Year 2 costs = 540,000 − 300,000 = $240,000.
- Year 2 profit = 240,000 − 240,000 = $0.
Answer: Year 2 revenue is $240,000, costs are $240,000 and profit is nil. The change in estimated total costs in year 2 is reflected in the cumulative calculation.
Exam tips
- In Section C, name each step of the model as you use it. Markers award marks for identifying performance obligations and the basis of allocation.
- In objective questions, read the last sentence first so you know whether the answer is revenue for the year, revenue to date or a balance sheet figure.
- Practise the three over-time criteria until you can recite them. Scenario questions are built to test one of them.
- For principal versus agent and warranties, write one sentence of reasoning (control, or assurance versus service) before the number. It protects your method marks.
- Show contract asset, receivable and contract liability clearly. Do not combine them in the statement of financial position.
Practice questions from Reporting financial performance
- Which statement about the presentation of comparative information under IAS 1 is correct?
- For the year ended 31 March 20X6 Kestrel Co reported profit before tax of $400,000 after charging an inventory write-down of $60,000 and a o…
- Zenith Co had 4,000,000 $1 ordinary shares in issue at 1 January 20X5. On 1 April 20X5 it made a 1 for 4 rights issue at $2.00 per share whe…
- Orion Co's financial statements for the year ended 30 June 20X6 show: revenue $2,000,000, profit for the year $240,000, other comprehensive …
IFRS 15 Revenue from Contracts with Customers in other exams
The same ground in other exams, if you are preparing for more than one or want another angle on it.
IFRS 15 Revenue from Contracts with Customers: frequently asked questions
What are the five steps of IFRS 15?
Identify the contract, identify the performance obligations, determine the transaction price, allocate the price to the obligations, and recognise revenue when each obligation is satisfied. Learn them in this order. It also works as a structure for written answers.
How do I allocate the transaction price under IFRS 15?
Use relative stand-alone selling prices. Divide each item's stand-alone price by the total of all stand-alone prices, then multiply by the actual transaction price. Any discount is therefore spread across all obligations.
How do I decide between over time and point in time?
Test the three over-time criteria. If none is met, revenue is recognised at a point in time, when control passes to the customer. Look for indicators such as legal title, possession, acceptance and a present right to payment.
How do I know if I am a principal or an agent?
Ask whether you control the good or service before it is transferred to the customer. If you do, you are a principal and report revenue gross. If you only arrange the sale for another party, you are an agent and report your commission.