SaaS Chart of Accounts Template: Separate Revenue, COGS, and Operating Spend

Alex Stojanovic
Founder, CEO
October 29, 2026
Last Updated:
October 29, 2026
SaaS Chart of Accounts Template: Separate Revenue, COGS, and Operating Spend

A SaaS chart of accounts is the numbered list of ledger accounts that keeps subscription, usage, and service revenue, delivery costs (COGS), and operating spend in separate places, so gross margin and EBITDA come straight from the books.

Your chart of accounts decides whether you can read gross margin, deferred revenue, and CAC inputs from the ledger or have to rebuild them in a spreadsheet every month. Most charts fail because they were copied from a generic small-business template.

This article gives you an open account hierarchy you can copy, mapping examples for billing events, and three rules for deciding what is an account, what is COGS, and what is a dimension.

Key takeaways

  • Give each revenue type its own account, because each one is recognized differently.
  • Put a cost in COGS only if it is part of delivering the product to existing customers.
  • Use accounts for what a transaction is and dimensions for how you want to slice it.
  • Keep the chart small early and add accounts only when a decision needs them.

Why the chart of accounts sits under every forecast

Finance work has three layers: bookkeeping, accounting, and FP&A. If the bottom two are wrong, better modeling does not help. As we put it in our breakdown of bookkeeping versus accounting for SaaS, "a clean forecast built on misclassified data still gives you the wrong answer".

The chart of accounts is where that misclassification starts. If hosting, support payroll, and commissions land in the wrong ranges, your gross margin is wrong before anyone opens the model.

"Investors will find it in diligence, and you will find it when a board member asks why margin moved."

— Aleksandar Stojanovic, CEO & Founder at Fiscallion

Default QuickBooks and Xero templates are built for generic businesses. They usually have one "Revenue" account and no deferred revenue. Our work sits above the ledger, so the structure below is the one we want in place before building forecasts, scenarios, or board reporting. Your accountant or bookkeeper still maintains the ledger itself.

The four accounts that define a SaaS chart

DualEntry's SaaS chart guide names four accounts that separate a SaaS chart from a generic one: subscription revenue, current deferred revenue, hosting and infrastructure COGS, and capitalized software development. We would add two more: contra-revenue for discounts and refunds, and a payment processing line in COGS.

Founderpath's sample SaaS chart lists six SaaS-specific differences from a generic chart:

  • Deferred revenue, which generic charts lack.
  • Payment processing fees in COGS. Founderpath notes that missing this makes gross margin read two to three points high.
  • Production hosting in COGS, with staging and CI in R&D.
  • Engineering payroll split between delivery (COGS) and product development (R&D).
  • Sales commissions on their own line, so CAC inputs are visible in the ledger.
  • Discounts and refunds as contra-revenue.

Treat that list as your minimum. Every item changes a number a board or investor will look at.

Open template: a SaaS chart of accounts hierarchy you can copy

Use the first digit to set the group: 1 assets, 2 liabilities, 3 equity, 4 revenue, 5 COGS, 6 operating expenses, 7 other income, 8 other expense, following Maxio's SaaS numbering guide. Number in steps of ten so you can insert accounts later without renumbering. Founderpath recommends the same step-by-ten approach.

RangeAccountNotes
1000Operating cashOne account per bank account, or per currency
1100Accounts receivableBilled invoices not yet collected
1110Unbilled receivables (contract assets)Usage or services delivered but not yet invoiced
1200Prepaid expensesAnnual software, insurance
1300Capitalized software developmentConfirm treatment with your accountant (ASC 350-40)
2000Accounts payable 
2100Accrued expensesCloud usage and payroll accrued at month-end
2200Deferred revenue, currentBilled, to be recognized within 12 months
2210Deferred revenue, long-termBilled, to be recognized after 12 months
2300Sales tax and VAT payable 
3000Equity accountsCommon stock, preferred stock, retained earnings
4010Subscription revenueRecognized over the service period
4100Usage and overage revenueRecognized as usage occurs
4200Implementation and onboarding revenueTreatment depends on contract terms
4300Professional services and training revenueRecognized as delivered
4900Discounts, credits, and refundsContra-revenue
5010Production hosting and infrastructureProduction only, not dev or staging
5020Third-party software and APIs in deliveryLicenses embedded in the product
5030Payment processing fees 
5040Customer support payrollFully burdened
5050Customer success payroll (delivery side)Only if your written policy puts it here
5060Professional services delivery costKeeps services margin visible
5070Amortization of capitalized software 
6100Salaries and wagesBy nature; function comes from the department dimension
6110Payroll taxes and benefits 
6120Contractors 
6200Sales commissionsOwn line so acquisition cost is visible
6210Paid acquisition and marketing programs 
6300Cloud, staging, dev, and CINon-production environments
6310Internal software and tools 
6400Professional fees (legal, audit, tax) 
6410Insurance 
6420Rent and facilities 
7000Interest and other income 
8000Interest and other expense, FX gains and losses 

