What you'll learn

  • How to audit each of the five IFRS 15 steps, with the specific procedures that apply at each stage
  • How to evaluate variable consideration, contract modifications, and principal-versus-agent determinations (the three areas that produce the most errors)
  • Where to focus when the entity has multi-element arrangements or long-term contracts
  • What reviewers and regulators check on IFRS 15 files (IFRS 15.9-13, IFRS 15.22-30, IFRS 15.46-72, IFRS 15.73-86, IFRS 15.31-45)

The client recognises €12M of revenue on a single contract that bundles equipment, installation, and a three-year maintenance agreement. Everything hits the income statement when the equipment ships. The maintenance component is a separate performance obligation. So is the installation, if the customer could hire someone else to do it. Two of the five steps in the revenue model were skipped entirely, and the revenue line is wrong.

IFRS 15 requires entities to recognise revenue by identifying the contract, identifying separate performance obligations within it, determining the transaction price, allocating that price to each obligation, and recognising revenue as each obligation is satisfied (IFRS 15.9-45). For auditors, each step is a potential failure point with its own audit procedures and its own set of common errors.

Table of contents

  1. Step 1: identify the contract (IFRS 15.9-13)
  2. Step 2: identify performance obligations (IFRS 15.22-30)
  3. Step 3: determine the transaction price (IFRS 15.46-72)
  4. Step 4: allocate the transaction price (IFRS 15.73-86)
  5. Step 5: recognise revenue (IFRS 15.31-45)
  6. Contract modifications
  7. Principal versus agent
  8. Worked example: Hendriks Techniek B.V.
  9. Practical checklist
  10. Common mistakes
  11. Related content

For a visual walkthrough of the five-step model with decision trees at each stage, the ciferi IFRS 15 revenue flowchart maps the standard's requirements into an audit-usable decision sequence. The rest of this post provides the procedures and judgment calls behind each decision point.

Step 1: identify the contract (IFRS 15.9-13)

IFRS 15.9 lists five criteria for a contract to exist: both parties have approved the contract, each party's rights regarding goods or services are identifiable, payment terms are identifiable, the contract has commercial substance, and it is probable that the entity will collect the consideration. All five must be met. If any criterion is not met, IFRS 15.15 requires the entity to continue assessing whether the criteria are subsequently met.

The audit procedure at this step is contract inspection. Select a sample of revenue transactions and inspect the underlying contracts. For each contract, verify that all five criteria in IFRS 15.9 are satisfied. Pay particular attention to the collectability criterion (IFRS 15.9(e)). This is not a test of whether the customer will pay in full. It is a test of whether it is probable that the entity will collect the consideration to which it will be entitled in exchange for the goods or services that will be transferred. If the entity gives an implicit price concession (it expects to accept less than the contractual price), the transaction price is the amount the entity expects to collect, not the contractual amount.

Watch for oral agreements, framework agreements, and purchase orders that are treated as contracts. IFRS 15.10 explicitly permits oral contracts to meet the definition. The audit evidence is different (email confirmations, delivery records, payment history) but the recognition criteria are the same.

For entities with high-volume, low-value transactions (retail, e-commerce, subscriptions), auditing individual contracts is impractical. Test the contract identification process instead: verify that the entity's systems and controls correctly identify when a contract exists, capture the contract terms, and initiate revenue recognition at the right point.

Step 2: identify performance obligations (IFRS 15.22-30)

A performance obligation is a promise to transfer a distinct good or service (or a bundle of goods or services) to the customer. IFRS 15.22 requires the entity to identify all performance obligations at contract inception.

A good or service is distinct under IFRS 15.27 if two conditions are met. First, the customer can benefit from the good or service on its own or together with other readily available resources (capable of being distinct). Second, the entity's promise to transfer the good or service is separately identifiable from other promises in the contract (distinct within the context of the contract).

The audit procedure is to evaluate management's identification of performance obligations for a sample of contracts. For multi-element arrangements, challenge whether each element meets both conditions in IFRS 15.27. Common questions: could the customer buy the installation service from a third party? (If yes, installation is likely a separate obligation.) Is the customisation so significant that the goods and services are highly interrelated and form a single combined output? (If yes, they may not be distinct within the context of the contract under IFRS 15.29.)

