IFRS 15Live — v5.0

IFRS 15 Implementation Guide

The five-step revenue recognition model — from contract identification through performance obligation satisfaction — implemented as a deterministic engine. Variable consideration, contract modifications, principal-vs-agent, and multi-element arrangements all handled programmatically. No judgement calls embedded in spreadsheet formulas. Live today on the same engine as IFRS 16.

IFRS 15 is live today, alongside IFRS 16, ASC 842 and ASC 606. Sign up and upload your first revenue contract.

Standard
IFRS 15 Revenue from Contracts with Customers
Model
Five-step deterministic engine
Status
Live — v5.0

Step 1 — Identify the contract

A contract exists under IFRS 15 when it has commercial substance, the parties have approved it, rights and payment terms can be identified, and collection of substantially all consideration is probable. Ledger Layer validates contract eligibility before any recognition begins — incomplete contracts are flagged for review, not silently processed.

How we do it

The engine evaluates each of the five existence criteria (IFRS 15.9) against the contract data you provide. Contracts that fail any criterion are held in a "pending" state until the condition is met. Contract combination rules (IFRS 15.17) are applied automatically when contracts are entered within the same timeframe with the same customer and meet the combination indicators.

  • Contract approval and commitment criteria (IFRS 15.9(a))
  • Commercial substance assessment — identifiable cash flow change
  • Collection probability evaluation against payment terms
  • Rights and payment terms identification
  • Contract combination rules — automatic detection (IFRS 15.17)
  • Pending state for contracts that fail existence criteria

Step 2 — Identify performance obligations

Each distinct promise to transfer a good or service — or a series of distinct goods or services that are substantially the same and have the same pattern of transfer — is a separate performance obligation. Ledger Layer identifies obligations using both criteria: capable of being distinct (the customer can benefit from it on its own or with readily available resources) and distinct within the context of the contract.

How we do it

The engine evaluates the distinct criterion at two levels. First, can the customer benefit from the good or service individually or with other readily available resources? Second, is the promise separately identifiable from other promises in the contract — or are goods/services highly interrelated, significantly modified, or highly interdependent? Non-distinct items are bundled into a combined performance obligation. The assessment is logged per obligation.

  • Distinct good or service criterion — capable of being distinct (IFRS 15.27(a))
  • Distinct within the contract — separately identifiable (IFRS 15.27(b))
  • Series of distinct goods/services with same transfer pattern (IFRS 15.22(b))
  • Bundling assessment for non-distinct items — integration, modification, interdependence
  • Principal vs agent determination — control before transfer
  • Obligation identification logged in contract audit trail

Step 3 — Determine the transaction price

The transaction price is the amount of consideration the entity expects to receive in exchange for transferring goods or services. It includes fixed amounts, variable consideration (subject to the constraint), significant financing components, non-cash consideration, and consideration payable to the customer.

How we do it

Variable consideration is estimated using either the expected value method (probability-weighted) or the most likely amount method — whichever better predicts the outcome. The variable consideration constraint limits inclusion to amounts where it is highly probable that a significant revenue reversal will not occur. Ledger Layer applies the constraint per performance obligation or per contract as appropriate, and reassesses at each reporting date.

  • Fixed and variable consideration identification and separation
  • Expected value method — probability-weighted estimate across scenarios
  • Most likely amount method — single most likely outcome
  • Variable consideration constraint — highly probable of no significant reversal (IFRS 15.56–57)
  • Significant financing component adjustment — time value of money
  • Non-cash consideration — fair value at contract inception
  • Consideration payable to the customer — reduction of transaction price

Step 4 — Allocate the transaction price

The transaction price is allocated to each performance obligation based on relative standalone selling prices. If an observable standalone selling price exists, it is used directly. Otherwise, Ledger Layer supports three estimation methods: adjusted market assessment, expected cost plus margin, and residual approach (when the selling price is highly variable or uncertain).

How we do it

Allocation is performed proportionally based on standalone selling prices (IFRS 15.74). Discounts are allocated to all obligations unless observable evidence indicates the discount relates to a specific subset. Variable consideration is allocated to a specific obligation only when it relates entirely to that obligation and the allocation depicts the amount the entity expects to receive. The allocation is locked at contract inception and only updated for contract modifications.

  • Standalone selling price estimation — observable price preferred
  • Adjusted market assessment approach (IFRS 15.79(a))
  • Expected cost plus margin approach (IFRS 15.79(b))
  • Residual approach — when price is highly variable or uncertain (IFRS 15.79(c))
  • Proportional allocation based on relative standalone prices (IFRS 15.74)
  • Discount allocation — all obligations or specific subset
  • Variable consideration allocation to specific obligations (IFRS 15.85)