This is an illustrative structure, not a rule set from any single source, and the number of accounts you need depends on your size. DualEntry's stage table, which cites Mercury for the account-count guidance, suggests 30-40 accounts at seed, 50-70 at Series A ($1M-$5M ARR), 80-100+ at Series B and later ($5M-$50M ARR), and 100-150+ on an IPO track ($50M+ ARR). Founderpath's sample has 54 accounts, 20 of them SaaS-specific. Use those as ceilings, not targets.

Separate subscription, usage, and service revenue into their own accounts

Revenue type changes the accounting treatment, so each type gets its own account. Subscription revenue is recognized over time. Usage revenue follows consumption. Services follow delivery. Mixing them in one account hides the margin differences and makes recognized revenue hard to reconcile to billing.

Here is how common billing events map to the ledger. The recognition judgment for each contract belongs with your accountant or auditor. The chart's job is to give each outcome a clean home.

Billing eventWhere it landsWhy
$12,000 annual plan invoiced in JanuaryDebit accounts receivable, credit deferred revenue (2200). Then move $1,000 a month to 4010Founderpath's example: that plan is $1,000 of revenue a month, not $12,000 in January
Multi-year prepaymentSplit deferred revenue between 2200 and 2210Current and long-term balances are reported separately
Usage invoiced in arrearsCredit 4100 as usage occurs, with unbilled receivable in 1110 until invoicedRevenue follows consumption, not the invoice date
Overage on a committed planCredit 4100, not 4010Keeps committed and variable revenue separate
Implementation feeCredit 4200 or defer, depending on contract termsAccountant decision; the account exists either way
Time-and-materials trainingCredit 4300 as deliveredServices margin stays visible
Customer credit or refundDebit 4900Contra-revenue keeps gross billings visible

"Billing systems such as Stripe, Recurly, and Chargebee do not automatically produce GAAP-compliant revenue recognition. Someone has to map each billing event to the ledger with the right timing and account codes. If that mapping is wrong, reported MRR and recognized revenue drift apart, which is a restatement risk in diligence."

— Aleksandar Stojanovic, CEO & Founder at Fiscallion

Split COGS from operating expenses with one test

Founderpath's test is simple: "would this cost rise if you signed one more customer tomorrow?" If yes, it is probably COGS. If it exists to win a customer or build the product, it is operating spend.

CostClassificationReason
Production AWS, GCP, or Azure compute, storage, bandwidth, CDNCOGS (5010)Scales with customers
Staging, dev, and CI environmentsR&D (6300)Builds product, not delivery
Third-party APIs and licenses embedded in deliveryCOGS (5020)Required to serve the customer
Payment processing feesCOGS (5030)Direct cost of collecting revenue
Support payroll tied to service delivery, fully burdenedCOGS (5040)Includes payroll taxes, benefits, and tool and facilities share
Engineering salaries on product developmentR&DBuilds future product
Sales commissionsSales and marketing (6200)Acquisition cost, not delivery cost
Customer successPolicy decisionRetention-focused in COGS, expansion-focused in S&M

The distinction is cost of delivering to existing customers versus cost of acquiring or building. Loading sales costs into COGS understates how well the business scales. Leaving out hosting or customer success inflates margin and creates a diligence event. Our SaaS gross margin benchmark covers how investors read the result.

Customer success is where charts drift. Founderpath's guidance is to place delivery-side success in COGS and upsell-driven success in S&M, then pick one policy and not move it between years. Allocations set once in a budget cycle and never revisited make gross margin unreliable as a trend. The fix is a written COGS methodology and a named finance owner who confirms it at each month-end close.

Use accounts for what it is and dimensions for how you slice it

Revenue type is an account because it changes recognition. Almost everything else you want to analyze is a dimension, which is a tag attached to a transaction:

QuestionAccount or dimensionExample
Is it subscription, usage, or services?Account4010, 4100, 4300
Is it COGS or operating expense?Account range5000s versus 6000s
Which department spent it?DimensionEngineering, Sales, G&A
Which product line or plan?DimensionCore platform, add-on module
Which customer segment or region?DimensionMid-market, EMEA
Which salesperson or channel?DimensionRep, partner, inbound
Which cohort?Dimension2025 Q3 signups

