SaaS revenue recognition and ASC 606: a practical guide for founders
SaaS revenue recognition is recording subscription revenue when you deliver the service, not when you bill or collect cash. Under ASC 606, the U.S. GAAP standard, you recognize revenue ratably over the service period as you satisfy your performance obligation.
A $12,000 annual contract billed upfront becomes $1,000 of recognized revenue each month. The unearned balance sits as deferred revenue, a liability, on your balance sheet.
That last point is where most founders get caught. Your MRR shows $12,000 of annual value the day the customer signs. Your audited P&L shows $1,000.
The gap between those two numbers is the first thing an investor’s diligence team checks. Getting it wrong delays raises and triggers restatements.
This guide walks the rule with real dollars. One contract, traced through bookings, billings, MRR, and recognized revenue at once, so you see exactly where the numbers split and re-converge.
The core rule, and a benchmark table to keep handy
Recognize revenue as you earn it. For a subscription, you earn it continuously across the service period, so the math is straight-line.
Straight-line recognized revenue = total contract value / number of months in the service period.
A $12,000 annual contract gives 12,000 / 12 = $1,000 recognized per month. A 3-year $360,000 contract gives 360,000 / 36 = $10,000 per month, not $360,000 in year one.
Here is the 2025 benchmark backdrop these numbers sit inside. Most of the market is running below the targets founders quote at board meetings.
| Metric | 2025 median | Source |
|---|---|---|
| Net revenue retention (private B2B) | ~101% | Benchmarkit 2025 |
| Gross revenue retention | 88% | Benchmarkit 2025 |
| Rule of 40 (public SaaS, Q4) | 28% | KeyBanc / OpenView |
| Rule of 40 (private SaaS) | 12% | SaaS Capital / KeyBanc |
| New customer CAC ratio | $2.00 S&M per $1 new ARR | Benchmarkit 2025 |
| LTV:CAC ratio | 3.6:1 | Benchmarkit |
| CAC payback period | ~18 months | Benchmarkit 2025 |
| Subscription gross margin | 81% | Benchmarkit 2025 |
These are growth metrics. None of them is your recognized revenue, and that distinction is the whole point of this article.
What is ASC 606?
ASC 606 is the U.S. GAAP standard that defines when and how much revenue you record. It converges with IFRS 15, so the logic is the same on both sides of the Atlantic.
The core principle is simple. Recognize revenue when you transfer control of a good or service to the customer, in the amount you expect to be entitled to. For SaaS, control of the software transfers continuously over the subscription term, so you recognize revenue over time, ratably, rather than at the moment you bill.
Do private companies have to comply? Practically, yes, once you raise institutional money. Venture investors expect GAAP-compliant financials in diligence, and auditors scrutinize revenue recognition at Series A and B.
Over half of early-stage SaaS companies make at least one ASC 606 error serious enough to trigger a restatement during fundraising, typically delaying the round by 6 to 10 weeks. That is the cost of treating rev-rec as a problem for later.
Why SaaS revenue recognition is different
Cash-in does not equal revenue-earned. When a customer prepays a year, you hold their money but you have not delivered eleven of the twelve months yet. You have an obligation to perform, and GAAP records that obligation.
The mechanism is deferred revenue: the portion you have billed but not yet earned sits as a liability until you deliver it.
Three things diverge the moment billing timing differs from service delivery:
- Bookings: the total value the customer committed to. A signed annual deal is $12,000 of bookings on day one.
- Billings: what you actually invoiced. Billed annually upfront, that is $12,000 in month one.
- Recognized revenue: what you earned and can put on the audited P&L. That is $1,000 in month one.
Bookings, billings, and revenue answer three different questions, and you need all three. Confusing them is how a founder tells the board they did $12,000 of revenue when the auditor will only sign off on $1,000.
The 5-step ASC 606 revenue recognition model
ASC 606 is a five-step model. Run every contract through it.
Step 1: Identify the contract
A contract exists when there is a signed agreement with commercial substance, defined payment terms, and probable collection. For SaaS, your order form or subscription agreement is the contract. If collection is doubtful, you do not have a contract yet for accounting purposes.
Step 2: Identify the performance obligations
List the distinct promises in the deal. Subscription access is one obligation. Distinct services such as training, data migration, or custom development can be separate obligations, if the customer can benefit from the item on its own and it is separable from the subscription.
Step 3: Determine the transaction price
This is the total you expect to be entitled to, including variable consideration like usage fees or discounts. You estimate variable amounts and then constrain the estimate so a significant revenue reversal is unlikely. Refunds and credits reduce the price.
Step 4: Allocate the transaction price
Split the total across the obligations using their standalone selling prices (SSP), the price you would charge for each item sold alone.
Worked allocation: a $100,000 contract with software SSP of $90,000 and implementation SSP of $15,000. The implementation share is 100,000 x (15,000 / 105,000) = $14,286, and the software share is the remaining $85,714. You allocate based on relative SSP, not the line-item prices on the invoice.
Step 5: Recognize revenue as obligations are satisfied
Recognize each obligation as you deliver it. The subscription is recognized over time, straight-line across the term, which is where the $1,000-per-month figure comes from. Distinct services are recognized as delivered, sometimes at a point in time.
Worked example: a $12,000 annual contract, month by month
A customer signs a $12,000 annual plan and pays upfront. Here is what happens to recognized revenue and deferred revenue across the year.
| Month | Billed | Recognized | Deferred revenue balance |
|---|---|---|---|
| 1 | $12,000 | $1,000 | $11,000 |
| 2 | $0 | $1,000 | $10,000 |
| 3 | $0 | $1,000 | $9,000 |
| 4 | $0 | $1,000 | $8,000 |
| 5 | $0 | $1,000 | $7,000 |
| 6 | $0 | $1,000 | $6,000 |
| 7 | $0 | $1,000 | $5,000 |
| 8 | $0 | $1,000 | $4,000 |
| 9 | $0 | $1,000 | $3,000 |
| 10 | $0 | $1,000 | $2,000 |
| 11 | $0 | $1,000 | $1,000 |
| 12 | $0 | $1,000 | $0 |
You billed $12,000 once. You recognized $12,000 total, spread evenly. Deferred revenue starts at $11,000 after month one and drains to zero by month twelve.
Here are the journal entries. At invoicing, you debit accounts receivable (or cash) $12,000 and credit deferred revenue $12,000. Nothing hits the income statement yet.
Each month, you debit deferred revenue $1,000 and credit recognized revenue $1,000. Twelve entries, and the liability is gone.
If you want to model this against your own contracts, the deferred revenue calculator builds the schedule for you.
Deferred revenue accounting explained
Deferred revenue is money you have billed or collected for service you have not yet delivered. It is a liability on the balance sheet, because you owe the customer the service.
The number that has to tie out every month is the roll-forward:
Closing deferred revenue = opening deferred revenue + billings during the period - revenue recognized during the period.
Run the example for month two: opening $11,000 + billings $0 - recognized $1,000 = $10,000. That is the check. If the math does not land where the schedule says it should, you have a billing or recognition error to find.
One detail matters more than any other: the roll-forward ties to contracts, not invoices. A messy schedule built off invoice dates rather than service periods is the single most common thing that breaks in diligence. For the full mechanics, see the deferred revenue deep dive and the deferred revenue glossary entry.
MRR vs recognized revenue: why they are not the same
MRR is the normalized monthly value of your active recurring subscriptions, forward-looking and built for growth analysis. Recognized revenue is the GAAP-earned portion of contracts you have actually delivered, historical and built for the audited P&L.
They match only for pure monthly plans. They diverge the instant a customer prepays.
Trace one 3-year, $36,000 contract billed annually through all four lenses:
| Lens | Value | What it tells you |
|---|---|---|
| Bookings | $36,000 at signing | Total committed |
| Billings | $12,000 each year | What you invoiced |
| MRR | $1,000/month from day one | Normalized recurring value |
| Recognized revenue | $1,000/month earned | What the auditor signs off |
Here MRR and recognized revenue read the same per month, because the contract is straight 12-month-paced. Change it to a single $36,000 upfront payment and they split hard: billings jump to $36,000 in month one, MRR stays $1,000, and recognized revenue is still $1,000 with $35,000 sitting in deferred.
Your dashboard MRR is not your audited revenue. Both are correct; they answer different questions. See MRR vs ARR and the MRR glossary entry for how the recurring view is built.
SaaS-specific complications that trip up founders
The five steps are clean. SaaS deals are not. These are the recurring traps.
Setup and implementation fees
The distinctness test decides everything. A setup fee that only enables access to the software is not a distinct obligation, so you defer it and recognize it over the subscription term, or over the expected customer life if renewal is likely.
A distinct service like genuine training or data migration is a separate obligation recognized as delivered. Booking a non-distinct setup fee upfront is a classic audit failure.
Multi-year contracts
A 3-year $360,000 deal is $10,000 per month for 36 months. Recognizing the full $360,000 in year one overstates revenue by $240,000 and is the kind of error that ends a fundraise. The committed value is real, it just belongs in bookings, not on the P&L yet.
Usage-based billing
For consumption pricing, recognize as usage occurs. If your invoices match the value delivered each period, ASC 606 lets you use a practical expedient and recognize at the invoiced amount.
Where revenue depends on future consumption, you estimate variable consideration using the expected-value or most-likely-amount method, then constrain it. A base access fee is recognized straight-line while the metered component is recognized as consumed. See usage-based billing.
Discounts and SSP allocation
A discount gets allocated across obligations by relative standalone selling price, not dumped entirely on one line. If you bundle a discounted year-one price, you still allocate based on what each piece is worth standalone, which means documenting your SSPs.
Contract modifications
Upgrades, downgrades, and mid-term changes are modifications under ASC 606, and they change your recognition schedule from the modification date forward. Ignoring them quietly desyncs your deferred schedule from reality.
6 ASC 606 mistakes that sink audits and delay your raise
- Booking annual prepayments as day-one revenue. $12,000 recognized in month one instead of $1,000. The most common error and the easiest to catch.
- Recognizing multi-year value upfront. $360,000 booked at signing instead of $10,000 a month.
- Misclassifying setup fees. Non-distinct onboarding recognized immediately rather than over the term.
- Ignoring mid-contract modifications. Upgrades and downgrades not reflected in the schedule.
- Sloppy variable-consideration estimates. No constraint applied, so usage revenue gets reversed later.
- Inadequate SSP documentation. No defensible standalone prices, so allocation cannot be supported.
The stakes are concrete. Over half of early-stage SaaS companies make at least one of these errors badly enough to force a restatement in diligence, costing 6 to 10 weeks. A clean deferred revenue schedule that reconciles every month is what lets you raise without one.
2025-2026 SaaS benchmarks every founder should know
These are the growth and efficiency numbers that belong on your board deck, separate from your recognized revenue. The market in 2025 is tighter than the benchmarks founders memorized in 2021.
- Rule of 40: 28% median public, 12% median private. Only about 20% of public SaaS firms clear 40%. Firms above 40% trade at ~9.4x revenue versus ~3.5x below 20%. See Rule of 40.
- Net revenue retention: ~101% median for private B2B, near 106% venture-backed (ChartMogul). See net revenue retention.
- CAC ratio and payback: $2.00 of sales and marketing per $1 of new ARR (up 14% year over year), with payback at ~18 months, up from ~14 two years prior.
- LTV:CAC: 3.6:1 median, against the at-or-above 3:1 rule of thumb. Check yours with the LTV:CAC calculator.
- Churn gap: SMB logo churn runs ~8.2x enterprise; sub-$300K ARR firms see ~6.5% monthly logo churn, improving to ~3.1% at $8M+ ARR (ChartMogul). See SaaS churn benchmarks.
How Mowt fits in
Mowt shows founders MRR, ARR, churn, retention, and cohort data in real time, straight from Stripe. It is an analytics product, not an accounting tool, which is the useful part of this conversation.
The trap this article is about is mistaking the growth dashboard for the audited P&L. Mowt is explicit about which number is which: it separates the billed view, the recognized view, and the MRR view from the same Stripe data, so the three reconcile instead of quietly disagreeing.
You see the MRR and retention story for running the business, and you can tie it back to what lands on the income statement. That visibility is in use across 500+ founders and companies tracking $1B+ in revenue, on 99.9% uptime. If you want the growth metrics and the recognized-revenue reality side by side, connect Stripe.
FAQ
What is ASC 606?
ASC 606 is the U.S. GAAP revenue recognition standard, converged with IFRS 15, that defines when and how much revenue you record. Its core principle is to recognize revenue when you transfer control of a good or service to the customer, in the amount you expect to be entitled to. For SaaS, control transfers continuously, so revenue is recognized ratably over the service period rather than when you bill.
How do SaaS companies recognize revenue?
Ratably, straight-line, over the subscription term as the customer accesses the software. When you bill upfront, the cash is offset by deferred revenue, a liability, and you move a slice into recognized revenue each month. A $12,000 annual plan becomes $1,000 per month, with deferred revenue draining from $11,000 to $0 over the year.
What are the 5 steps of revenue recognition under ASC 606?
- Identify the contract. 2) Identify the distinct performance obligations. 3) Determine the transaction price, including constrained variable consideration. 4) Allocate the price across obligations using standalone selling prices. 5) Recognize revenue as each obligation is satisfied, over time for the subscription and as delivered for distinct services.
Is MRR the same as recognized revenue?
No. MRR is the normalized monthly value of active subscriptions, a forward-looking growth metric, while recognized revenue is the GAAP-earned portion you have delivered to date. For a prepaid annual contract, MRR shows $1,000 a month from day one, but only $1,000 is recognized in month one while $11,000 sits in deferred revenue.
Do private SaaS companies need ASC 606 compliance?
Practically, yes, once you raise institutional capital. Investors expect GAAP-compliant financials in diligence and auditors scrutinize rev-rec at Series A and B. Over half of early-stage SaaS companies make at least one ASC 606 error serious enough to trigger a restatement during fundraising, typically delaying the round by 6 to 10 weeks.
About the Author
Matt Smith
Serial entrepreneur and former big 4 consultant turned SaaS operator. Built and scaled analytics and data warehouses platforms at multiple enterprise Stripe companies before founding Mowt. Passionate about making complex metrics accessible to every founder.