Unit economics
SaaS gross margin: what belongs in cost of revenue, and why ten points matter
By Assaf Schwartz · · 9 min read
Gross margin looks like a reporting line, which is why it usually gets decided by whoever set up the chart of accounts rather than by anyone who has to live with the answer. It is actually an input. It sits inside lifetime value, inside CAC payback, and inside every one of the 60 months of gross profit that pay the engineering team. Move it 16 points on an otherwise identical company and operating break-even shifts by 27 months.
What belongs in cost of revenue
The test is not whether a cost feels operational. It is whether you incur it in order to keep serving customers you already have. If the last customer left and the cost left with them, it is cost of revenue. If it would still be on the payroll next month, it is not.
- Production hosting and delivery infrastructure. Compute, storage, bandwidth, CDN and observability spend required to serve paying accounts. Not staging, not the warehouse the analytics team queries, not CI.
- Customer support. Salaries, tooling and outsourced tiers for the people answering tickets. Support load scales with the installed base, which is exactly what makes it a delivery cost rather than an overhead.
- Payment processing. Rarely trivial and frequently forgotten. At the simulator's default ARPA of $420, card fees at 2.9% plus 30 cents come to $12.48 per account per month — 3.0% of revenue, taken before you touch it.
- Third-party data, API and model costs. Anything bought per call, per record or per token to fulfil a customer request. This is the line that has quietly rewritten the margin profile of an entire generation of AI-adjacent products.
- Customer success that is delivery, not sales. Onboarding, implementation, configuration, training, and the named contact an enterprise contract obliges you to staff. If the activity exists to keep a promise you have already sold, it is cost of revenue.
- Professional services delivery. If you bill for implementation, the cost of delivering it belongs against that revenue. Services carry a far lower margin than software, and blending the two flatters the software.
What does not
The mirror-image error is stuffing cost of revenue with anything that touches a customer. These belong in operating expense, where the model already handles them:
- Research and development. Product engineering builds the next version of the thing. It is not a cost of serving this month's revenue, however tempting the reclassification is when the margin needs to look better.
- Sales and marketing. Including the part of customer success whose real job is renewal and expansion. That is quota work, and it belongs beside the rest of acquisition spend where CAC can account for it.
- General and administrative. Finance, legal, people, the office, the insurance.
- One-off migrations and re-platforming. A six-month rebuild is not a recurring delivery cost. Amortising it into gross margin makes every unit-economics number for that year unreadable, in both directions.
Where the number lands
Gross margin is not a summary of the model. It is a term inside it, and two of the three headline unit-economics figures are direct functions of it:
LTV = ARPA × gross margin ÷ monthly churn
CAC payback = CAC ÷ (ARPA × gross margin)
At the defaults — $420 ARPA, 2.8% monthly revenue churn, $3,600 CAC and 78% on the Gross margin control — that gives an LTV of $11,700, a ratio of 3.3x and payback in 11 months. All three are linear in the margin, so misclassifying a few points misprices acquisition by the same few points for as long as the mistake survives.
The third place it lands is the cash projection, and that one is not linear at all. Gross profit pays opex; what survives is operating profit; the 30% Re-investment rate pushes a share of that back into paid acquisition, which buys new MRR, which produces more gross profit next month. A margin change does not move the cash line by a fixed amount. It changes the growth rate of the thing that generates the cash.
Ten points, three companies
Below is one business — identical ARPA, churn, CAC, headcount, cloud spend and opening cash — run at three margins. Only the Gross margin control moves.
| Gross margin | LTV | LTV:CAC | CAC payback | Break-even | Year-5 net profit | Ending cash |
|---|---|---|---|---|---|---|
| 70% | $10,500 | 2.9x | 12.2 mo | Month 38 | $200.7K | $427.7K |
| 78% | $11,700 | 3.3x | 11 mo | Month 24 | $487K | $1.3M |
| 86% | $12,900 | 3.6x | 10 mo | Month 11 | $943.9K | $2.5M |
LTV moves $2,400 across the range, which is the boring part — it is arithmetic and you could have done it in your head. The interesting columns are the last three. At 70% the company does not reach operating break-even until month 38, and its cumulative losses are never repaid inside the five years. At 86% it breaks even in month 11 and is cumulatively in the black by month 22. Ending cash differs by $2M on a business that opened with $750,000.
Ending ARR differs too: $3.1M at the low margin against $4.1M at the high one. Nothing about demand changed. The higher-margin company simply had more operating profit to re-invest, so it bought more customers with its own money. Margin is not only a measure of efficiency; it is the fuel supply for growth that does not require a funding round.
Take the Gross margin control down to 70% and watch break-even slide to month 38 while ending cash falls to $427.7K.Open in simulator →Gross margin vs. the cloud inputs
One modelling trap is specific to this simulator and worth being precise about. Hosting is a cost of revenue in your accounts. In this engine it is not inside the Gross margin control. It is modelled separately, inside operating expense, by two inputs:
infra = Baseline cloud spend × price index + Cloud cost per $1k MRR × MRR ÷ 1000
At the defaults that is $3,209 of fixed floor plus $6,679 of usage-linked spend in month one — $9,888 in total, or 8.1% of revenue. By month 60 it is $19,557, or 6.8% of revenue. Over the full projection infrastructure absorbs $815.7K against $11M of revenue: 7.4%.
The fix is mechanical. Set the Gross margin control from support, payment fees, third-party per-customer costs and delivery-side customer success only, with hosting stripped out; then put hosting into the two infrastructure inputs, where it can scale with revenue properly. A company reporting 70% on the P&L, with hosting running at 8.1% of revenue, should enter roughly 78% here.
The alternative — leaving both cloud inputs at zero and folding everything into the margin — is internally consistent, but it discards the reason to model infrastructure at all. A single margin percentage cannot represent a fixed floor that exists at zero customers, and it cannot represent an efficiency programme that flattens the slope without touching the floor. That distinction is the subject of cloud costs that scale with revenue.
Benchmark bands
Public SaaS gross margins cluster around 70 to 80%, and that band is quoted far more often than it applies. What you ought to be running depends almost entirely on how the product is delivered.
| Business type | Typical gross margin | What drives it |
|---|---|---|
| Self-serve, low-touch SaaS | 80–90% | No implementation, support deflected to docs |
| B2B SaaS with onboarding | 72–82% | Human implementation and named CSMs |
| Enterprise platform | 70–80% | Solution engineering, uptime commitments, dedicated infra |
| Usage- or inference-heavy | 40–65% | Per-request compute or model cost tracks revenue directly |
| SaaS plus managed services | 50–65% | A services business wearing software multiples |
| Payments or data pass-through | 25–50% | Most of the revenue belongs to someone else |
This matters beyond vanity. A business at 70% needs materially cheaper acquisition or materially better retention to end up where one at 86% ends up, and it has fewer months of runway in which to find either. Structurally low margin is survivable. It is not survivable alongside enterprise-grade CAC.
How to move it
Roughly in order of speed, which is close to the inverse of the order in which teams attempt them:
- Price and package. A price increase is almost pure gross margin: the cost of serving that account does not move. Nothing else on this list works as fast.
- Change the billing mix. Annual up-front on invoice instead of monthly on card removes 3.0% of processing cost, and separately improves cash timing. ACH or SEPA on the larger accounts does the same.
- Deflect support before you staff it. Documentation, in-product guidance and fixing the top three ticket drivers reduce a cost that otherwise grows in lockstep with the customer base.
- Productise implementation. Templates, self-serve configuration and partner-delivered onboarding move the highest-cost, lowest-margin activity in most B2B businesses off your own payroll.
- Attack the variable half of infrastructure. Caching, tiered storage, right-sizing and smaller models change the slope of the cloud bill rather than its floor, and the slope is where the compounding lives.
- Reprice the wrong customers. There is usually a segment — heavy usage, low ARPA, high touch — that is gross-margin negative once support and infrastructure are honestly allocated. Finding it is a margin programme in itself.
One last piece of arithmetic, to keep the effort in proportion. Four points of margin is worth $4,858 a month at today's revenue and $11,473 a month by month 60. That is a meaningful fraction of an engineer, recurring, for work that is mostly pricing pages and support content — and it arrives without the five-year commitment described in what an engineering hire really costs.
Written by
Assaf Schwartz
Assaf Schwartz builds and maintains SimulateFin — the projection engine, the guides and the site around them. The methodology is published in full precisely so it can be argued with: corrections, disagreements and missing metrics are welcome by email.
Keep reading
Unit economics
CAC payback vs. LTV:CAC
LTV:CAC tells you whether a customer is worth acquiring. CAC payback tells you how long you finance them befor…
Cash & capital
Runway, done properly
The back-of-envelope runway number assumes burn stays flat. It never does. A month-by-month projection with gr…
Capital efficiency
Burn multiple
Net burn divided by net new ARR. It is the one efficiency measure that punishes buying growth, which is exactl…
Growth vs. profit
Rule of 40
Growth rate plus profit margin should clear 40. The rule is simple; the trade-off it encodes is not. Here is h…
Educational content, not financial advice. Figures here are illustrative and exclude taxes, financing and one-off items. Model your own numbers in the simulator and check them with a qualified accountant before acting.

