
Costing a SaaS Business: Cost per Account-Month and How to Apportion Engineering
You report one margin for the business. You have as many as you have accounts, and they are not close to each other.
Summary
- In SaaS the unit of cost is the account-month, not the seat, because cost follows the service an account consumes.
- Tag usage by tenant and meter third-party and model calls per account; revenue minus five cost layers is contribution per account.
- Engineering sits below contribution: split run from build, apportion it to modules, and never charge it to accounts.
- Unrecovered onboarding on churned accounts is acquisition cost, and per-account cost is the evidence plan design needs.
Most SaaS companies know their gross margin to one decimal place and have no idea what any individual account costs them.
That is survivable while every customer looks alike. Add tiers, custom work and AI, and your reported margin averages things that differ enormously: a poor basis for pricing, packaging or choosing a segment.
Your unit of cost is the account-month
Not the seat or the licence: the account, per month. Seats are what you charge for. Accounts are what you serve, and cost follows service. An account with forty seats that self-serves costs less than one with eight seats that calls customer success weekly; costing by seat hides it. Two accounts on the same plan, at ₹1,000 per seat per month:
Two accounts on the same plan, costed per account-month
| ₹ per month | A: 40 seats, self-serve | B: 8 seats, weekly CS calls |
|---|---|---|
| Revenue | 40,000 | 8,000 |
| Infrastructure and third-party, tagged | 4,000 | 800 |
| Support at ₹550 a ticket | 1,650 | 2,200 |
| Customer success at ₹1,000 an hour | 1,000 | 3,000 |
| Implementation, amortised | 0 | 1,000 |
| Cost per account-month | 6,650 | 7,000 |
| Contribution | 33,350 (83%) | 1,000 (12.5%) |
| Cost per seat | 166 | 875 |
Costed per seat, both would carry ₹284 (₹13,650 across 48 seats) and show a margin of about 72%. Costed per account, one earns 83% and the other 12.5%, and the smaller account costs more in rupees.
Five layers of cost, traced to the account
Most companies count two. Gross margin vs contribution margin puts figures on each; the work here is getting each onto an account.
- Infrastructure. Compute, storage, bandwidth, database. In a multi-tenant product it feels unallocatable and usually is not: most cloud platforms can tag usage by tenant, and even a rough usage proxy beats an equal split.
- Third-party and pass-through. KYC, enrichment, messaging, gateway, any API you resell. Usually metered per account already.
- Model inference. Variable and often large. Metered per account if you instrument it, and you should.
- Support and customer success. Tickets, hours, QBRs. The widest variation between accounts on the same plan.
- Amortised implementation. Onboarding cost, spread over expected account life.
Revenue minus these is contribution, not gross margin: support, customer success and implementation sit outside gross margin. Ranking accounts on it is usually the most uncomfortable report a SaaS founder sees.
In an AI product a heavy user costs real money, so your best customers can be your worst margins, which pricing AI products takes to the price. Check cost per account by usage decile monthly: if your top usage decile is your bottom margin decile, no selling fixes it.
Apportion engineering to modules, run before build
Engineering is usually the largest cost, sitting in one block below gross margin and apportioned to nothing. Fine for statutory reporting; useless for deciding which module earns, which plan to fund, or whether a product line is worth keeping.
Split it first. Run, keeping the existing product working, belongs against current revenue. Build, new capability, is investment and should be visible as such. Blend the two and you cannot tell whether the existing product is profitable.
Then apportion each pool to modules, simplest method first:
- Sprint capacity split. Each sprint, engineering states roughly what share went to which module; engineering and finance agree it quarterly. Crude, twenty minutes a quarter, far better than nothing.
- Story points or tickets by area. If work is tracked by epic or component, the data exists: sum it by module.
- Time tracking. Accurate, and resisted by most engineering teams, reasonably.
Use the first unless you have a strong reason not to. It is imprecise, and it is directionally right. Cost apportionment covers choosing a basis in general.
Directionally right beats precisely absent.
Module-level engineering cost sits below contribution: it shows whether a module or plan earns its keep, and is never charged to individual accounts, since no single customer causes it.
Onboarding a churned account never repaid
If an account churns in month eight and its implementation was amortised over three years, the unrecovered balance is a cost of acquisition, not of service. A ₹1.8 lakh implementation over 36 months is ₹5,000 a month. Eight months absorbed ₹40,000 (8 × ₹5,000), and the other ₹1,40,000 was never recovered. Most companies never write it back, which makes acquisition look cheaper than it was.
Three more costs go missing per account:
- Implementation treated as free. Quote it with a value even when waived, and amortise it per account; pricing B2B software in India explains why.
- Free tier and trial cost. On an AI product free usage is metered cost; see pricing AI products on capping it.
- Support by segment. SMB accounts often raise five to ten times the tickets per customer that enterprise does, per the contribution margin floor piece. Price SMB lowest and you priced your costliest segment cheapest.
What account cost tells you about plan design
- Your floor becomes plan-specific and segment-specific rather than one number for the business.
- Your value metric gets a real test. Charge per seat while cost moves with usage and margin degrades as accounts grow; choosing your value metric is where that leads.
- Your packaging gets evidence: which features cost most to serve, which plans carry the others, which segment works.
When a plan's accounts cluster at the bottom of the ranking, ask what it includes that others do not: an unlimited allowance, a support promise, an inference-heavy feature. Price it, cap it or move it up a plan.
Cost your twenty largest accounts first
For your twenty largest accounts, set twelve months of infrastructure, inference, tickets and customer success hours beside what each pays. Expect a wide spread on the same plan. That spread is your pricing work for the next two quarters.
Our Pricing Maturity Assessment reads your cost floor alongside the rest of your pricing.
Frequently asked questions
How do you calculate SaaS cost per account?
Add five layers for one account-month: tagged infrastructure, metered third-party and inference cost, support and customer success at loaded cost, and amortised implementation. Revenue minus that is the account's contribution.
How useful was this article?
One tap. It tells us what to write more of.
About the author
SRF Capital Studio
The next one
Get what we publish next, by email.
Working notes on raising, borrowing, protecting, growing and structuring capital in India. One email a week at most, and you can leave any time.
We use your address only to send this. See our privacy policy.
We store your address to send you these emails and nothing else. See our privacy policy.
Related reading



