Subscription Accounting for SaaS Companies
Subscription Accounting for SaaS Companies — The complete operational accounting guide for subscription businesses — new subscriptions, upgrades, downgrades, pauses, cancellations, refunds, billing failures, and the full MRR waterfall from opening to closing balance.
5 Key Takeaways From This Page
New subscriptions, upgrades, downgrades, pauses, cancellations, and refunds each require different journal entries. Getting the timing and direction right for each event is the foundation of accurate SaaS financial reporting.
When a customer upgrades or downgrades mid-period, the revenue and deferred revenue must be adjusted proportionally. You need a documented proration policy that is applied consistently to every mid-cycle event.
MRR data comes from your subscription database (Stripe, ChartMogul) rather than your general ledger. But it must reconcile to your accounting figures — any gap between your MRR dashboard and your P&L revenue warrants investigation.
A failed payment does not automatically reverse revenue recognition. You must make an assessment: is the payment temporarily failed (likely to recover via dunning) or is it a genuine bad debt? The accounting treatment differs between these two outcomes.
Customer cancellations affect revenue immediately, reduce the deferred revenue balance, and create the churn MRR figure that investors scrutinise most closely. Every cancellation must be processed on the correct date with the correct accounting entries.
What does subscription accounting involve on a practical, transaction-by-transaction basis? Every subscription lifecycle event — new sign-up, plan upgrade, seat expansion, downgrade, pause, cancellation, refund, and failed payment — has a specific accounting and MRR impact that must be recorded correctly and in the right period. This page covers every event type with the corresponding journal entries, deferred revenue adjustments, MRR movements, and the month-end waterfall that ties them all together.
Section 1 — The Subscription Lifecycle: Every Event and Its Impact
A complete map of every subscription event, its MRR category, and its accounting consequence
The Eight Subscription Events
A SaaS company’s subscription database records a continuous stream of events: customers starting, expanding, shrinking, pausing, and ending their relationship with the product. Each event changes MRR and requires accounting entries. Managing these correctly — in the right period, at the right amount — is the core operational challenge of SaaS accounting.
| Event | MRR Impact | Deferred Revenue Impact | P&L Revenue Impact | Journal Entry Direction |
|---|---|---|---|---|
| New subscription (monthly) | + New MRR | No change (monthly = same period) | + Revenue this month | DR Cash / CR Revenue |
| New subscription (annual, upfront) | + New MRR | + Liability (deferred revenue) | + 1/12 per month as earned | DR Cash / CR Deferred Revenue; then monthly release |
| Plan upgrade (e.g. Starter → Pro) | + Expansion MRR | Adjust deferred if annual | + Additional revenue from upgrade date | DR Deferred (return old) / CR Deferred (new plan value) |
| Seat expansion (same plan, more seats) | + Expansion MRR | Adjust deferred if annual | + Seat revenue from expansion date | Same as upgrade — prorate for mid-cycle |
| Plan downgrade | − Contraction MRR | Reduce deferred proportionally | − Reduced revenue from downgrade date | Reverse portion of deferred; adjust future recognition |
| Subscription pause | MRR frozen | Adjust recognition schedule | Revenue suspended during pause | Suspend deferred release; resume when active |
| Cancellation (end of period) | − Churned MRR | Zero deferred at end of period | Continue to period end; zero after | Monthly release continues; zero at cancellation date |
| Cancellation (immediate, no refund) | − Churned MRR | Release remaining deferred to revenue | Accelerate remaining revenue recognition | DR Deferred / CR Revenue (full remaining balance) |
| Refund (within refund window) | − Churned MRR | Reverse deferred (if annual) or reverse revenue | Reduce revenue by refunded amount | DR Revenue (or Deferred) / CR Cash |
| Failed payment → recovered | No MRR change | No deferred change | Revenue recognised as normal; cash timing differs | No entry change; update cash when recovered |
| Failed payment → bad debt | − Churned MRR | Write off remaining deferred | Reverse revenue recognised since failure | DR Bad Debt Expense / CR Accounts Receivable |
Section 2 — New Subscriptions
Accounting for new monthly and annual sign-ups, including trial conversions and promotional pricing
Monthly Subscription — Simplest Case
A new monthly subscriber paying in advance of each month creates no deferred revenue. Cash received and revenue recognised occur in the same month. The only complication is VAT treatment, which depends on whether the customer is Estonian (24% charged), EU B2B (reverse charge, 0%), EU B2C (destination-country VAT via OSS), or non-EU (outside scope).
New Monthly Subscriber — €199/month (Estonian B2B customer)
| Account | Debit (DR) | Credit (CR) |
|---|---|---|
| Cash — Stripe | €199.00 | |
| Revenue — Monthly Subscriptions | €151.24 | |
| VAT Payable — KMD (24%) | €47.76 |
* €199 gross = €151.24 net + €47.76 VAT (24% of €151.24 = €47.76, or €199 ÷ 1.24 × 0.24). For EU B2B customers, charge 0% — DR Cash €151.24 / CR Revenue €151.24 only.
Annual Subscription — Upfront Payment
Annual subscriptions paid upfront are the most common source of complexity. The cash arrives on day one; the revenue earns over 12 months. The gap between cash and revenue recognition lives in the deferred revenue account.
New Annual Subscriber — €1,988 upfront (€199/month × 12 = €2,388 − 2 months free = €1,988)
| Account | Debit (DR) | Credit (CR) |
|---|---|---|
| Cash — Stripe | €1,988.00 | |
| Deferred Revenue — Annual Subs | €1,510.88 | |
| VAT Payable — KMD (24% — if Estonian) | €477.12 |
* Annual plan with 2 free months discount (€1,988 = 10 months paid, 2 free). VAT on the actual amount charged (€1,988). Deferred revenue = net amount = €1,988 ÷ 1.24 = €1,510.88. Recognition: €1,510.88 ÷ 12 = €125.91/month over 12 months.
Monthly Revenue Release — Annual Sub (each of 12 months)
| Account | Debit (DR) | Credit (CR) |
|---|---|---|
| Deferred Revenue — Annual Subs | €125.91 | |
| Revenue — Annual Subscriptions | €125.91 |
* No cash movement. Deferred liability reduces by €125.91 each month; P&L revenue increases. After month 12, deferred balance = €0.
Section 3 — Plan Upgrades and Seat Expansions
How to account for plan changes mid-cycle, including proration of deferred revenue
The Proration Policy
When a customer upgrades their plan mid-period — say, from Starter at €99/month to Pro at €249/month on day 15 of a 30-day billing month — you need to decide how to handle the partial period. Most SaaS billing systems (Stripe Billing, Chargebee) offer two approaches: immediate proration (adjust the current billing cycle) or next-cycle proration (change takes effect at the next billing date). Both are commercially acceptable, but each has different accounting implications and both require a documented, consistently-applied policy.
| Proration Approach | How It Works | Revenue Recognition Impact | Customer Billing Impact | Best For |
|---|---|---|---|---|
| Immediate — same cycle | Customer charged/credited for remaining days at new rate | Expansion MRR recorded from upgrade date; P&L reflects new rate | Invoice or credit adjustment in current cycle | High-value upgrades; enterprise customers who need immediate access |
| Next cycle (anniversary) | Change takes effect at next renewal; no proration | Expansion MRR recorded from first full cycle at new rate | No billing change this cycle | Self-serve; lower-value; where billing simplicity is priority |
Mid-Cycle Upgrade — Proration Charge (Day 11 of 31-day month)
A customer on a monthly Pro plan (€299/month) upgrades to Enterprise (€799/month) on day 11 of a 31-day month. Stripe immediately charges a proration invoice of €500 × (20/31) = €322.58 for the remaining 20 days at the higher rate.
| Account | Debit (DR) | Credit (CR) |
|---|---|---|
| Cash — Stripe (proration invoice) | €322.58 | |
| Revenue — Monthly Subscriptions (20/31 × €500) | €264.41 | |
| VAT Payable — KMD (24%) | €77.41 |
* Proration = €500 (rate difference) × 20/31 days remaining. Revenue recognised for the partial period. MRR impact: +€500 Expansion MRR (full monthly rate difference) from upgrade date. Next month: full €799 billed.
Annual Plan Upgrade — Deferred Revenue Adjustment
Upgrades on annual plans require adjusting the deferred revenue balance. The customer pre-paid for 12 months of Starter; they are now entitled to 12 months of Pro. The deferred balance must be increased to reflect the higher monthly value, and the incremental amount is typically charged as an additional prorated invoice.
Annual Plan Upgrade — Deferred Revenue Recalculation
Situation: Customer 6 months into annual Starter (€99/month), upgrades to Pro (€249/month)
Step 1: Current deferred revenue balance
Starter annual payment: €99 × 12 = €1,188 (excl. VAT)
Months elapsed: 6 months recognised = €99 × 6 = €594
Remaining deferred balance: €1,188 − €594 = €594
Step 2: Required deferred balance at the new plan
Remaining months: 6 months
New monthly rate: €249
Required deferred: €249 × 6 = €1,494
Step 3: Incremental charge to customer
Additional deferred needed: €1,494 − €594 = €900
This amount is billed to the customer as an upgrade invoice
Journal Entry:
DR Cash — Stripe (upgrade invoice): €900.00
DR Deferred Revenue — Annual Subs: €0 (reduce Starter portion)
CR Deferred Revenue — Annual Subs: €900.00 (increase to Pro level)
New deferred balance: €1,494 | Release: €249/month for remaining 6 months
Expansion MRR: +€150/month from upgrade date
Section 4 — Downgrades and Contractions
Reducing a subscription — the accounting impact and what it means for NRR
Plan Downgrade — Revenue Reduction
A downgrade reduces the monthly value of a subscription. For monthly plans, the reduction is recognised from the effective date of the downgrade. For annual plans, the excess deferred revenue must be either refunded to the customer or credited to their account for future periods, depending on your contract terms.
| Downgrade Type | MRR Impact | Deferred Revenue Adjustment | Accounting Entry | Common Policy |
|---|---|---|---|---|
| Monthly plan downgrade (immediate) | − Contraction MRR at downgrade date | No deferred — recognise reduced revenue from downgrade date | No special entry — just lower revenue recognition from next period | Apply immediately; notify customer of new billing rate |
| Monthly downgrade (end of cycle) | − Contraction MRR at next renewal | No deferred | Apply from next billing date | Standard; customer keeps current plan till expiry |
| Annual plan downgrade with refund | − Contraction MRR + potential churn | Reduce deferred to new plan value; refund excess | DR Deferred Revenue / CR Cash (refund) for excess | Rare — usually no refund on annual downgrades |
| Annual plan downgrade, credit applied | − Contraction MRR | Reduce deferred to new plan value; credit remainder to future | DR Deferred Revenue / CR Customer Credit Liability | Credit expires within 12 months typically |
| Seat removal (team plan) | − Contraction MRR for removed seats | Prorate if annual; immediate if monthly | Same as plan downgrade by equivalent seat value | Issue credit note; apply to next invoice or refund |
Contraction MRR represents value lost from customers who stayed but reduced their spend. Churn MRR represents value lost from customers who cancelled entirely. The distinction matters because: the NRR calculation treats them differently, the cause is typically different (product satisfaction vs pricing sensitivity), and the recovery path is different (expansion to recover contraction; win-back to recover churn).
Monthly Plan Downgrade — €249 Pro to €99 Starter (effective next cycle)
| Account | Debit (DR) | Credit (CR) |
|---|---|---|
| No journal entry required in the month of downgrade decision | ||
| At next renewal: cash collected = €99 (Starter rate) | ||
| Revenue recognised = €99 | ||
| MRR waterfall: shows −€150 Contraction MRR | ||
| Customer remains active — no deferred revenue impact | ||
| * For monthly plans: downgrade is a forward-looking change. No adjustment to current month’s revenue. The reduction appears in the MRR waterfall as Contraction MRR from the effective date. | ||
Section 5 — Subscription Pauses
How to handle revenue recognition when a subscription is temporarily suspended
What a Pause Means for Revenue Recognition
Some SaaS companies offer the ability to pause a subscription — typically for 1–3 months during which the customer retains some access or their data but is not billed. A pause effectively extends the subscription term: a 12-month subscription that is paused for 2 months becomes a 14-month subscription (12 paid months + 2 paused months, with billing resuming after the pause).
Under IFRS 15, a pause changes the timing of revenue recognition but not the total amount. If a customer pauses a monthly plan, no revenue is recognised during the pause period (no service delivery). For annual plans, the deferred revenue release is suspended during the pause; it resumes when the customer reactivates.
| Pause Scenario | During Pause | After Reactivation | Deferred Revenue Impact | MRR Impact |
|---|---|---|---|---|
| Monthly plan pause (billing suspended) | No revenue recognised; no cash collected | Billing resumes at full rate; revenue recognised normally | No deferred (monthly plan); just revenue stops | MRR frozen — not churned (still a contracted subscriber) |
| Annual plan pause (billing continues but service suspended) | Revenue recognition suspended; cash already collected | Recognition resumes; term extends by pause duration | Deferred release suspended; extends by pause months | MRR remains on dashboard — service paused not cancelled |
| Annual plan pause with billing also suspended | No new cash; recognition suspended | Extra billing at end of extended term | Deferred release suspended and extended | MRR frozen — not churned |
Some SaaS companies include paused subscriptions in MRR (treating them as contracted subscribers who will return); others exclude them (treating them as churned until they reactivate). Neither is definitively correct, but the policy must be consistent and disclosed. Most investors prefer to see paused subscriptions excluded from MRR — it avoids inflating the active revenue base with customers who are not currently paying.
Section 6 — Cancellations: End-of-Period and Immediate
How cancellation timing determines the accounting treatment
The Two Types of Cancellation
Subscription cancellations come in two forms with different accounting consequences. End-of-period cancellation means the customer cancels but retains access until their current billing period ends — revenue recognition continues normally until access ceases. Immediate cancellation means access is terminated now — if there is remaining deferred revenue (for annual plans), the treatment depends on your refund policy.
| Cancellation Type | Access | Revenue During Notice Period | Deferred Revenue Treatment | MRR Impact Date |
|---|---|---|---|---|
| Monthly — end of current period | Until billing period expires | Continue recognising €199/month until expiry | No deferred on monthly plan | MRR removes on last day of paid period |
| Monthly — immediate, no refund | Terminated now | Recognise what was paid for the current month (already recognised) | No deferred to adjust | MRR removes today |
| Annual — end of contracted term | Until contract end | Continue releasing €100/month until contract end | Continue monthly release until zero | MRR removes on last day of contract |
| Annual — immediate, no refund | Terminated now | Accelerate remaining deferred to revenue immediately | DR Deferred / CR Revenue (full remaining) | MRR removes today |
| Annual — immediate, with refund | Terminated now | Reverse revenue for refunded months | DR Revenue / CR Cash (refund amount) | MRR removes today |
End-of-Period Cancellation — Annual Plan (3 months remaining, no refund)
| Account | Debit (DR) | Credit (CR) |
|---|---|---|
| No immediate journal entry required | ||
| Continue monthly release: DR Deferred €100 / CR Revenue €100 | ||
| After 3 months: deferred = €0, recognition = complete | ||
| * Normal monthly entries continue until contract end. MRR is removed immediately on cancellation date (investor reporting), but P&L revenue continues until access ends. The timing difference is normal and should be disclosed. | ||
Immediate Cancellation — Annual Plan (6 months remaining, no refund)
| Account | Debit (DR) | Credit (CR) |
|---|---|---|
| Deferred Revenue — Annual Subs | €600.00 | |
| Revenue — Annual Subscriptions | €600.00 |
* The remaining 6 months of deferred revenue (€100/month × 6 = €600) is recognised immediately because there is no longer a performance obligation to deliver future service. Revenue accelerated; deferred cleared. MRR loss: −€100/month churned.
Immediate Cancellation with Refund — Annual Plan (6 months, 50% refund policy)
| Account | Debit (DR) | Credit (CR) |
|---|---|---|
| Deferred Revenue — Annual Subs | €600.00 | |
| Revenue — Annual Subscriptions | €300.00 | |
| Cash — Refund to Customer | €300.00 |
* Company has a 50% refund policy for remaining term. €300 recognised as earned revenue (first 6 months × 50% of monthly rate attribution); €300 refunded. Deferred revenue fully cleared.
Section 7 — Refunds and Chargebacks
Revenue reversal, VAT adjustments, and the MRR impact of refund events
Refund Accounting — Three Scenarios
Refunds reverse previously recognised revenue. The accounting entries depend on whether the refund occurs in the same accounting period as the original revenue (simpler — just reverse) or in a later period (more complex — revenue reversal affects current period P&L).
Scenario A — Same-Month Refund (customer refunded in same month as charge)
| Account | Debit (DR) | Credit (CR) |
|---|---|---|
| Revenue — Monthly Subscriptions | €151.24 | |
| VAT Payable — KMD | €47.76 | |
| Cash — Stripe (refund issued) | €199.00 |
* Simplest case: revenue reversed in the same period as recognition. Net effect on P&L: zero revenue for this customer in this month. VAT also reversed on KMD return.
Scenario B — Prior-Period Refund (customer refunded in a later month)
| Account | Debit (DR) | Credit (CR) |
|---|---|---|
| Revenue — Monthly Subscriptions | €151.24 | |
| VAT Payable — KMD (current month) | €47.76 | |
| Cash — Stripe | €199.00 |
* Refund in a later month reduces current-month revenue — not prior month. IFRS requires adjustments in the period they occur, not retroactively (unless material and a prior period error). VAT credit note issued; KMD reduced in current month.
Scenario C — Chargeback (customer disputes and bank reverses payment)
| Account | Debit (DR) | Credit (CR) |
|---|---|---|
| Revenue — Monthly Subscriptions | €161.99 | |
| VAT Payable — KMD | €51.12 | |
| Chargeback Fee Expense | €15.00 | |
| Cash — Stripe | €213.11 | |
| Accounts Receivable (if disputing) | €5.00 |
* Chargeback: Stripe reverses the customer payment AND charges a dispute fee (typically €15). Revenue reversed; VAT reversed; dispute fee is a period cost. If disputing the chargeback, retain a receivable for the expected recovery amount.
Year-End Refund Provision
If your subscription has a refund policy and you expect some December subscribers to refund in January, you should accrue a provision for expected refunds at year-end. This ensures the December P&L is not overstated with revenue that will subsequently be reversed.
Year-End Refund Provision
December new subscriptions: 180
Historical 30-day refund rate (new customers): 3.8%
Expected refunds in January for December sign-ups: 180 × 3.8% = 7 refunds
Average subscription value (excl. VAT): €163
Expected refund amount: 7 × €163 = €1,141
Year-end provision entry (31 December):
DR Revenue — Monthly Subscriptions: €1,141
CR Refund Provision Liability: €1,141
In January, as actual refunds processed:
DR Refund Provision Liability: €1,141
CR Cash — Stripe (refunds issued): €1,141
* Provision reverses as actual refunds occur
* Adjust provision if actual refund rate differs from estimate
Section 8 — Failed Payments and Dunning
What happens to revenue recognition when a payment fails
The Dunning Cycle
A failed payment does not immediately mean a customer has churned. Most billing platforms (Stripe, Paddle) have built-in dunning — automatic retry logic that attempts to collect the payment multiple times over several days, typically with email notifications to the customer. The accounting treatment during the dunning period depends on your assessment of collectability.
Initial charge declined. Stripe records failure; dunning sequence begins. No accounting change yet.
Automated emails sent to customer. Stripe retries payment (Day 3, Day 5, Day 7 typically).
Payment recovered within dunning period. Revenue recognised normally. Brief accounts receivable period.
If no payment after 7–14 days: access suspended, subscription marked inactive in billing system.
Assess: likely to recover (receivable) or bad debt (expense)? Decision drives journal entries.
Accounting During and After Dunning
| Dunning Outcome | Revenue Treatment | Journal Entries | MRR Treatment |
|---|---|---|---|
| Payment recovered within dunning | Recognise normally — no gap | DR Cash / CR Revenue when recovered (if posted as receivable during gap) | MRR unchanged — customer stays active |
| Customer updates card and pays late | Recognise at payment date; possible late fee | DR Cash / CR Revenue + DR Cash / CR Other Income (late fee) | MRR unchanged if grace period not exceeded |
| Payment not recovered; customer churns | Reverse revenue from failed payment date | DR Bad Debt Expense / CR Accounts Receivable (if posted) OR reverse revenue entry | − Churned MRR from failure date |
| Partial recovery (customer pays partial) | Recognise the partial amount collected | DR Cash / CR Revenue (partial); write off remainder as bad debt | Assess whether to downgrade or churn MRR |
If a monthly subscriber’s January payment fails and is not recovered by 31 January, you should not include that subscriber’s January revenue in your P&L. Revenue under IFRS 15 requires that it is probable the company will collect the consideration. A payment that has been failing for the entire month is not probable to be collected. Post the month’s revenue initially, and if the payment does not recover by the time you close the books, reverse the recognition and record a bad debt. Most SaaS companies with a normal dunning cycle resolve failed payments within 7 days — only genuinely unresolvable failures require the bad debt treatment.
Section 9 — The Full Monthly MRR Waterfall
A comprehensive month-end MRR movement report reconciling to P&L revenue
Building the Complete Waterfall — October 2025
| Event / Customer | Plan | MRR Movement (€) | MRR Impact | Accounting Entry |
|---|---|---|---|---|
| OPENING MRR (30 September) | €42,800 | Opening | Balance brought forward | |
| NEW SUBSCRIPTIONS | ||||
| Acme Innovations | Pro Annual | + €249 | New MRR | DR Cash / CR Deferred |
| TechFlow GmbH | Starter Monthly | + €99 | New MRR | DR Cash / CR Revenue |
| Quantum Labs (3 seats) | Team Annual | + €597 | New MRR | DR Cash / CR Deferred |
| + 8 other new customers | Various | + €1,320 | New MRR | Per plan type |
| EXPANSION MRR | ||||
| BuildStack Ltd | Pro → Enterprise | + €500 | Expansion | Proration charge |
| Nordic Solutions (added 5 seats) | Team Plan | + €295 | Expansion | Seat addition invoice |
| + 4 other expansions | Various | + €480 | Expansion | Per upgrade type |
| CHURNED MRR | ||||
| StartupXYZ | Starter Annual | − €99 | Churn | DR Deferred / CR Revenue (remaining) |
| Freelancer AB | Pro Monthly | − €249 | Churn | Monthly plan ends; no entry |
| + 3 other cancellations | Various | − €480 | Churn | Per plan and timing |
| CONTRACTION MRR | ||||
| DataCo | Enterprise → Pro | − €550 | Contraction | Downgrade — future billing reduced |
| MicroSoft Inc | Removed 3 seats | − €177 | Contraction | Proration credit issued |
| REACTIVATED MRR | ||||
| OldCustomer GmbH | Pro Monthly (reactivated) | + €249 | Reactivation | New subscription entry |
| CLOSING MRR (31 October) | €44,533 | Closing | Opening + all movements | |
| Net New MRR | + €1,733 | Net | New + Exp − Churn − Cont + React | |
| MoM Growth | + 4.1% | Growth | €1,733 ÷ €42,800 | |
NRR Calculation — October 2025
| Metric | Starter Plan | Pro Plan | Combined |
|---|---|---|---|
| Opening MRR (from cohort) | €18,200 | €16,400 | €34,600 |
| + Expansion MRR | €480 | €795 | €1,275 |
| − Churned MRR | −€99 | −€498 | −€597 |
| − Contraction MRR | −€177 | −€550 | −€727 |
| Closing MRR (cohort only) | €18,404 | €16,147 | €34,551 |
| NRR % | 101.1% | 98.5% | 99.9% |
An NRR above 100% means existing customers are paying more this month than last month — expansion revenue is outpacing churn and contraction from the same cohort. This creates compounding revenue growth: even with no new customer acquisition, the company’s revenue grows. An NRR below 100% means the base is eroding — churn and contraction exceed expansion. Investors typically look for NRR above 110% for a healthy B2B SaaS business, with 120%+ indicating excellent product-market fit and expansion motion.