A SaaS company can run for two years on books that look completely fine and are wrong in four specific places. Nothing crashes. The monthly close completes, the P&L balances, and the error surfaces the first time an investor or a buyer's accountant reads the file closely.
The four are deferred revenue, the gap between bookings and recognised revenue, sales commissions, and what actually sits in cost of revenue. Each one is a setup decision rather than a hard problem, and each is far cheaper to get right early than to unwind later.
Deferred revenue, the one that compounds
A customer pays $24,000 in January for twelve months of access. The cash arrives in January. The revenue does not. You have delivered one month of service, so $2,000 is revenue and $22,000 is a liability you owe in service.
Booking the full amount in January is the single most common SaaS bookkeeping error, and it is worse than it first appears. It does not just overstate January. It overstates that month's revenue, growth rate, and margin, understates every subsequent month, and makes the annual trend meaningless. Because each error is individually small, nothing looks obviously wrong until someone adds up a year.
In accounting language the balance is a contract liability. Deferred revenue is the everyday word for the same thing, and the schedule behind it has to be maintained per contract, not estimated in aggregate.
Bookings, cash and revenue are three different numbers
This is where board decks most often lose credibility. The three are used interchangeably in conversation and mean genuinely different things.
| Number | What it measures | When it happens |
|---|---|---|
| Bookings | Total value of contracts signed | At signature |
| Cash collected | Money actually received | When the customer pays |
| Recognised revenue | Service actually delivered | Over the term, as delivered |
| ARR | Annualised run rate of recurring revenue | A forward-looking snapshot, not GAAP |
All four are legitimate and you should track all four. What causes trouble is presenting one and labelling it another, most often quoting bookings as revenue in a deck while the accounts say something different. Once an investor finds one of these, they check everything else.
Commissions do not belong in the month you pay them
The instinctive treatment is to expense a sales commission when it is paid. The correct treatment is usually to capitalise it as a cost of obtaining the contract and amortise it over the period you benefit from that contract, which frequently runs longer than the contract term itself.
The test turns on whether renewal commissions are commensurate with the initial one, judged on economics rather than effort. The common structure of paying a full rate on new business and a much lower rate on renewals fails that test, which pushes the amortisation period out to the initial term plus expected renewals. That in turn requires a defensible estimate of customer life from your own cohort data, which is why this is a finance decision rather than a bookkeeping one.
What actually belongs in cost of revenue
SaaS gross margin is only comparable if the inputs are consistent, and this is where companies quietly flatter themselves.
- In cost of revenue: hosting and infrastructure, customer support, customer success where it is service delivery rather than expansion selling, third-party software embedded in the product, and payment processing.
- Not in cost of revenue: sales and marketing, general engineering building new features, and general and administrative costs.
- The genuinely debatable ones are customer success and the engineering time spent maintaining rather than building. Pick a treatment, write it down, and apply it consistently.
Consistency matters more than being theoretically perfect. A margin that moves because you changed the definition is worse than a margin that is slightly conservative and stable.
How to set it up properly
- Run accrual from the start. Converting from cash-basis later, usually mid-raise, is the worst time to do it.
- Maintain a deferred revenue schedule per contract that reconciles to the general ledger every month.
- Write down your revenue recognition policy, including how you treat setup fees, discounts and mid-term changes, before you need to defend it.
- Split current and long-term deferred revenue, and recalculate the split when contracts are modified.
- Keep a contract file that a reviewer can trace from signed agreement to revenue schedule without asking you.
That last point is what audit readiness actually means in practice. Not perfection, but the ability to answer where a number came from without reconstructing it.
Where Zinance fits
Zinance handles SaaS books as a policy question rather than a data-entry one: accrual from the start, deferred revenue maintained per contract, and a close that runs daily so the numbers are current when a board or an investor asks. For the strategic layer on top, see fractional CFO for SaaS startups, and for our work with software companies, our SaaS practice.
This article is educational and general, not accounting or tax advice, and it creates no client relationship. Revenue recognition and contract cost treatment depend on your specific contracts, and several areas described here involve genuine judgment. Confirm your positions with your own accountants.