Revenue Recognition for SaaS Companies
How IFRS 15 applies to every SaaS contract type — multi-element bundles, setup fees, usage-based pricing, professional services, free trials, discounts, and the judgements that determine when each euro is earned.
5 Key Takeaways From This Page
IFRS 15 applies to all Estonian OÜ using IFRS
IFRS 15 (Revenue from Contracts with Customers) has been effective since 2018 and applies to any Estonian company that reports under IFRS or that has investor or lender requirements specifying IFRS-compliant accounts. It replaced all previous revenue standards with a single comprehensive framework.
Every contract has one or more performance obligations
A performance obligation is a distinct promise to transfer a good or service to a customer. Identifying all the separate promises in a SaaS contract — access to software, setup, support, training, professional services — determines how the total price is split and when each portion is recognised.
Standalone selling price drives allocation
When a contract contains multiple performance obligations, the total transaction price is allocated based on each obligation’s standalone selling price (SSP) — the price the company would charge if it sold that obligation independently. SSP is estimated using observable data where possible.
Over time vs point in time determines recognition timing
Performance obligations are satisfied either over time (continuously, like subscription access) or at a point in time (one-off, like a setup completion or software delivery). These produce fundamentally different revenue timing patterns.
Variable consideration requires constraint analysis
Usage-based pricing, volume discounts, refund rights, and performance bonuses create variable consideration — amounts the company may receive but cannot be certain of. IFRS 15 requires these to be estimated and constrained to amounts unlikely to reverse.
What does IFRS 15 mean for a SaaS company’s revenue recognition? Every contract with a customer must be analysed through the five-step model: identify the contract, identify distinct performance obligations within it, determine the transaction price, allocate the price to each obligation based on standalone selling prices, and recognise revenue as each obligation is satisfied. For most SaaS businesses, the core challenge is handling the mix of subscription access (over time), setup fees (point in time or over time), and variable elements like usage-based pricing. This page works through each scenario in full.
Section 1 — The IFRS 15 Five-Step Model Applied to SaaS
Each step in detail — what it means and how it applies to a typical SaaS contract
Agreement creating enforceable rights and obligations
Each distinct promise to transfer goods/services
Amount of consideration expected
Proportionally based on standalone selling prices
When (or as) obligations are satisfied
Transaction Price Allocation — €12,000 Enterprise Contract
SaaS subscription (12 months @ €800/month): SSP €9,600 | Implementation project: SSP €4,800 | Total contract price: €12,000 (discounted from €14,400)
Allocated to subscription: €8,856 (€738/month) | Allocated to implementation: €3,144 (recognised at completion)
Section 2 — Revenue Recognition Timing by Contract Type
Visual timelines showing when different SaaS contract components generate revenue
Section 3 — Setup Fees and Onboarding Revenue
The most commonly mis-recognised element — when setup fees are distinct and when they are not
Not distinct — spread over subscription term
Yes — distinct — recognise at completion
Usually Yes — recognise at substantial completion
No — bundle with subscription
Non-Distinct Setup Fee — Amortisation Example
Setup fee: €500 (bundled) | Monthly subscription: €99 | Expected customer life: 24 months
Monthly amortisation: €20.83 | Total monthly revenue: €119.83
Section 4 — Variable Consideration and Usage-Based Pricing
How to estimate, constrain, and update variable revenue components
Usage-Based Revenue — Practical Approach
Hybrid model (flat fee + overages): Base subscription: €299/month (recognise each month) | Overage: €0.05/call above 5,000
March actual calls: 8,200 = 3,200 overage | March revenue: €299 + €160 = €459
Section 5 — Multi-Year Contracts and Significant Financing
When long-term contracts contain a financing component — and how to account for it
Section 6 — Free Trials, Discounts, and Promotional Pricing
How to handle revenue recognition when the commercial price is not what it appears
Free Trial Periods
Unconditional free trial: no contract during trial — revenue begins at conversion
Trial with credit card auto-convert: contract exists from sign-up — constrain revenue to zero during trial
Section 7 — Journal Entries for Common SaaS Revenue Scenarios
The complete accounting entries for the scenarios most SaaS companies encounter