Revenue recognition policy starter
A written policy turns a hundred individual judgment calls into one consistent, defensible position. It is the document an auditor asks for first. Here is the outline you can put on paper in an afternoon, then sharpen against your own contracts.
A revenue recognition policy is not paperwork. It is the document that turns a hundred individual judgment calls into one consistent position you can defend. It is the first thing an auditor asks for, and the reference an investor's analyst leans on when they rebuild your top line. Most early companies recognize revenue by habit and instinct. A short, written policy replaces both with something you can stand behind.
The short version
- A written ASC 606 policy turns scattered judgment into one consistent, defensible position.
- It follows the five-step model, applied to each of your revenue streams.
- The judgment that matters for SaaS: distinct obligations, price allocation, variable consideration, gross versus net.
- Write it before the audit, not during. The memo is what an auditor and an investor expect to see.
Why a written policy earns its keep
Without a policy, every unusual contract is decided in the moment, by whoever books it, and those decisions drift over time. With one, the judgment is made once, in principle, and applied the same way every time. That consistency is exactly what an audit tests and what diligence rewards. The policy is also your defense: when an auditor questions a position, "here is our written, reasoned basis" ends the conversation that "that is how we have always done it" only prolongs.
The model it follows
Every policy is built on the same five-step framework. Your job is not to reinvent it, but to apply it to your specific revenue streams.
Identify the contract and the distinct performance obligations, set and allocate the transaction price, then recognize revenue as each obligation is satisfied.
How your revenue actually recognizes
Applied to a typical SaaS company, the five steps resolve into a handful of patterns. Your policy should state each one explicitly.
The judgment that decides several of these is whether an item is a distinct performance obligation. Document that reasoning, not just the conclusion. Illustrative.
Three SaaS-specific calls sit underneath that map and deserve their own paragraphs in the policy. Variable consideration: how you estimate usage, credits, and discounts, and the constraint you apply. Standalone selling price: how you allocate a bundled contract across its obligations when you do not sell each separately. Principal versus agent: whether you record revenue gross or net when a third party is involved. These are where reasonable companies differ, which is exactly why your position needs to be written down.
Sell a $90k annual subscription bundled with implementation invoiced at $10k, for $100k total. If you normally sell that implementation at a $20k standalone price, ASC 606 will not let you recognize it at the $10k you billed. The $100k is allocated on relative standalone selling price: roughly $81.8k to subscription and $18.2k to implementation. The bundle discount is shared across both obligations, not parked wherever it is convenient.
What the document should contain
A defensible policy is short, but it covers the ground an auditor will walk. Use this as the skeleton, then write your reasoning into each section.
A skeleton, not a finished policy. Replace the brackets with your facts and write the reasoning behind each call. Illustrative.
A controller you hired tomorrow could pick up the policy, apply it to a contract they have never seen, and reach the same answer you would. If they cannot, the policy is not finished.
Draft it now, while the contracts are few and the judgment is fresh. A policy written in calm is worth far more than one assembled under the pressure of a first audit.
Need a policy you can defend?
A working session turns your contracts into a written, reasoned ASC 606 position, the one an auditor accepts and an investor trusts. A sample of the work, not a sales call.
Request a consultation →