Why examples beat theory for revenue recognition
When operators sit down to recognize revenue on a SaaS contract, they don't search for rules. They search for examples. They want to see the contract, the journal entry, and where the dollars land on the P&L. That's the gap this guide fills. It walks six common SaaS contract patterns end-to-end. Each one has dollar amounts and every journal entry. For the core theory, see the ASC 606 five-step model in plain language on the SaaS accounting hub.
Bobby is a CPA firm partner, not a CPA. This guide is educational. The journal entries follow standard ASC 606 rules. But your contracts may have terms that change the analysis. When dollar amounts get large or terms get unusual, route the entries to a CPA for review.
The six patterns below cover about 90% of what a young SaaS company recognizes as revenue in a year. Monthly subscriptions, annual prepay, multi-year prepay, free trials, upgrades, and downgrades with credits. Each example follows the same shape. Scan the one you need and skip the rest.
What are the most common ASC 606 revenue recognition examples for SaaS?
The six most common SaaS revenue recognition patterns under ASC 606 are: monthly subscription billed in arrears ($99/month recognized monthly), annual prepay with monthly recognition ($1,200 collected upfront, recognized at $100/month), multi-year prepay with current and non-current deferred split ($30,000 over 36 months at $833.33/month), free trial converting to paid (zero revenue during trial, recognition starts at conversion), mid-term upgrade ($99 to $199 prospectively from upgrade date), and mid-term downgrade with credit ($600 credit liability applied over future months). Each pattern produces specific deferred revenue balances and recognition timing.
Key Takeaways
- Monthly subscription revenue recognition is the simplest: Recognize $99 in revenue the month service is delivered. No deferred revenue if billed in the same period.
- Annual prepay creates deferred revenue at signing: $1,200 collected upfront becomes $1,200 deferred revenue. It releases at $100/month over 12 months under standard revenue recognition timing.
- Multi-year prepay splits across two balance sheet lines: A $30,000 three-year prepay shows $10,000 in current deferred revenue and $20,000 in non-current at month 1.
- Free trials produce zero revenue and zero deferred revenue: No payment means no journal entry and no revenue recognition until the customer converts to paid.
- Mid-term upgrades usually recognize revenue prospectively: A $99 to $199 upgrade at month 6 gets treated as a new performance obligation. No catch-up fix.
- Downgrades with credits create a customer credit liability: A $600 credit sits as a balance sheet liability. It releases to revenue as the customer uses future months.
Example 1: Monthly subscription, no commitment ($99/month)
Contract terms and ASC 606 revenue recognition analysis
The customer signs up for a $99/month SaaS plan. Billing runs on the 1st of each month. The customer can cancel any time with no penalty. There's one performance obligation: access to the software for that month. The transaction price for each billing period is $99. Revenue gets recognized over the month as the customer uses the service. This is the simplest revenue recognition pattern in SaaS. The billing period and the service period match. You don't need to track deferred revenue between months. That holds as long as you bill in the period you deliver.
Monthly journal entries
On the 1st of each month, you invoice the customer and recognize revenue at the same time. The journal entry to record the invoice and recognize the revenue is:
DR Accounts Receivable $99
CR Revenue $99
When the customer pays (often the same day on auto-pay), you clear the receivable:
DR Cash $99
CR Accounts Receivable $99
If you want to spread revenue across the month instead of recognizing it at billing, you can split it across days. Most SaaS firms don't bother for monthly billing. The timing gap is too small to matter. For monthly contracts, recognizing revenue at the start of the service period is fine. The materiality threshold is the rule of thumb here. If the gap moves your monthly P&L by less than 1%, leave it alone.
What the financial statements show
On the income statement, you'd see $99 in revenue per customer per month. On the balance sheet at month-end, you'd see $0 in deferred revenue. You billed and recognized revenue in the same period. What if you bill in advance for the next month? Then you'd carry the $99 as deferred revenue from invoice date to the start of the service period. Most monthly SaaS plans bill at the start of the service period. Deferred revenue stays at zero.
Example 2: Annual prepay with monthly revenue recognition ($1,200/year prepaid)
Contract terms and ASC 606 revenue recognition analysis
The customer signs a 12-month contract and pays $1,200 upfront. The annual price builds in a small discount versus monthly billing (a $99/month customer might get the annual plan at $1,200 instead of $1,188). The performance obligation is access to the software over 12 months. The transaction price is $1,200. Revenue gets recognized over 12 months at $100/month. The customer pays before the service ships. So you'll carry deferred revenue on the balance sheet. Revenue recognition releases that liability each month.
Signing JE and monthly recognition JEs
When the customer pays the $1,200, you record:
DR Cash $1,200
CR Deferred Revenue $1,200
At the end of each month, you recognize 1/12 of the contract as revenue. The monthly entry is:
DR Deferred Revenue $100
CR Revenue $100
That entry repeats 12 times over the year. At month 12, deferred revenue from this contract hits $0. You've recognized $1,200 in total revenue. Your revenue runs flat at $100/month across the year. Cash, on the other hand, came in all at once at signing.
Balance sheet roll-forward through year 1
Here's what deferred revenue looks like for this single contract at each month-end:
- Month 1: $1,100 deferred revenue, $100 recognized
- Month 3: $900 deferred revenue, $300 recognized
- Month 6: $600 deferred revenue, $600 recognized
- Month 9: $300 deferred revenue, $900 recognized
- Month 12: $0 deferred revenue, $1,200 recognized
For more on how this account moves over time, see how deferred revenue moves on the balance sheet. Say the customer cancels at month 6 and you refund the remaining $600. You'd debit deferred revenue $600 and credit cash $600. There's no income statement impact. You'd already recognized only $600 in revenue.
Example 3: Multi-year prepay (3 years, $30,000 paid upfront)
Current vs non-current deferred revenue split
The customer signs a 36-month contract and pays $30,000 upfront. That's $833.33/month in recognized revenue over 36 months. The contract spans more than 12 months. So you split the deferred revenue liability into current and non-current parts on the balance sheet. The current part is what'll release to revenue in the next 12 months. The non-current part is everything beyond that.
At signing on day one, the split looks like this:
- Current deferred revenue (months 1-12): $10,000
- Non-current deferred revenue (months 13-36): $20,000
- Total deferred revenue: $30,000
The signing entry is:
DR Cash $30,000
CR Current Deferred Revenue $10,000
CR Non-Current Deferred Revenue $20,000
Each month, you'd also reclassify some non-current to current as future periods get closer. At month 1, you'd reclassify $833.33 from non-current to current. That keeps the next-12-months balance right. Most firms do this reclass each quarter or each year, not each month. It cuts bookkeeping load.
Significant financing component analysis
ASC 606-10-32-15 makes you check whether a contract has a significant financing component. The practical expedient in ASC 606-10-32-18 lets you skip the check if the gap between payment and service is one year or less. A 36-month prepay is past that window. So you'd check whether the upfront payment hides a financing benefit to the customer.
Compare a $30,000 prepay over 36 months versus monthly billing at $1,000/month ($36,000 total). The $6,000 discount could be a volume discount. Or it could be a financing-component fix. Most SaaS firms treat it as a discount on the standalone selling price, not a financing piece. The discount reflects commitment and lower churn risk, not time-value-of-money. Write down your call and the reason. If audited, the auditor will want to see the work.
Monthly revenue recognition over 36 months
The monthly entry uses the same pattern as Example 2. The dollar amount differs:
DR Deferred Revenue $833.33
CR Revenue $833.33
That entry repeats 36 times. Over the contract term, deferred revenue drops from $30,000 to $0. Recognized revenue climbs from $0 to $30,000. The revenue recognition pattern is the same as the annual prepay in Example 2. Just stretched across three years instead of one.
Example 4: Free trial + paid conversion (30-day trial, then $99/month)
Performance obligation analysis during the trial
The customer signs up for a 30-day free trial. No payment is collected. After 30 days, the customer either converts to the $99/month paid plan or the account stops. During the trial, the customer gets access to the software. But no money has changed hands. Under ASC 606, you don't have a contract until both sides commit and the price is set. A free trial with no payment owed isn't a contract under ASC 606. You'd recognize no revenue and no deferred revenue during the trial.
That said, you're still spending to serve the trial user (servers, support, sometimes onboarding). Those costs hit your P&L as period expenses. They don't get capitalized as contract costs. The only way they would: the customer converts and the costs meet the ASC 340-40 rules.
When revenue recognition starts
The day the customer converts, the contract starts. Say conversion happens on day 31 and the customer pays $99 for the first month. You'd treat it as a new monthly subscription (see Example 1). The entry on conversion day is:
DR Cash $99
CR Revenue $99
If the customer converts mid-month (say day 35), you'd start the month on day 35. Then recognize revenue through day 34 of the next month. Some firms prorate the first month. Others bill the full month at conversion and roll the cycle forward. Either is fine, as long as you stay consistent.
What happens if the customer doesn't convert
If the customer never converts, you've recognized no revenue and recorded no journal entries. The trial costs sit in your P&L as period expenses with no matching revenue. For accounting, the non-converting trial is invisible on the revenue side. For unit economics, those costs do matter. You'd track them in your CAC analysis. But they don't show up as a revenue issue.
For more on how trial-to-paid conversion shows up next to MRR and ARR, see MRR, ARR, and recognized revenue for bookkeepers.
Example 5: Mid-term upgrade (month 6 upgrade from $99 to $199/month)
Contract modification and revenue recognition analysis
The customer is on month 6 of a 12-month $99/month plan. At month 6, they upgrade to a $199/month plan for the remaining 6 months. Does this count as a contract change under ASC 606-10-25-10? If so, is it prospective, or does it need a cumulative catch-up?
Three tests apply. First, are the added services distinct? For a SaaS upgrade that adds new features, the added service is usually distinct. Second, is the added price at standalone selling price? If $199 is what a new customer would pay for the higher plan, yes. Third, if both tests pass, you treat the change as a separate contract starting at the upgrade date. The first contract's accounting stays put.
In most SaaS upgrades, both tests pass. The upgrade gets prospective revenue recognition treatment. The first $99/month plan recognized through month 5 stays as-is. From month 6 forward, you recognize the new plan as a new contract. This is the clean, simple path. It works for the vast majority of plan upgrades you'll see in a young SaaS company.
Prospective vs cumulative catch-up
Prospective treatment is the most common and the simplest. You stop the old contract at the upgrade date and start the new one. No catch-up fix is needed. You aren't changing past accounting.
Cumulative catch-up kicks in when the change updates the existing contract's terms but doesn't qualify as a separate contract. Examples: adding services that aren't distinct, or pricing the change below standalone selling price. In a catch-up, you'd redo the contract as a whole at the change date. Then you'd adjust revenue for the gap between what's been recognized and what should have been recognized under the new terms. This is rare in clean upgrade cases.
JEs from month 6 forward
Assuming monthly billing at the new $199 rate from month 6 onward, the monthly entry is:
DR Accounts Receivable $199
CR Revenue $199
That entry repeats 6 times for the remaining contract term. The original $99/month recognized through month 5 stays in place. Total revenue for this customer over the 12 months would be $99 × 5 + $199 × 7 = $1,888. That assumes the new rate runs through the renewal date. The exact total depends on the day in month 6 the upgrade hit and whether you prorated.
Example 6: Mid-term downgrade with credit ($199 to $99, $600 credit to future months)
Credit treatment: refund vs forward credit
The customer is on month 4 of a 12-month $199/month plan. They downgrade to $99/month for the remaining 8 months. They've already paid $796 ($199 × 4 months). Under the old contract, they would have paid $1,592 more. Under the new contract, they'd pay $792 for the remaining 8 months. The company decides to issue a $600 credit for future months rather than refund cash.
The credit shifts the timing of when revenue is recognized. It doesn't change total revenue if the customer uses the full credit. What if the customer doesn't use the credit before the contract ends? The unused balance may need to be recognized as breakage revenue under ASC 606-10-55-46. That call depends on company history and credit forfeit policy.
JEs for issuing credit and applying it
When you issue the $600 credit at month 4, you'd cut revenue (or reverse revenue already recognized, based on facts). You'd also record a credit liability. The entry is:
DR Revenue $600
CR Customer Credit Liability $600
This entry reverses $600 of the $796 already recognized. Net recognized revenue through month 4 is $196. From month 5 forward, the customer is on the $99/month plan. As the customer uses service in months 5-8, they get $99 × 8 = $792 of value. The first $600 of that gets credited against the credit liability, not cash. The remaining $192 gets billed and collected as usual.
The monthly entry for months 5-8 has two parts. To recognize revenue for the month:
DR Customer Credit Liability $75
DR Accounts Receivable $24
CR Revenue $99
That assumes the company spreads the $600 credit evenly across the 8 remaining months ($75/month). The customer pays the $24 gap per month. The exact split depends on how the company set up the credit.
Multi-period impact
Over the full 12-month contract, recognized revenue lands at the new $99/month rate for the changed part. Total recognized revenue is $796 (months 1-4) − $600 (credit issued) + $99 × 8 (months 5-12) = $988. That equals what the customer paid in cash, net of refunds. The credit liability balance moves from $600 at issue to $0 at month 12, if used in full.
What if the customer churns at month 7 with $150 of credit unused ($600 − $75 × 6 = $150)? The company has to choose: refund the credit, or apply breakage. Refund means debit credit liability $150, credit cash $150. Breakage means debit credit liability $150, credit revenue $150. Breakage applies only if the rules under ASC 606-10-55-46 are met. The company must expect to keep the breakage and be able to estimate it from past patterns.
A note on materiality: For small SaaS firms, single contract changes of $200-$600 often recognize through simpler entries. You just adjust revenue going forward without a separate credit liability. The strict ASC 606 revenue recognition path matters most when changes are big enough to move the financial statements. When in doubt, route the journal entries to a CPA for review.
These six patterns cover the common revenue recognition cases. Edge cases will come up: usage-based pricing tiers, contracts with implementation fees, bundled hardware, or revenue share with partners. Each has its own ASC 606 revenue recognition treatment. The core five-step model still applies. Identify the contract, the performance obligations, the price, how to split the price across obligations, and when to recognize each one. Walk through the steps in order. The right answer falls out.
Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice. Full disclaimer.
Get Started with Growthy
Related: SaaS Accounting, Chart of Accounts.