The most frequent error at this step is failure to identify separate obligations. Entities bundle everything into one obligation because it simplifies accounting. This is wrong when the elements are genuinely distinct. A contract for software plus implementation plus ongoing support almost always contains at least two performance obligations (software/implementation may be combined, but ongoing support is separate).

The ciferi IFRS 15 revenue flowchart includes a decision tree specifically for the "distinct within the context of the contract" test at IFRS 15.29, covering the interdependence, modification, and integration indicators.

Step 3: determine the transaction price (IFRS 15.46-72)

The transaction price is the amount of consideration the entity expects to be entitled to in exchange for transferring goods or services. IFRS 15.47 lists the components to consider: variable consideration, constraining estimates of variable consideration, the existence of a significant financing component, non-cash consideration, and consideration payable to the customer.

Variable consideration (IFRS 15.50-54) is the most audit-intensive area. It includes discounts, rebates, refunds, credits, incentives, performance bonuses, penalties, and price concessions. The entity must estimate the amount using either the expected value method (probability-weighted) or the most likely amount method, whichever better predicts the amount to which the entity will be entitled.

IFRS 15.56 imposes a constraint: variable consideration is included in the transaction price only to the extent that it is highly probable that a significant reversal will not occur. This constraint prevents entities from recognising revenue based on optimistic estimates that are likely to be reversed in future periods.

Audit procedures on variable consideration include inspecting contract terms for discount clauses, rebate structures, penalty provisions, and bonus triggers. Compare the entity's estimate to historical data: if the contract includes a volume rebate of 5% above 10,000 units, and the customer purchased 12,000 units in the prior year, the rebate is likely to apply. Verify that the constraint under IFRS 15.56 has been applied. If the entity included a performance bonus that depends on meeting a target it has never met, the constraint is probably not satisfied.

For the significant financing component (IFRS 15.60-65), compare the payment terms to the transfer date. If the entity delivers in January and the customer pays in December, a financing component may exist. IFRS 15.63 provides a practical expedient: no adjustment is needed if the period between transfer and payment is one year or less.

Step 4: allocate the transaction price (IFRS 15.73-86)

When a contract has multiple performance obligations, the transaction price must be allocated to each obligation based on relative standalone selling prices (IFRS 15.73-74). The standalone selling price is the price at which the entity would sell the good or service separately.

IFRS 15.77 provides a hierarchy for estimating standalone selling prices when they are not directly observable. The adjusted market assessment approach looks at what a customer in the market would pay. The expected cost plus margin approach adds a reasonable margin to the entity's expected costs. The residual approach (IFRS 15.79) is permitted only when the standalone selling price is highly variable or uncertain.

Audit procedures at this step focus on the entity's method for determining standalone selling prices. For software companies that sell licences both bundled and separately, the standalone selling price is observable. For construction companies where installation is never sold separately, the entity must use one of the estimation methods. Verify the inputs to the estimation: cost data, comparable market prices, margin assumptions.

The most common error is applying a residual allocation to the performance obligation the entity wants to recognise first (because it makes the revenue recognition faster) rather than to the one whose standalone price is genuinely uncertain. Check whether the residual approach is justified under IFRS 15.79 by verifying that the selling price for that element is genuinely highly variable or uncertain.

Step 5: recognise revenue (IFRS 15.31-45)

Revenue is recognised when (or as) a performance obligation is satisfied by transferring the promised good or service to the customer. Transfer occurs when the customer obtains control.

IFRS 15.35 provides three criteria for determining whether control transfers over time: the customer simultaneously receives and consumes the benefits (common for services), the entity's performance creates or enhances an asset the customer controls, and the entity's performance does not create an asset with an alternative use and the entity has an enforceable right to payment for performance completed. If any one of these three criteria is met, revenue is recognised over time using an appropriate method (input or output). If none is met, revenue is recognised at a point in time when control transfers (IFRS 15.38).

Audit procedures at this step differ depending on the recognition pattern. For point-in-time recognition, verify that the indicators of control transfer in IFRS 15.38 are satisfied at the date revenue was recognised. Did the entity transfer physical possession? Did the customer accept the asset? Has the entity an enforceable right to payment? Did risks and rewards transfer? For delivery-based revenue, test the cut-off by examining shipments around the reporting date.

