FrançaisEnglishEspañolItalianoDeutschPortuguêsNederlandsPolski

Revenue Recognition Examples for SaaS Contracts

Published on April 13, 2026 · Jules, Founder of NoNoiseMetrics · 10min read

Updated on April 15, 2026

Revenue recognition examples make abstract accounting rules concrete. If you run a SaaS business, revenue recognition determines when the money a customer pays you counts as earned income, and it is almost never the moment cash hits your account. Under ASC 606 (and its international counterpart IFRS 15), you recognize revenue as you deliver the service, not when you bill or collect. Getting this wrong distorts your P&L, messes with investor reporting, and creates nasty audit surprises. This guide walks through six real SaaS revenue recognition examples, monthly, annual, multi-year, mid-period upgrades, refunds, and trial conversions, with the journal entries for each.

Revenue Recognition is the process of recording revenue in the period it is earned, not when cash is received. For SaaS, “earned” means the subscription period has passed and the performance obligation has been fulfilled.


Revenue Recognition Examples for SaaS

Why the Timing Matters

A customer pays you €1,200 upfront for a 12-month subscription. You have €1,200 in your bank account on day one. But from an accounting standpoint, you have earned exactly €0 of it. You have a liability, deferred revenue, because you still owe 12 months of service. Each month, you convert €100 of that liability into earned revenue.

This is not just a bookkeeping technicality. It affects:

  • Gross margin, cost of goods sold aligns with recognized revenue, not cash collected
  • MRR/ARR calculations, these should track earned revenue, not bookings
  • Investor due diligence, sophisticated buyers look at recognized revenue growth, not cash receipts

For a deeper foundation, read ASC 606 revenue recognition for SaaS and the revenue recognition principle for SaaS.


Example 1: Monthly Subscription (Self-Serve)

Scenario: A customer subscribes to your SaaS at €99/month, billed monthly, starting April 1.

Cash flow: €99 received on April 1 for April service.

Revenue recognition: Since the billing period matches the service period, you recognize the full €99 in April. There is no deferred revenue because the subscription and the service period are coterminous.

Journal entry on April 1 (cash received):

Dr. Cash / Bank                  €99
   Cr. Revenue                        €99

Why it is clean: Monthly billing means no timing mismatch. The moment cash is received, the service period has begun (or is contemporaneous). In practice, most SaaS billing systems treat the invoice date as the recognition date for monthly plans, which is correct when billing is in advance for the month.

What to watch for: If you offer a monthly plan but bill in arrears (customer uses April, billed May 1), you have earned revenue in April that has not been invoiced yet. You would record unbilled receivables instead of deferred revenue.


Example 2: Annual Subscription (Prepaid)

Scenario: A customer pays €1,188 upfront on April 1 for a 12-month annual plan (€99/month equivalent).

Cash flow: €1,188 received on April 1.

Revenue recognition: You recognize €99/month as service is delivered. The remaining balance sits in deferred revenue on your balance sheet.

Journal entry on April 1 (initial cash receipt):

Dr. Cash / Bank               €1,188
   Cr. Deferred Revenue            €1,188

Journal entry on April 30 (month-end recognition):

Dr. Deferred Revenue           €99
   Cr. Revenue                       €99

This recognition entry repeats monthly for 12 months. By March 31 of the following year, the deferred revenue balance reaches zero and all €1,188 has been recognized as revenue.

Balance sheet snapshot at April 30:

AccountAmount
Cash€1,188
Deferred Revenue (current)€1,089
Revenue (April)€99

This is the most common revenue recognition pattern for bootstrapped SaaS. Stripe charges the customer, your accounting system books it as deferred, and your month-end close transfers one month’s worth to revenue.

For more on the deferred revenue mechanics, see deferred revenue for SaaS and Stripe.


Example 3: Multi-Year Contract

Scenario: An enterprise customer signs a 3-year contract for €36,000 total (€1,000/month), paid annually in advance: €12,000 on year 1 start, €12,000 on year 2 start, €12,000 on year 3 start.

Revenue recognition: You recognize €1,000/month across 36 months, regardless of when annual payments land.

Journal entry at year 1 start (receive first annual payment):

Dr. Cash / Bank              €12,000
   Cr. Deferred Revenue           €12,000

