IFRS 15CoreSaaS / Software

Multiple performance obligations and price allocation

IFRS 15 · Revenue from Contracts with Customers

Applies to: All business models

In plain words

A software deal often bundles platform access with training or extra modules for one price. IFRS 15 asks how much revenue belongs to each part. First, the distinct promises are identified. Then the total price is allocated in proportion to each item's standalone selling price, not according to how the invoice happens to label it. Each part is recognised when delivered: training when given, platform access over the subscription term.

Why it matters

Splitting a bundled deal into its distinct performance obligations and allocating price by standalone selling price (SSP) rather than by contract line items changes both how much revenue is recognized and when: allocating by invoice labels instead of SSP can shift material amounts of revenue between periods with very different delivery patterns (immediate training versus multi-year access), directly distorting quarter-to-quarter revenue trends that investors track closely.

Diagnostic questions

Which promises in the bundled contract (platform access, training, modules, support) are capable of being distinct and separately identifiable? Are standalone selling prices for each element observable from actual separate sales, or must they be estimated using an adjusted market or cost-plus approach? Is the bundle discount being allocated proportionally across all distinct obligations based on relative SSP, rather than assigned entirely to one invoice line?

Recognition

  1. List every distinct promise in the contract (platform access, training, premium modules, support tiers).
  2. Apply the distinctness test to each: can the customer benefit from it alone or with readily available resources, and is it separately identifiable from other promises in the contract?
  3. Combine any promises that fail the test into a single performance obligation.
  4. Determine or estimate the standalone selling price for each distinct obligation using observable prices where sold separately, or an adjusted market, cost-plus, or residual approach where not.
  5. Allocate the total transaction price to each obligation in proportion to relative SSPs, not in proportion to how the contract happens to itemize pricing.
  6. Recognize revenue for each obligation as it is satisfied: platform access over time, training on delivery, premium modules on activation or over their access period.

Measurement

Estimate SSP using observable stand-alone sale prices as the primary evidence; where a module is never sold on its own, use an adjusted market assessment (what comparable customers would pay), expected cost plus a reasonable margin, or the residual approach (only where SSP is highly variable or uncertain and observable for other elements). Reassess SSP estimates periodically as pricing practices evolve, and apply the allocation methodology consistently across similar contracts to avoid selective outcomes.

Presentation & disclosure

Disclose: (1) the performance obligations identified in typical bundled contracts; (2) the methods and significant judgments used to estimate SSP, especially for elements never sold separately; (3) the allocation methodology applied; (4) disaggregated revenue by obligation type where material; (5) any changes in SSP estimation methodology period over period and their effect.

Common mistakes

  • Treating an entire bundle as a single performance obligation without testing each promise for distinctness
  • allocating revenue based on the price the customer sees on each invoice line rather than relative SSP
  • using a discount embedded in one line item to distort the allocation instead of spreading any overall bundle discount proportionately across all obligations
  • failing to update SSP estimates as list prices or discounting practices change
  • using the residual method as a default shortcut when SSP for the module is actually estimable through market or cost-based approaches.

Simple example

A contract bundles platform access (SSP SAR 180,000) and one-time training (SSP SAR 40,000) for a total contract price of SAR 200,000 (a SAR 20,000 bundle discount). Total SSP is SAR 220,000, so access is allocated 180,000/220,000 x 200,000 = SAR 163,636 and training is allocated 40,000/220,000 x 200,000 = SAR 36,364.
Journal entry at contract inception (invoiced, access not yet begun, training not yet delivered):
Dr Contract asset / Accounts receivable 200,000
Cr Contract liability - access 163,636
Cr Contract liability - training 36,364

When training is delivered in month one:
Dr Contract liability - training 36,364
Cr Revenue - training 36,364

Platform access is then recognized straight-line over the 12-month term (SAR 13,636 per month):
Dr Contract liability - access 13,636
Cr Revenue - subscription 13,636

Professional judgment

SSP estimation for modules or services that are never sold on a standalone basis is inherently judgmental and one of the most frequently challenged areas in SaaS revenue audits; the chosen method (adjusted market, cost-plus, or residual) should be documented with supporting evidence and applied consistently, not selected deal-by-deal to achieve a preferred allocation. A second grey area is deciding when a bundle discount should be allocated proportionately across all obligations versus entirely to one obligation, the latter is only appropriate when observable evidence shows the discount relates specifically to that element.

Source basis

IFRS 15 · Revenue from Contracts with Customers

Paragraph references

IFRS 15.22IFRS 15.27–29IFRS 15.79IFRS 15.81–83

Verified against the official standard texts used in the IFRS Expert skill.

IFRS 15 Revenue from Contracts with Customers
Issued: 28 May 2014 · Effective: 1 January 2018

Related issues

Educational and navigation content only. Not professional advice. Does not reproduce official IFRS/IAS text. Consult the authoritative standards and qualified professionals; professional judgment may still be required.