For over-time recognition, evaluate the input or output method used to measure progress. Input methods (costs incurred as a percentage of total expected costs) are common in construction. The audit risk is that estimated total costs are understated, inflating the percentage complete. Compare estimated costs to actual costs incurred to date, and compare estimated total costs to the original bid estimate. If costs are running 15% above the original estimate but the completion percentage hasn't changed, the estimate may be stale.

Contract modifications

IFRS 15.18-21 addresses contract modifications (changes in scope, price, or both). The accounting depends on whether the modification creates a new performance obligation at a standalone selling price. If it does, the modification is treated as a separate contract (IFRS 15.20). If it does not, the entity accounts for it either prospectively or as a cumulative catch-up adjustment, depending on the nature of the remaining goods or services (IFRS 15.21).

Audit risk concentrates on modifications that occur near the reporting date. A scope reduction agreed in December that reduces the transaction price should reduce recognised revenue in the current period. Entities sometimes defer the accounting for modifications until the amended contract is signed (which may be in January), resulting in revenue overstatement.

Test for completeness of contract modifications. Inquire of management, inspect correspondence with customers around the reporting date, review credit notes issued in the post-balance-sheet period, and compare the contract list at year-end to the list at a subsequent date. Any contracts that disappear from the list may have been modified or terminated.

Principal versus agent

IFRS 15.B34-B38 addresses the principal-versus-agent determination. A principal controls the good or service before it is transferred to the customer and recognises revenue at the gross amount. An agent arranges for another party to provide the good or service and recognises revenue at the net amount (the commission).

The indicators of control in IFRS 15.B37 include whether the entity is primarily responsible for fulfilling the promise, whether it has inventory risk, and whether it has discretion in establishing the price. No single indicator is determinative. The overall assessment of control before transfer is what matters.

This determination has no effect on profit. A principal and an agent recognise the same gross margin. But it has a material effect on revenue, which affects revenue-based metrics, covenants, regulatory thresholds, and size criteria.

Audit the determination by inspecting the contractual arrangements between the entity, the customer, and the supplier. If the entity never takes title to the goods, never bears inventory risk, and has no discretion over pricing, the entity is an agent. If the entity takes title, bears risk, and sets the price, it is a principal. Mixed indicators require judgment, and the entity should document its rationale under IFRS 15.B34.

Worked example: Hendriks Techniek B.V.

Hendriks Techniek B.V. is a Dutch industrial automation company with €45M revenue. The entity enters into a contract with a manufacturing client for €2,400,000, comprising delivery and installation of an automated packaging line (€1,800,000) and a two-year maintenance agreement (€600,000). Performance materiality is €450,000.

  1. The auditor identifies the contract. The contract is signed by both parties, specifies the goods and services, states payment terms (40% on delivery, 30% on installation completion, 30% in monthly instalments over the maintenance period), has commercial substance, and the customer has a strong credit history. All five criteria in IFRS 15.9 are met.

    Documentation note: "Contract dated 14 March 2025 inspected. Five IFRS 15.9 criteria assessed: (a) both parties approved, signatures verified; (b) rights identifiable: equipment delivery, installation, 2-year maintenance; (c) payment terms per clause 7; (d) commercial substance, customer's production line depends on the equipment; (e) collectability probable, customer credit-checked, no history of default. Contract exists."

  2. The auditor identifies performance obligations. The packaging line and installation are assessed together. The installation requires specialist knowledge specific to the equipment. A third-party installer could not perform it without the entity's involvement. Under IFRS 15.29(a), the installation significantly modifies the equipment for the customer's specific production environment. The equipment and installation are not distinct within the context of the contract. They form a single performance obligation. The maintenance agreement is distinct: the customer could obtain maintenance from another provider, and the maintenance is not highly interrelated with the equipment delivery. Two performance obligations exist.

    Documentation note: "Two performance obligations identified. PO1: equipment plus installation, combined because installation not distinct within contract context per IFRS 15.29(a), specialist customisation required. PO2: two-year maintenance agreement, distinct because customer could obtain from third party, not interrelated with PO1. Management's allocation consistent with our assessment."

  3. The auditor determines the transaction price. The total contract price is €2,400,000. No variable consideration, no significant financing component (practical expedient in IFRS 15.63 applies as longest interval between payment and transfer is less than twelve months for equipment, and maintenance payments are monthly concurrent with service delivery), no non-cash consideration.

    Documentation note: "Transaction price: €2,400,000 fixed. No variable consideration per contract terms (no discounts, rebates, penalties, or bonuses). Financing component: practical expedient applied per IFRS 15.63. No non-cash consideration. No consideration payable to customer."

  4. The auditor reviews the allocation. Standalone selling prices: Hendriks sells comparable packaging lines with installation for €1,700,000-€1,900,000 (average €1,800,000 based on five comparable contracts inspected). Standalone maintenance contracts for similar equipment are sold at €320,000-€360,000 per year (average €340,000/year, so €680,000 for two years). Total standalone: €1,800,000 + €680,000 = €2,480,000. Allocation: PO1 = €2,400,000 x (€1,800,000/€2,480,000) = €1,741,935. PO2 = €2,400,000 x (€680,000/€2,480,000) = €658,065.

    Documentation note: "Allocation based on relative standalone selling prices per IFRS 15.74. Equipment+installation SSP: €1,800K (based on 5 comparable contracts in 2024-2025, range €1.7M-€1.9M, schedules inspected). Maintenance SSP: €680K (2 years at €340K/year, based on 4 standalone maintenance contracts inspected). Management's allocation: PO1 €1,742K, PO2 €658K. Verified, consistent with our calculation (rounding difference of €65 immaterial)."

  5. The auditor tests revenue recognition. PO1 (equipment and installation) transfers control at a point in time: when installation is complete and the customer accepts the packaging line. The acceptance certificate is dated 18 November 2025. Revenue of €1,742,000 recognised in November 2025. PO2 (maintenance) is satisfied over time as the customer simultaneously receives and consumes the benefits (IFRS 15.35(a)). Revenue recognised monthly: €658,065 / 24 months = €27,419 per month. Two months recognised in 2025 (November and December) = €54,838.

    Documentation note: "PO1: point-in-time recognition on 18 November 2025. Control transfer evidenced by signed customer acceptance certificate (inspected). Revenue: €1,742K. PO2: over-time recognition, straight-line monthly (IFRS 15.35(a), customer simultaneously receives and consumes maintenance benefit). Nov-Dec 2025: €54,838. Total 2025 revenue from this contract: €1,796,838. Contract asset/liability position verified. No unbilled receivable as 40% milestone payment (€960K) received on delivery."