Month-end recognition entry (each of the 12 months in year 1):

Dr. Deferred Revenue          €1,000
   Cr. Revenue                     €1,000

Journal entry at year 2 start (receive second annual payment):

Dr. Cash / Bank              €12,000
   Cr. Deferred Revenue           €12,000

The deferred revenue balance fluctuates: it peaks at the start of each annual payment and decreases by €1,000 each month.

Multi-year complication, non-current deferred revenue:

Under GAAP, deferred revenue due to be recognized beyond 12 months must be classified as non-current (long-term) on the balance sheet. For a 3-year deal signed on April 1:

  • Current deferred revenue (months 1–12): €12,000
  • Non-current deferred revenue (months 13–36): €24,000

As time passes, non-current amounts roll into current. This matters for lenders and investors reading your balance sheet.

External reference: FASB ASC 606-10 guidance on multi-period contracts covers performance obligations across multiple periods.


Example 4: Mid-Period Upgrade

Scenario: A customer is 3 months into a 12-month annual plan at €99/month (€1,188 total, paid upfront). On month 4, they upgrade to a €249/month plan.

Revenue recognized so far (months 1–3): 3 × €99 = €297

Remaining deferred revenue on old plan: €1,188 − €297 = €891

Handling the upgrade:

Under ASC 606, a contract modification that adds distinct performance obligations at standalone selling price is treated as a new contract. An upgrade that gives the customer enhanced service immediately is usually treated as a termination of the old contract and creation of a new one.

Option A. Credit and rebook:

Dr. Deferred Revenue        €891   (cancel old plan)
   Cr. Revenue                   €891   (recognition catch-up, if services upgraded immediately)

Dr. Cash / Bank           €2,988   (new annual payment: 12 × €249)
   Cr. Deferred Revenue       €2,988

Then recognize €249/month going forward.

Option B. Proration:

Calculate the remaining value of the old plan and credit it against the new plan:

Remaining months on old plan: 9
Credit from old plan: 9 × €99 = €891
New plan total for 9 months: 9 × €249 = €2,241
Customer owes: €2,241 − €891 = €1,350
Dr. Deferred Revenue        €891   (clear old plan)
Dr. Cash / Bank           €1,350   (prorated upgrade charge)
   Cr. Deferred Revenue       €2,241   (new plan remaining value)

Recognize €249/month for the remaining 9 months.

Which to use: Proration is the most common SaaS practice. Stripe handles this automatically when you change a subscription mid-period, it calculates the prorated credit and new charge. See also unearned revenue vs deferred revenue for how credits affect the balance sheet.


Example 5: Refund

Scenario: A customer cancels 2 months into an annual plan (€1,188 paid upfront, €99/month). You offer a prorated refund for unused months.

Revenue recognized: 2 × €99 = €198

Refund amount: (12 − 2) × €99 = €990

Journal entry, reverse deferred revenue and issue refund:

Dr. Deferred Revenue       €990
   Cr. Cash / Bank              €990

The €198 already recognized as revenue stays on the income statement. You do not reverse earned revenue, you only return the portion that was never earned (still sitting in deferred revenue).

If you already recognized too much (e.g., you mistakenly recognized the full €1,188 upfront), the correction entry is:

Dr. Revenue               €990   (reverse over-recognized amount)
   Cr. Cash / Bank             €990   (refund issued)

This is a prior-period adjustment if the error happened in a closed accounting period, which gets complicated. Better to set up recognition schedules correctly from the start.


Example 6: Trial Conversion

Scenario: A customer signs up for a 14-day free trial on April 1 and converts to a €99/month paid plan on April 15.

Revenue recognition during trial: €0. You have no performance obligation to recognize, the customer has not paid, and free trials are not contracts under ASC 606.

Journal entry on April 15 (conversion):

Dr. Cash / Bank             €99
   Cr. Deferred Revenue          €99

Month-end recognition entry on April 30:

Dr. Deferred Revenue         €49.50   (15 days of service: €99 × 15/30)
   Cr. Revenue                    €49.50

Note the proration: the customer paid on April 15 for a month of service, so you recognize 15/30 of €99 in April and the remaining €49.50 in May.

