Revenue Recognition for Custom Software and SaaS Contracts

A step-by-step checklist for Indian software firms to get Ind AS 115 revenue recognition right on fixed-price, milestone and SaaS contracts.

Maysan Insights · · 5 min read

Xin

Most software studios in India bill the way the client wants to pay, not the way the work happens. A fixed-price project gets invoiced 30% on signing, 40% on delivery, 30% on go-live. A SaaS product gets an annual prepayment in April. Your bank balance and your revenue line then tell two different stories, and the mismatch usually surfaces at the worst possible time: during a due diligence review, a bank loan assessment, or the first serious conversation with an investor. It hits founders, finance leads and ops heads at SMBs and mid-market B2B firms hardest, because they are large enough to be audited and small enough to have no dedicated accounting team.

This is a working checklist. It assumes you file under the Companies Act and follow Ind AS 115 (the converged standard, aligned with IFRS 15). If you are on Ind AS 109-era practice or a smaller entity on the old AS 9, the principles are similar but the disclosure burden is lighter. Either way, run through the steps in order.

Step 1: Split every contract into performance obligations

A performance obligation is a distinct promise to a customer. Most custom software contracts contain more than one, and each gets recognised separately.

  • Licence or subscription access — the right to use your SaaS platform for a period.
  • Implementation or setup — configuration, data migration, integrations, often billed as a one-time fee.
  • Custom development — the actual build work, whether fixed-price or time-and-materials.
  • Support and maintenance — AMC, SLA-backed bug fixes, uptime guarantees.
  • Training and documentation — usually small, but material enough to separate if it is a real deliverable.

If the setup work does not transfer a distinct benefit to the client without the subscription, it is not a separate obligation — you defer it and recognise it over the subscription term. This single judgement changes your reported revenue more than any other decision in the standard.

Step 2: Fix the transaction price, including variable bits

Start with the contract value, then adjust.

  • Discounts and rebates — net them off, including year-one discounts you plan to claw back in renewal.
  • Penalties and service credits — estimate the expected deduction, not the worst case. If your SLA credits have historically run at 1.5% of contract value, accrue that.
  • Incentive or success fees — include them only to the extent it is highly probable there will be no significant reversal. "Highly probable" is a high bar; do not book a success fee you have never earned before.
  • Currency and GST — recognise revenue net of GST. If you invoice in USD or GBP, use a consistent translation policy and stick to it.

A worked example. You sign a ₹48,00,000 fixed-price build for a logistics client, plus ₹6,00,000 a year for support, plus a ₹4,00,000 go-live bonus contingent on hitting a date. Base transaction price is ₹54,00,000. Exclude the bonus from day one unless your delivery record justifies inclusion. Allocate the ₹54,00,000 across obligations by relative standalone selling price — say 70% to development and 30% to support over the first year. That gives you roughly ₹37,80,000 of development revenue and ₹16,20,000 of support revenue, spread by your measure of progress.

Step 3: Pick a progress measure and defend it

For fixed-price custom work, recognise over time using either input or output methods. Input methods (labour hours, cost incurred) are easier to run but can front-load revenue if you staff heavily in month one. Output methods (milestones, features accepted) match the client's experience but are lumpy.

In our experience, most Indian studios under ₹50 crore revenue are better served by a cost-to-cost input method, reviewed monthly, because it is auditable from timesheets you already maintain. Whichever you choose:

  • Apply it consistently across similar contracts. Auditors test for cherry-picking.
  • Recompute the estimated total cost to complete every month. Small changes move revenue fast.
  • Recognise a loss immediately if estimated costs exceed the contract price. Do not spread it.

Step 4: Handle the SaaS-specific traps

Three things trip up product-led companies.

  • Setup fees. If the setup is not distinct, defer it and recognise it over the expected customer life, not the first invoice.
  • Renewals and upgrades. Treat a price increase on renewal as a contract modification. Allocate prospectively unless the change is for distinct new services.
  • Multi-year prepayments. Cash received is not revenue. Keep a deferred revenue schedule by customer, reconciled monthly. This is also your best churn signal — a shrinking deferred balance predicts a weak quarter better than any dashboard.

Step 5: Document and reconcile monthly

Paper is the point. A one-page memo per material contract — obligations identified, price allocated, progress measure, and the numbers — will save you days during audit. Then close the loop:

  • Reconcile recognised revenue to invoices raised and cash received. Investigate any gap over 5%.
  • Keep a deferred revenue and unbilled revenue (contract asset) register.
  • Revisit estimates quarterly, not annually.
  • If you operate across India and the UK, confirm your policy passes both Ind AS and FRS 102 scrutiny before you scale.

Where to start

Do not rewrite your whole accounting policy this quarter. Pick your five largest live contracts, write the one-page memo for each, and check whether the revenue you have booked matches what the standard says. That exercise alone usually surfaces the setup-fee and milestone errors. If you want help building the templates or wiring the deferred revenue schedule into your invoicing stack, the team at Maysan Labs does this alongside the platforms we build — but you can start with a spreadsheet and a Friday afternoon.

Buying software or a website?

Twelve questions to ask any vendor before you sign: price, your data, fit for an Indian business and support.

Get the free checklist

Written by Maysan Insights at Maysan Labs, a software studio in Gurgaon, India. Follow us on LinkedIn