Most SaaS companies run into revenue recognition problems the same way: they build the product, sign customers, collect cash, and treat the date the money hits the bank as the date they earned the revenue. It works until the auditor arrives, or until an investor asks why ARR doesn't match the income statement, or until the CFO notices that gross margin is 12 points lower than it should be.
The problem is that booking, billing, and revenue recognition are three separate events. Conflating them creates errors that compound over time.
The three events
Booking is when the customer signs. The contract is executed, the deal is closed. This is when the sales team celebrates and the commission accrues. It does not affect the income statement. It does not affect cash. It is a future obligation to deliver a service.
Billing is when the invoice is sent — typically at contract start, at renewal, or on a schedule defined in the contract. When you bill a customer, you record accounts receivable (an asset) and deferred revenue (a liability). The cash is not yet received. The revenue is not yet earned.
Revenue recognition is when the service is delivered. For a subscription business, this happens ratably over the contract term. A $12,000 annual contract signed on January 1 generates $1,000 of revenue recognition per month, regardless of when it was invoiced or when the cash was collected.
Why this matters for the income statement
Under ASC 606 (the US GAAP standard for revenue recognition), you recognize revenue when — and only when — you satisfy the performance obligation. For SaaS, the performance obligation is providing access to the software over the subscription period. That means ratable recognition over the term.
If you recognize a $120,000 two-year contract entirely in month one, your revenue is overstated by $115,000. Your gross margin is overstated. Your customer acquisition cost ratios are distorted. And if the customer cancels in month four, you have a revenue reversal that's difficult to explain and creates an audit finding.
Deferred revenue: the bridge between billing and recognition
When you bill before you deliver, the gap between billing and recognition lives in deferred revenue — a liability on the balance sheet. When the service is delivered (each month of the subscription), deferred revenue converts to recognized revenue on the income statement.
The deferred revenue balance is one of the most useful leading indicators in a SaaS business. A growing deferred revenue balance means customers are paying in advance of delivery — healthy for cash flow, and a signal that bookings are outpacing recognized revenue. A shrinking balance means the opposite: you're burning through pre-paid contracts without replacing them.
Track deferred revenue on a contract-by-contract basis. The schedule should show each contract's total value, start date, end date, amount billed to date, amount recognized to date, and current deferred balance. The sum of the deferred column on this schedule should equal the deferred revenue liability on the balance sheet. Always.
Common errors and how they surface
Recognizing cash as revenue. The most common error at early-stage companies. Cash-basis accounting treats cash receipt as the revenue event. Under GAAP, it is not. If you're presenting GAAP financials (required for any institutional investor or audit), this needs to be corrected before diligence starts.
Front-loading implementation revenue. If you charge a one-time setup fee, that fee is not recognized at contract signing unless it is a distinct performance obligation. Usually it is not — it is part of the ongoing subscription delivery. The setup fee should be deferred and recognized ratably with the subscription.
Missing the contract modification rules. When a customer upgrades mid-term, you have a contract modification. The accounting for modifications is specific: you may need to reallocate the transaction price across the remaining term. Getting this wrong misstates ARR and creates a discrepancy between reported revenue and what the contract economics would suggest.
What clean looks like
A well-structured revenue recognition process starts with the contract, flows to billing, flows to deferred revenue, and flows to the income statement — with every movement supported by the contract schedule. The three-statement model closes because deferred revenue changes on the balance sheet are directly tied to the difference between billings and recognized revenue on the cash flow statement.
Get this right before the audit. Restatements are expensive, time-consuming, and create a permanent credibility problem with investors and lenders.