Accounting for SaaS Companies in Estonia
A complete bookkeeping guide for Estonian SaaS businesses — chart of accounts, MRR waterfall accounting, deferred revenue schedules, capitalised development costs, and the monthly close process.
5 Key Takeaways From This Page
Your chart of accounts must be SaaS-specific
A generic accounting template designed for a service company lacks the accounts needed for deferred revenue, capitalised development costs, MRR movement categories, and software subscription income. Building the right structure from day one saves months of rework.
Cash received ≠ revenue earned for subscription businesses
When a customer pays €2,400 for a two-year subscription, you receive €2,400 in cash — but you earn only €100 per month as you deliver the service. The gap between cash and recognised revenue lives on your balance sheet as deferred revenue until earned.
Development costs require two separate accounting treatments
Under IAS 38, research-phase costs are expensed immediately. Development-phase costs — once you have a technically feasible plan and intent to complete — must be capitalised as an intangible asset and amortised. Expensing everything overstates costs; capitalising everything overstates assets.
The MRR waterfall is your single most important financial report
The MRR waterfall — opening MRR → new MRR → expansion → churn → contraction → closing MRR — tells the story of your business more clearly than any P&L. Investors use it to assess growth quality; it also reconciles your subscription database to your P&L.
Monthly close is 3–5 days — if your processes are right
A SaaS monthly close that takes two weeks is a sign of under-built processes. With the correct chart of accounts, automated revenue recognition schedules, and integration between your billing system and accounting software, the close should be complete by the 5th of the following month.
What does accounting for a SaaS company involve? The core difference from a standard service company is revenue recognition: prepaid subscriptions create deferred revenue liabilities that release to the P&L over the subscription term. Beyond this, SaaS accounting involves: monthly MRR waterfall reporting, capitalised development costs under IAS 38, cost of revenue separation (hosting, support, customer success), and integration between the billing platform and the accounting system. This page covers each of these workstreams with specific account structures, journal entries, and worked examples.
Section 1 — Chart of Accounts for a SaaS OÜ
The complete account structure — built for subscription revenue, deferred revenue, capitalised dev costs, and SaaS cost of revenue.
Why a SaaS-Specific CoA Is Necessary
A chart of accounts for a SaaS company needs several account categories that simply do not exist in standard templates: a deferred revenue account for prepaid subscriptions, separate cost of revenue accounts that capture hosting, third-party APIs, customer success, and support costs (not just COGS in the physical goods sense), capitalised software development as an intangible asset, and revenue accounts separated by subscription tier and type.
The structure below is designed for an Estonian SaaS OÜ with monthly and annual subscription plans, a small amount of professional services revenue, a remote team, and cloud infrastructure costs. Adapt it to your specific product and cost profile.
| Code | Account Name | Notes |
|---|---|---|
| 1000–1999 ASSETS | ||
| 1010 | Cash — Estonian Bank (EUR) | Primary operating account |
| 1020 | Cash — Wise Business | Multi-currency payment receipts |
| 1030 | Cash — Stripe / Paddle Balance | Payment processor holding balance before payout |
| 1100 | Trade Receivables — B2B Invoiced | For annual contracts billed and recognised but not yet paid |
| 1110 | VAT Receivable | Input VAT reclaimable |
| 1120 | Prepaid Expenses | SaaS tools, insurance, annual subscriptions paid in advance |
| 1200 | Capitalised Software Development | Costs capitalised under IAS 38 — net of accumulated amortisation |
| 1210 | Accumulated Amortisation | Contra-asset: running amortisation of capitalised dev costs |
| 1220 | Other Intangibles (purchased IP, brand) | IP acquired externally — amortised over useful life |
| 1300 | Security Deposits | Office lease deposits; platform bonds |
| 2000–2999 LIABILITIES | ||
| 2010 | Trade Payables | Supplier invoices not yet paid |
| 2100 | VAT Payable — Estonian KMD | Output VAT on Estonian sales |
| 2110 | VAT Payable — OSS | EU B2C digital service VAT (if applicable) |
| 2200 | Deferred Revenue — Monthly Subs | Prepaid monthly subscriptions not yet earned |
| 2210 | Deferred Revenue — Annual Subs | Annual subscription payments not yet earned (most significant) |
| 2220 | Deferred Revenue — Multi-Year Subs | 2+ year contract amounts not yet earned |
| 2230 | Deferred Revenue — Setup Fees | One-time setup fees amortised over expected customer life |
| 2300 | Accrued Liabilities | Expenses incurred but not yet invoiced (e.g. hosting, contractors) |
| 2400 | Income Tax Payable | Corporate income tax payable on distributions |
| 2500 | Social Tax Payable | Employer social and income tax on payroll — due 10th of month |
| 2600 | Loans and Convertibles | SAFE notes, convertible loans, bank debt |
| 3000–3999 EQUITY | ||
| 3000 | Share Capital | Minimum €2,500 |
| 3100 | Share Premium | Investment above par value |
| 3200 | ESOP Reserve | Options expense accrued under IFRS 2 |
| 3300 | Retained Earnings | Accumulated prior-year results |
| 3400 | Current Year Result | Current year net profit / (loss) |
| 4000–4999 REVENUE | ||
| 4010 | Revenue — Monthly Subscriptions | MRR from monthly-billed plans |
| 4020 | Revenue — Annual Subscriptions | Recognised portion of annual prepayments (1/12 per month) |
| 4030 | Revenue — Multi-Year Contracts | Recognised portion of multi-year deals |
| 4040 | Revenue — Professional Services | Implementation, consulting, custom work — recognised on delivery |
| 4050 | Revenue — Add-ons / Usage-Based | Overage charges, add-on features, usage-based billing |
| 4060 | Revenue — Marketplace / Reseller | Licences sold through channel partners |
| 4070 | Revenue — Other | Miscellaneous (grants treated as income, referral fees) |
| 5000–5999 COST OF REVENUE | ||
| 5010 | Cloud Hosting and Infrastructure | AWS, GCP, Azure — direct hosting costs for product delivery |
| 5020 | Third-Party API Costs | OpenAI, Stripe fees, Twilio, SendGrid — per-customer usage costs |
| 5030 | Customer Success Salaries | CS team time allocated to onboarding, renewals, support |
| 5040 | Support Tool Costs | Intercom, Zendesk, or similar — customer-facing tools |
| 5050 | Payment Processing Fees | Stripe/Paddle transaction fees on subscription payments |
| 5060 | Amortisation — Capitalised Software | Monthly amortisation of IAS 38 capitalised dev costs |
| 6000–6999 OPERATING EXPENSES | ||
| 6010 | R&D Salaries — Research Phase | Developer salaries allocated to research activities (expensed) |
| 6020 | R&D Salaries — Development Phase | Developer salaries capitalised under IAS 38 (credit here, debit 1200) |
| 6030 | Marketing and Growth | Paid ads, content, SEO, events, brand |
| 6040 | Sales Salaries and Commissions | AE and SDR compensation; commission on new ARR |
| 6050 | G&A — Accounting and Legal | Professional fees |
| 6060 | G&A — Software Tools (Internal) | Notion, Slack, Figma, internal tools — not customer-facing |
| 6070 | G&A — Office and Remote Work | Co-working, equipment, home office allowances |
| 6080 | ESOP Expense | Non-cash option vesting expense per IFRS 2 |
| 6090 | Depreciation — Fixed Assets | Hardware, furniture depreciation |
| 7000–7999 FINANCIAL ITEMS | ||
| 7010 | FX Gain / (Loss) | Realised and unrealised currency movements |
| 7020 | Interest Income | Bank and money market interest |
| 7030 | Interest Expense | Loan interest; convertible note interest |
| 7040 | Fair Value Adjustments | SAFE revaluation if treated as liability; warrant fair values |
Section 2 — Deferred Revenue: The SaaS Balance Sheet Engine
How prepaid subscriptions create, build, and release the deferred revenue liability month by month.
The Deferred Revenue Lifecycle
Deferred revenue is one of the most important and most misunderstood items on a SaaS balance sheet. It represents cash received from customers for services not yet delivered. It is a liability — the company owes the customer future service delivery in exchange for the payment already made. As the service is delivered each month, the deferred revenue is released to recognised revenue on the P&L.
A growing SaaS company should see its deferred revenue balance increasing over time — this is a healthy sign that annual subscription sales are growing faster than the monthly release. A declining deferred revenue balance in a growing company may indicate a shift from annual to monthly plans, which reduces upfront cash and should be monitored.
JE-1 — Annual Subscription Received (€1,200/year, 1 January)DR Cash — Bank €1,200 / CR Deferred Revenue — Annual Subs €1,200
Cash received but not yet earned. Full amount goes to deferred revenue. No revenue recognised on 1 January.
JE-2 — Monthly Revenue Release (€100/month through December)DR Deferred Revenue — Annual Subs €100 / CR Revenue — Annual Subscriptions €100
On the last day of each month: €1,200 ÷ 12 = €100 released from deferred to recognised revenue. Repeated 12 times through December 31.
Deferred Revenue Schedule — Multi-Subscriber Example
In practice, deferred revenue is tracked customer-by-customer in a schedule (often a spreadsheet or within your billing tool). The schedule shows each annual subscriber, their subscription start date, monthly release amount, and the remaining deferred balance at any point. This schedule is the source document for your balance sheet deferred revenue figure and for the revenue recognition journal entries each month.
Annual Subscription Deferred Revenue Schedule — Position at 31 March 2026
| Customer | Annual Value | Start Date | Monthly Release | Jan | Feb | Mar | Deferred Balance |
|---|---|---|---|---|---|---|---|
| Acme Corp | €2,400 | 01 Jan 2024 | €200 | €200 | €200 | €200 | €1,800 |
| BioTech GmbH | €4,800 | 01 Jan 2024 | €400 | €400 | €400 | €400 | €3,600 |
| Nordic Solutions | €1,200 | 01 Feb 2024 | €100 | — | €100 | €100 | €1,000 |
| TechStack Ltd | €3,600 | 15 Feb 2024 | €300 | — | €150 | €300 | €3,150 |
| Startup AB | €2,400 | 01 Mar 2024 | €200 | — | — | €200 | €2,200 |
| Total | €14,400 | — | €1,200 | €600 | €850 | €1,200 | €11,750 |
Section 3 — MRR Waterfall Accounting
How to track monthly MRR movements and reconcile them to your recognised P&L revenue.
The MRR Movement Categories
The MRR waterfall is a structured view of how your Monthly Recurring Revenue changed during a period. It breaks the movement from Opening MRR to Closing MRR into five distinct categories, each of which tells a different story about business health. Unlike the P&L, which shows revenues on an accrual basis, the MRR waterfall is a subscription-database metric — it shows contracted recurring value at each point in time.
MRR added from brand new customers who were not subscribers at the start of the month. Growth engine.
Additional MRR from existing customers who upgraded their plan, added seats, or purchased add-ons.
MRR lost from customers who cancelled their subscription during the month. Primary health indicator.
MRR lost from existing customers who downgraded their plan or removed seats — but did not cancel.
MRR from customers who had previously churned and resubscribed. Indicates product-market fit recovery.
Monthly MRR Waterfall — Worked Example
MRR Waterfall — April 2026
| Movement | Count | MRR Value (€) | Cumulative MRR (€) |
|---|---|---|---|
| Opening MRR (31 March 2026) | 142 | €28,400 | €28,400 |
| + New MRR | +11 | +€2,090 | €30,490 |
| + Expansion MRR | +8 | +€960 | €31,450 |
| − Churned MRR | −6 | −€1,140 | €30,310 |
| − Contraction MRR | −4 | −€480 | €29,830 |
| + Reactivated MRR | +1 | +€190 | €30,020 |
| Closing MRR (30 April 2026) | 152 | €30,020 | €30,020 |
Opening MRR: €28,400 | + New MRR: +€2,090 | + Expansion MRR: +€960 | − Churned MRR: −€1,140 | − Contraction MRR: −€480 | + Reactivated MRR: +€190
Closing MRR: €30,020 | Net New MRR: +€1,620 | MoM Growth Rate: 5.7% | Churn Rate: 4.0%
MRR Waterfall → P&L Revenue Reconciliation
April MRR = €30,020 | April recognised revenue = ?
Monthly subscriptions recognised in April: €18,920
Annual sub portion recognised in April: (Annual subs total €122,400 ARR ÷ 12): €10,200
Professional services delivered in April: +€900
Total April recognised revenue (P&L): €30,020
Equals closing April MRR: ✅ (when all plans are recognised monthly)
* Note: MRR = recognised revenue only when all plans are monthly or annual with perfect ratable recognition. If recognition differs from billing cycle (e.g. milestone-based), reconciling item will exist.
Section 4 — Capitalised Development Costs Under IAS 38
What qualifies for capitalisation, how to track it, and how to amortise the resulting asset.
IAS 38 — The Two-Phase Model
IAS 38 (Intangible Assets) requires that internally generated software development costs be assessed against a two-phase model. The first phase — research — encompasses all work done to explore whether and how to solve a problem. These costs are expensed as incurred. The second phase — development — begins once the company has decided to build a specific solution, has a viable technical approach, intends to complete the project, and has the resources to do so. Development-phase costs meeting all six IAS 38 criteria must be capitalised.
For a SaaS company, the practical split is approximately: sprint planning, architecture research, and proof-of-concept work are research (expensed); coding of confirmed features, testing, and deployment preparation are development (capitalise). The demarcation must be documented — it cannot be determined retrospectively.
| IAS 38 Criterion | Met When… | Practical SaaS Evidence |
|---|---|---|
| Technical feasibility– | Team has confirmed the feature can be built with available technology– | Architecture document, technical specification, proof of concept completed– |
| Intention to complete– | Management decision made to fund and deliver the feature– | Sprint backlog inclusion; product roadmap sign-off; resource allocation– |
| Ability to use / sell– | Product will be sold to customers or used internally when complete– | Business case; pricing model; customer commitments or letters of intent– |
| Generate probable economic benefit– | Feature is expected to attract or retain subscribers– | User research; competitive analysis; churn analysis linking to feature gap– |
| Adequate resources– | Budget, team capacity, and technology available to complete– | Resource plan; allocated engineering hours; budget approval– |
| Reliable measurement– | Costs can be reliably attributed to the development activity– | Time tracking system; sprint-to-feature mapping; contractor invoices by project– |
Tracking Capitalised Development Costs
The practical challenge in capitalising development costs is tracking which hours of developer time relate to capitalised development versus expensed research or maintenance. This requires a time-tracking system where developers log hours against tagged categories: Research, Development (capitalise), Bug Fix/Maintenance, Internal Tools, and Admin.
Monthly Capitalised Development Cost Calculation
Development team for March 2026:
Senior Developer 1: €6,500/month salary + €2,145 social tax = €8,645 total cost
Senior Developer 2: €6,200/month salary + €2,046 social tax = €8,246 total cost
Junior Developer: €3,800/month salary + €1,254 social tax = €5,054 total cost
Total team cost: €21,945/month
Time allocation (from Toggl/Harvest time logs):
Research phase (expensed): 12% → €2,633
Development phase (capitalise): 68% → €14,922
Bug fixes and maintenance (expensed): 15% → €3,292
Internal tools and admin (expensed): 5% → €1,098
Amount capitalised in March: €14,922
Amount expensed (R&D / maintenance): €7,023
* Accumulate monthly: capitalised asset on balance sheet grows | Amortisation begins when feature is deployed to production
JE-3 — Capitalising Monthly Development CostsDR Capitalised Software Development (1200) €14,922 / CR R&D Salaries — Development Phase (6020) €14,922
Development-phase salaries and social taxes capitalised as an intangible asset. The expense account (6020) is credited — cost flows to asset rather than P&L expenses. Research-phase costs remain in expense accounts.
Amortisation of Capitalised Development Costs
Once a capitalised feature or software module is complete and available for use (deployed to production), amortisation begins. The amortisation period is the estimated useful economic life of the asset — typically 3–5 years for SaaS software components, though this varies by type. Amortisation is charged to Cost of Revenue (Account 5060) because it represents the ongoing cost of delivering the product to customers.
| Asset Type | Typical Useful Life | Amortisation Method | Monthly Charge on €100,000 Asset |
|---|---|---|---|
| Core platform features (long-lived) | 5 years | Straight-line | €1,667/month |
| Standard feature modules | 3 years | Straight-line | €2,778/month |
| Integration components | 2–3 years | Straight-line | €2,778–4,167/month |
| Significant UI overhaul | 2 years | Straight-line | €4,167/month |
| Quick feature builds (short-lived) | 1 year | Straight-line | €8,333/month |
JE-4 — Monthly Amortisation of Capitalised Software
| Account | Debit (DR) | Credit (CR) |
|---|---|---|
| COGS — Amortisation: Capitalised Software (5060) | €3,850 | |
| Accumulated Amortisation (1210) | €3,850 |
Amortisation of €46,200 of capitalised features at an average 3-year useful life: €46,200 ÷ 36 months = €1,283/month base + additional assets per project schedule = €3,850 total. Charged to COGS — not OpEx — because it is a product delivery cost.
Section 5 — Cost of Revenue for SaaS
What belongs in COGS vs operating expenses — and why the distinction matters for gross margin.
SaaS Cost of Revenue — The Definition
Cost of revenue (also called COGS) for a SaaS company comprises costs that are directly tied to delivering the product to customers — costs that scale with customer count or usage, and without which the product could not be delivered. It is important to distinguish these from operating expenses, which are period costs of running the business that do not directly drive product delivery.
The gross margin percentage (revenue minus cost of revenue, divided by revenue) is one of the most important benchmarks investors use to assess a SaaS company. A SaaS business typically targets 70–80%+ gross margin. Getting COGS classification right is essential for meaningful benchmarking — overloading COGS with operating costs artificially depresses gross margin; underloading it makes the business look more efficient than it is.
| Cost Item | COGS or OpEx? | Reasoning |
|---|---|---|
| Cloud hosting (AWS, GCP, Azure) for production environment | COGS | Directly delivers the product — varies with usage/customers |
| Third-party APIs used in product (OpenAI, Stripe, Twilio) | COGS | Per-customer or per-transaction costs integral to product |
| Payment processing fees on subscriptions | COGS | Direct cost of collecting subscription revenue |
| Customer success team salaries | COGS | CS directly delivers onboarding and ensures product value; scales with customers |
| Support tool costs (Intercom, Zendesk) | COGS | Customer-facing tooling — direct product delivery cost |
| Amortisation of capitalised software (IAS 38) | COGS | Ongoing cost of delivering the capitalised product capability |
| Developer salaries — new feature development | OpEx (or Capitalise under IAS 38) | Not a delivery cost of current product; future product creation |
| Developer salaries — bug fixes and maintenance | OpEx | Maintenance of existing capability — period cost |
| Marketing and advertising spend | OpEx | Customer acquisition, not delivery |
| G&A (accounting, legal, office) | OpEx | Period overhead costs |
| Sales team salaries | OpEx | Customer acquisition — not delivery |
| Internal tools (Notion, Figma, Slack) | OpEx | Not customer-facing |
Gross Margin Analysis — What a SaaS P&L Should Show
SaaS P&L Format — April 2026 (Monthly)REVENUE
Monthly subscriptions: €18,920
Annual subscriptions (recognised portion): €10,200
Professional services: €900
Total Revenue: €30,020
COST OF REVENUE
Cloud hosting (AWS): −€2,840
Third-party APIs (OpenAI, Stripe fees): −€1,520
Customer success salaries + social tax: −€3,200
Support tools (Intercom): −€290
Software amortisation (IAS 38): −€3,850
Total Cost of Revenue: −€11,700
GROSS PROFIT: €18,320
GROSS MARGIN: 61.0%
OPERATING EXPENSES
R&D (expensed portion — research + maintenance): −€7,023
Marketing and growth: −€5,800
Sales salaries and commissions: −€6,200
G&A (accounting, legal, software tools): −€3,100
ESOP expense (non-cash): −€800
Total Operating Expenses: −€22,923
OPERATING LOSS (EBITDA proxy): −€4,603
* Gross margin of 61% is below typical SaaS benchmark of 70–80% | CS costs and amortisation are high relative to ARR — review at scale
Section 6 — Billing System Integration
Connecting Stripe, Paddle, or ChartMogul to your accounting software for automated revenue recognition.
Why Integration Is Critical for SaaS
A SaaS company with 200 subscribers, a mix of monthly and annual plans, regular new sign-ups, upgrades, downgrades, and churns generates hundreds of subscription events per month — each with revenue recognition implications. Managing this manually in a spreadsheet is error-prone, time-consuming, and becomes unscalable beyond approximately 50 subscribers. Integration between your billing platform and accounting software is not optional at scale — it is a prerequisite for accurate monthly closes.
| Billing Platform | Native Accounting Integration | Via A2X or Similar | Revenue Recognition Automation | Best Suited For |
|---|---|---|---|---|
| Stripe Billing | Stripe Revenue Recognition (built-in Stripe feature) | Yes — A2X, Synder, Xero direct | Yes — handles deferred revenue natively if configured | Monthly/annual subscriptions; per-seat pricing |
| Paddle | Paddle Retain; limited native sync | Yes — A2X; manual CSV available | Partial — provides revenue breakdown but requires mapping | B2C SaaS; handles EU VAT natively |
| ChartMogul | No direct accounting sync (analytics tool only) | Exports for accountant use | MRR analytics only — not accounting recognition | Subscription analytics dashboard layer on top of Stripe/Paddle |
| Chargebee | Direct Xero/QuickBooks sync | Native integration available | Yes — deferred revenue schedules built-in | Complex billing models; enterprise SaaS |
Stripe Revenue Recognition — Setup for Estonian OÜ
Stripe Revenue Recognition is a built-in Stripe feature (available on Stripe’s Growth plan) that automatically creates deferred revenue schedules for each subscription, recognises revenue monthly, and generates accounting-ready reports. For an Estonian OÜ using Stripe, this is the most straightforward path to automated IFRS 15-compliant revenue recognition.
Stripe Dashboard → Revenue Recognition → Enable. Configure accounting periods and recognition rules.
Set up recognition schedules: monthly subs recognise immediately; annual subs recognise 1/12 per month. Map performance obligations.
Stripe → Xero direct integration or via A2X. Map Stripe accounts to your chart of accounts in Xero.
At month-end, sync posts recognised revenue, deferred revenue movements, and fee charges to Xero automatically.
Accountant reviews the imported journal entries before posting. Verify deferred revenue balance matches Stripe’s schedule.
Section 7 — The SaaS Monthly Close Process
Day-by-day timeline from month-end to filed returns and investor pack.
Target: Close by the 5th, Investor Pack by the 7th
A well-run SaaS company should be able to close its books within 5 days of month-end. The key constraint is not data volume — it is process design. With automated billing integration, pre-built revenue recognition schedules, and clear accountant ownership, the close is predictable and fast. When it takes longer than 10 days, the root cause is usually missing integration, unresolved prior-month items, or unclear ownership.
| Day | Task | Source | Sign-Off When |
|---|---|---|---|
| Day 1 | Billing system sync (Stripe/Paddle) | Stripe Revenue Recognition or A2X | Deferred revenue schedule reconciles to billing platform |
| Day 1 | Bank reconciliation | Bank feed (LHV/Wise bank feed) | Every transaction matched; no unreconciled items |
| Day 2 | Revenue recognition journal entries | Billing system export | P&L revenue matches deferred revenue schedule release |
| Day 2 | Post capitalised dev costs | Time tracking system (Toggl/Harvest) | Capitalisation amount supported by time log allocation |
| Day 2 | Amortisation of capitalised software | Asset register | Monthly amortisation charge posted per asset schedule |
| Day 2 | Payroll journal entries (Estonian staff) | TSD declaration | Salary, social tax, income tax all posted |
| Day 3 | EOR invoices for international staff | Deel/Remote invoices | Each EOR invoice posted; headcount reconciled |
| Day 3 | Accruals (hosting, tools, subscriptions) | Contracts and usage reports | All month-end liabilities recognised |
| Day 3 | ESOP expense (if applicable) | Vesting schedule | Monthly option expense posted per IFRS 2 schedule |
| Day 4 | MRR waterfall built and reviewed | Subscription database / ChartMogul | Opening MRR + movements = Closing MRR; reconciles to revenue |
| Day 4 | P&L, balance sheet, cash flow reviewed | Accounting system | No unexplained variances > 5% vs prior month |
| Day 5 | KMD VAT return prepared | Revenue data from P&L | Output VAT matches sales; input VAT matches purchase invoices |
| By 7th | Investor/board report prepared | All above + MRR dashboard | Distributed to investors/board by agreed date |
| By 10th | Estonian payroll TSD filed and paid | EMTA e-Tax portal | Confirmation received from EMTA |
| By 20th | KMD VAT filed and paid | EMTA e-Tax portal | Confirmation received from EMTA |