Founderpath is blunt that departments are a class or tag dimension, not accounts. Duplicating expense accounts per team makes a chart unusable within a year. DualEntry's guide includes a LinkedIn anecdote from a fractional controller who inherited 847 GL accounts at a 12-employee company, with ARR split across four revenue accounts coded per salesperson. It is one practitioner's story, but the pattern is common: a segment cut that should have been a dimension became the account structure.

The practical rule: if a cut changes the statement line or the accounting treatment, make it an account. If it is a slice you analyze later, make it a dimension. Dimensions also give you the cohort and segment cuts needed to treat CAC and LTV as ranges rather than a single number. See our notes on contribution margin in SaaS for how those cuts get used.

Copy the template, then test it with three questions

The open template above is yours to copy into your accounting system as written. There is no form. Adapt the account names, then test the result:

  1. Can you produce Revenue, COGS, Gross Profit, R&D, S&M, G&A, and EBITDA in that order without a spreadsheet?
  2. Can you see subscription, usage, and services margin separately?
  3. Can you reconcile deferred revenue to the billing system at month-end?

If you can answer yes to all three, the chart is doing its job. If not, the gap tells you what to fix first. Your financial model should mirror this structure, since a good SaaS financial model template needs a structure aligned to COGS and functional operating expenses.

If the chart needs to sit alongside accrual accounting, month-end close, and revenue recognition for subscription, usage-based, and AI revenue models, see our accrual accounting for B2B SaaS service page.

Common mistakes and the replacement move

DualEntry lists six common mistakes. Each has a direct fix:

MistakeReplacement move
One "Revenue" accountSplit into subscription, usage, services, and contra-revenue
Commissions in COGSMove to a sales commission line in operating expenses
No deferred revenue accountAdd 2200 and book annual billings there
No current and long-term deferred splitAdd 2210 for amounts recognized beyond 12 months
Too many sub-accounts too earlyUse dimensions; add accounts only when a decision needs them
A chart that cannot produce Revenue, COGS, Gross Profit, R&D, S&M, G&A, EBITDARebuild ranges so the P&L reads in that order

We would add one more: never change the structure mid-year without restating prior periods in the new layout. A chart that moves between years breaks every trend your board relies on.

Frequently asked questions

How should a SaaS company structure its chart of accounts?

Use a numbered hierarchy: assets, liabilities, equity, revenue, COGS, operating expenses, and other income and expense, each in its own range. Make the P&L read Revenue, COGS, Gross Profit, R&D, S&M, G&A, EBITDA. Start small, step account numbers by ten, and use dimensions for everything that is a slice rather than a treatment difference.

How do you separate subscription, usage, and service revenue in a SaaS chart of accounts?

Give each its own revenue account, such as 4010 subscription, 4100 usage and overage, and 4200 or 4300 for implementation and services. Add a contra-revenue account for discounts and refunds. Then map each billing event to the right account, with annual prepayments sitting in deferred revenue until recognized.

What is the difference between COGS and operating expenses for a SaaS business?

COGS is the cost of delivering the product to existing customers: production hosting, embedded third-party licenses, payment processing, and support tied to delivery. Operating expenses cover acquiring customers (S&M), building the product (R&D), and running the company (G&A). Customer success is a policy call, so write it down and keep it consistent.

Should SaaS revenue types be tracked as separate accounts or as dimensions?

Separate accounts. Subscription, usage, and services are recognized differently and have different margins, so they belong on the face of the P&L. Use dimensions for customer segment, product line, region, department, salesperson, and cohort.

Set the structure once, then protect it

The chart is a small decision with long consequences. A clean revenue, COGS, and operating spend structure makes gross margin credible, speeds up the close, and lets forecasts reflect how the business actually earns and spends cash.

Fiscallion works above the ledger, turning reliable accounting data into forecasts, scenarios, and board decisions. Every client works directly with Aleksandar Stojanovic at the CFO layer, with FP&A leadership experience gained through the growth of a SaaS company to €100M ARR. Senior partner on every engagement, not a junior-team handoff.

Navigate Finance Easier with Fiscallion

Apply this with AI
Ask about pricing, fit, timelines, or get a recommended plan.
Share this post
About the Editorial Team

At Fiscallion, we specialize in providing top-notch CFO services tailored for SaaS companies. We understand that the financial dynamics of SaaS businesses are unique, with a focus on recurring revenue, long-term contracts, and a need for strategic resource allocation. That’s why we’ve developed a comprehensive B2B SaaS financial model to address these specific challenges,

Manage Finance More Easily

Subscribing to our newsletter will help you navigate and manage your finances with ease through valuable financial tips.