A SaaS company audit centres on applying Ind AS 115's five-step model to a contract that usually bundles several distinct promises — the subscription itself, one-time implementation or setup, ongoing support, and sometimes a hardware or on-premise component — and testing that each has been identified as its own performance obligation, allocated a share of the transaction price based on stand-alone selling price, and recognised on the pattern appropriate to that obligation rather than all of it being recognised on invoicing or all of it deferred evenly over the subscription term by default.
Identifying the separate performance obligations
A typical annual SaaS contract might include a one-time implementation fee, the subscription licence itself, and premium support. Under Ind AS 115, each of these is a separate performance obligation if the customer can benefit from it on its own or with other readily available resources, and it is distinct within the context of the contract. Implementation that is highly customised and integral to the platform working at all might not be distinct from the subscription; a generic onboarding call almost always is.
| Element | Typical pattern | Why |
|---|---|---|
| Subscription access fee | Ratably over the subscription term | The customer receives and consumes the benefit continuously over the term |
| Implementation/setup fee (distinct) | At the point the setup service is complete | A distinct service satisfied at a point in time, separate from ongoing access |
| Implementation fee (not distinct from subscription) | Over the subscription term along with the subscription | Not separately identifiable as its own benefit to the customer |
| Usage-based/variable fees | As usage occurs | Revenue recognised as the variable consideration is earned, generally not upfront |
Recognising an upfront implementation fee entirely on invoicing, when it is not in fact distinct from the subscription, is one of the more common overstatements in a SaaS audit — it pulls revenue forward from future periods into the current one.
Testing deferred revenue
- 01Rebuild the deferred revenue schedule independently for a sample of contractsTake the contract terms and the billing schedule and recompute what should be in deferred revenue at the reporting date, rather than agreeing the client's own schedule to itself.
- 02Test contracts with mid-term upgrades, downgrades or cancellationsA customer who upgrades mid-term changes the remaining performance obligation and the remaining transaction price — confirm the deferred revenue schedule was actually updated, not left as originally booked.
- 03Check multi-year contracts billed annually in advanceOnly the current year's portion should be recognised; the remaining years sit in deferred revenue (and the long-term portion classified as non-current) even though the full contract value may have been invoiced upfront.
- 04Reconcile total deferred revenue movement for the yearOpening balance plus billings less revenue recognised should equal the closing balance; an unreconciled movement usually means revenue was recognised outside the schedule entirely, through a manual entry.
Churn, refunds and contract modifications
A customer who cancels mid-term and is owed a refund for the unused portion needs that unused deferred revenue reversed, not just written off as a bad debt elsewhere. Contract modifications — adding users, changing tier — need to be assessed under Ind AS 115's modification guidance: sometimes as a separate new contract, sometimes as a change to the existing one with a cumulative catch-up, and the two produce different revenue outcomes.
How we think about this
The thing that makes a SaaS audit different from most revenue audits is that the real risk isn't in whether cash was collected — SaaS businesses are often collected in advance — it's in whether the revenue recognised in the income statement actually matches the service delivered in the period, which is a judgement question, not a collections question.
This is practical guidance written for audit teams, not an authoritative statement of any standard or statute. Standards, forms and timelines change. Check the current text issued by the ICAI and the relevant authority before relying on anything here in an audit file.
Related resources
- Revenue, receivables & cut-offRevenue recognition testing in a statutory auditThe transfer-of-control test that governs when a sale is recognised, the misstatement patterns that recur in practice, and what evidence ties a recognised sale to an underlying document.
- Audit workflow & automationSA 540: auditing accounting estimates, where judgment replaces a verifiable numberAn estimate can't be vouched to a source document the way an invoice can. SA 540 is about what replaces vouching when there's no single right answer to check against.
- Revenue, receivables & cut-offMatching dispatch, invoice and ledger for revenue testingThe sales-side mirror of the purchase three-way match: what breaks it in practice, and why the unmatched population should be sized by value, not count.
- Bank, cash & treasuryBank reconciliation audit procedure for statutory auditWhat a BRS must reconcile, the red flags that separate a timing difference from a cover-up, and how many months you actually need to review.
Free tools, no signup
Each one reads a file entirely in your browser — or, for two of them, just answers a few questions — and nothing is ever uploaded.
- Purchase register checkDuplicate payments, round-sum amounts, weekend-dated invoices, incomplete records.
- GSTR-2B reconcilerMatches your purchase register against GSTR-2B — missing invoices either side, amount mismatches.
- Bank reconciliation checkerMatches your cash book against a bank statement — what's outstanding on each side.
- Fixed asset register checkDuplicate asset codes, missing location or useful life, negative net book value.
- Payroll red-flag scannerBank accounts shared across employees, and records missing an ID, PAN or salary.
- CARO applicability checkerAnswer a few questions about the company and see which CARO 2020 clauses likely apply.
- MSME payment delay checkerMSME-flagged invoices paid — or still unpaid — beyond the 45-day Section 22 limit.
- Related-party transaction screenerTransactions above a threshold you set with no approval reference, grouped by counterparty.
- Depreciation useful life checkerCompares a useful life in use against the Schedule II, Part C indicative figure.
- Materiality calculatorOverall and performance materiality against PBT, revenue, assets or equity, with reasoning shown.
- Sample size calculatorStatistical sample size for a test of controls or a substantive test of detail.