Step 5 — Recognise revenue

Revenue is recognised when (or as) each performance obligation is satisfied — either over time or at a point in time. Over-time recognition applies when the customer simultaneously receives and consumes the benefits, the entity creates an asset with no alternative use and has an enforceable right to payment, or the entity's performance creates or enhances an asset the customer controls.

How we do it

For over-time obligations, Ledger Layer supports both input methods (cost-to-cost, labour hours) and output methods (units delivered, milestones, surveys of work performed). Progress is measured each reporting period and revenue is updated accordingly. For point-in-time obligations, the engine evaluates control transfer indicators: present right to payment, legal title, physical possession, significant risks and rewards, and customer acceptance.

  • Over-time recognition — three qualifying criteria (IFRS 15.35)
  • Input methods — cost-to-cost, labour hours, machine hours
  • Output methods — units delivered, milestones, surveys of performance
  • Point-in-time recognition — five control transfer indicators (IFRS 15.38)
  • Contract asset recognition when performance exceeds billing
  • Contract liability recognition when billing exceeds performance
  • Revenue reversal constraints reassessed each reporting period

Contract modifications

Contract modifications — changes in scope, price, or both — require careful assessment under IFRS 15. A modification is either a separate contract (additional distinct goods at standalone selling price), a termination-and-creation of a new contract, or a continuation with cumulative catch-up adjustment.

How we do it

Ledger Layer evaluates each modification against the separate contract criteria (IFRS 15.20). If the modification adds distinct goods or services at their standalone selling prices, it is accounted for as a separate contract. Otherwise, the engine determines whether the remaining goods or services are distinct from those already transferred — if so, it terminates the old contract and creates a new one; if not, it applies a cumulative catch-up adjustment. All modification assessments are logged.

  • Separate contract test — distinct goods at standalone price (IFRS 15.20)
  • Termination-and-creation approach for remaining distinct goods
  • Cumulative catch-up adjustment for remaining non-distinct goods
  • Blended approach when modification includes both distinct and non-distinct items
  • Variable consideration reassessment at modification date
  • Pre- and post-modification revenue schedules preserved for audit

Disclosure requirements

IFRS 15 requires disaggregation of revenue, information about contract balances, remaining performance obligations, and significant judgements. Ledger Layer generates disclosure data from the same engine-verified contract records that produced your journal entries — no manual extraction, no reconciliation gap.

How we do it

The disclosure pack includes revenue disaggregated by type, geography, timing (point-in-time vs over-time), and contract duration. Contract balance rollforwards (contract assets and liabilities with opening, additions, satisfactions, and closing) are computed automatically. Remaining performance obligations are reported with expected timing of satisfaction. All significant judgements — method of progress measurement, variable consideration estimation, principal/agent determination — are captured in the contract record.

  • Revenue disaggregation by type, geography, timing, and duration
  • Contract asset and liability rollforward schedules
  • Remaining performance obligations with expected satisfaction timing
  • Significant judgements disclosure — timing, variable consideration, principal/agent
  • Costs to obtain and fulfil contracts — capitalisation and amortisation
  • Practical expedient disclosures where elected
  • Transaction price allocated to unsatisfied obligations (IFRS 15.120)

Why revenue recognition needs a deterministic engine

Judgements need controls

IFRS 15 involves more judgement than lease accounting — variable consideration estimates, standalone selling price allocation, over-time progress measurement. These judgements need to be captured, versioned, and auditable. A spreadsheet buries them in formulas.

Contract modifications compound

A single contract can be modified multiple times. Each modification can change the transaction price, reallocate to obligations, and trigger catch-up adjustments. Tracking this in Excel across hundreds of contracts is how revenue misstatements happen.

Dual standard matters

If you report under both IFRS 15 and ASC 606, the divergences are subtle but material — licenses of IP, disaggregation requirements, interim disclosures. One engine, two outputs, zero manual reconciliation.

Disclosures from the same source

Revenue disaggregation, contract balance rollforwards, and remaining performance obligations should come from the same data as your journal entries. Ledger Layer generates both from one verified source.

IFRS 15 is live today

Same deterministic engine, same audit controls, same infrastructure as your lease accounting. Sign up and upload your first revenue contract.

Get started
← ASC 842 GuideASC 606 Guide →