Simpler approach: Many SaaS companies bill from the trial conversion date and treat the billing date as the start of the monthly period. In that case, April recognition = €0, and the full €99 is recognized in the May billing cycle (April 15 – May 14). Either approach is acceptable as long as it is applied consistently.


Common Mistakes Across All Examples

1. Recognizing cash as revenue immediately

The most frequent error. When a customer pays €1,188 upfront, booking it all to revenue in month one overstates income and understates the liability. This matters most when reviewing monthly P&Ls or pitching investors on revenue growth.

2. Forgetting non-current deferred revenue

Multi-year deals create long-term liabilities. If you lump everything into current deferred revenue, your balance sheet misrepresents liquidity.

3. Inconsistent upgrade/downgrade treatment

Establish a policy (full credit + rebook vs. proration) and apply it consistently. Stripe’s default behavior is proration, make sure your accounting matches what Stripe actually charges.

4. Not tracking deferred revenue by contract

When you have hundreds of customers on different billing dates, you need a deferred revenue schedule, a spreadsheet or accounting system entry for each contract showing recognition timing. Manual approaches break at scale.

5. Confusing bookings with recognized revenue

A signed contract is a booking. Until service is delivered, it is not revenue. Confusing these metrics makes your revenue look better than it is.

Track from Stripe. NoNoiseMetrics reads your Stripe data and shows recognized MRR by period, not bookings. Try free


FAQ

What is the basic rule of revenue recognition for SaaS?

Recognize revenue as the service is delivered, not when cash is received and not when a contract is signed. For monthly subscriptions, that means one month of revenue per month of service. For annual prepaid plans, it means spreading the cash receipt across 12 months.

When does deferred revenue become revenue?

Deferred revenue converts to revenue as each period of service is completed. For a €1,200 annual subscription, €100 moves from deferred revenue to revenue each month for 12 months. The balance in deferred revenue represents the obligation still owed to customers.

How do upgrades affect revenue recognition?

An upgrade mid-period creates a contract modification. The most common approach is to calculate the prorated value of the remaining old plan, apply it as a credit, and begin recognizing the new plan rate from the upgrade date. The specific accounting treatment depends on whether the upgrade adds distinct performance obligations.

What is the difference between unearned and deferred revenue?

In practice, the terms are interchangeable, both refer to cash received for services not yet delivered. Some accountants use “unearned revenue” for shorter-term liabilities (e.g., monthly subscriptions) and “deferred revenue” for longer-term ones. GAAP does not formally distinguish them. See unearned revenue vs deferred revenue.

Do trial periods affect revenue recognition?

No. Free trials do not create a performance obligation or revenue event. Revenue recognition starts when a paying contract begins. If a trial converts to a paid plan mid-month, recognize revenue only for the portion of the month that falls within the paid period.

How does ASC 606 change traditional revenue recognition for SaaS?

ASC 606 replaced industry-specific guidance with a single five-step model: identify the contract, identify performance obligations, determine transaction price, allocate price to obligations, and recognize as obligations are satisfied. For simple monthly SaaS subscriptions, the practical result is unchanged. For complex deals with setup fees, usage-based components, or multiple deliverables, ASC 606 requires more careful allocation.

What does Stripe report: bookings or recognized revenue?

Stripe reports cash collected, which is closer to bookings than recognized revenue. When a customer pays €1,200 upfront, Stripe shows that as a single charge. Your accounting system needs to spread that across 12 months. NoNoiseMetrics bridges this gap by converting Stripe charge data into period-by-period MRR.

How should I handle refunds in my revenue recognition schedule?

Do not reverse previously recognized revenue unless you made an accounting error. A refund for unused service reduces the deferred revenue liability, not the earned revenue line. The journal entry is a debit to deferred revenue and a credit to cash/bank for the refund amount.


External resources:


MRR Dashboard Template

Stop guessing which month you recognized what. The MRR dashboard template shows you period-by-period recognized revenue, deferred balances, and movement, all pulled from Stripe automatically.

Open MRR Dashboard Template →

Share: Share on X Share on LinkedIn
J
Juleake
Solo founder · Building in public
Building NoNoiseMetrics — Stripe analytics for indie hackers, without the BS.
See your real MRR from Stripe → Start free