Practical checklist

  1. For a sample of contracts, verify all five criteria in IFRS 15.9 are met before revenue is recognised. Focus on the collectability criterion (IFRS 15.9(e)) for new customers and customers with overdue balances.

  2. For multi-element contracts, evaluate the performance obligation identification by testing both conditions in IFRS 15.27. Challenge single-obligation treatment when the contract includes a service element (maintenance, support, implementation) alongside a goods element.

  3. Inspect contract terms for variable consideration (discounts, rebates, penalties, bonuses). Compare the entity's estimate to historical outcomes. Verify the constraint in IFRS 15.56 is applied to any variable component where reversal is reasonably possible.

  4. For allocated transaction prices, verify standalone selling prices against observable evidence (comparable sales, third-party pricing). Challenge the use of the residual approach unless the criteria in IFRS 15.79 are genuinely met.

  5. Test revenue recognition timing by inspecting evidence of control transfer. For point-in-time recognition: delivery documentation, customer acceptance, risk transfer. For over-time recognition: percentage of completion calculations, cost estimate accuracy, output measures.

  6. Test for completeness of contract modifications near the reporting date. Inspect post-year-end credit notes, contract amendments, and scope changes. Verify that modifications are accounted for under IFRS 15.18-21 in the correct period.

Common mistakes

  • Treating all elements of a multi-element contract as a single performance obligation. The FRC has flagged cases where entities bundled goods, installation, and multi-year support into one obligation because the contract was a "single arrangement." IFRS 15.22 requires assessment of each promise, not each contract.

  • Recognising variable consideration without applying the constraint. When an entity includes performance bonuses in the transaction price based on optimistic projections, and those bonuses are later reversed, the revenue line is overstated in the initial period. IFRS 15.56 requires inclusion only to the extent a significant reversal is highly probable to not occur.

  • Misclassifying principal and agent. Entities that act as intermediaries (purchasing goods from a supplier and reselling to a customer) sometimes recognise gross revenue when the indicators in IFRS 15.B37 point to agent treatment. The revenue effect can be material even though profit is unchanged.

Get practical audit insights, weekly.

No exam theory. Just what makes audits run faster.

No spam — we're auditors, not marketers.