SaaS companies can post strong revenue growth while watching gross margins erode quarter over quarter. Here’s why it happens, which cost dynamics are most often responsible, and what high-performing operators do to protect profitability as they scale.
SaaS margins are shrinking even as many companies continue to report strong revenue growth. The number fewer track with equal rigor is gross margin, and that’s where the disconnect often becomes visible. A company can grow ARR by 30% in a year, add customers, hit pipeline targets, and still finish the year with meaningfully lower margins than it started with. Revenue growth and margin growth are not the same thing, and treating them as interchangeable is one of the most common and costly assumptions in SaaS finance.
The reason is structural. Revenue grows when you acquire customers or expand existing accounts. Margin is what remains after you’ve paid for the infrastructure, support, onboarding, customer success time, and product complexity required to serve those customers. When those costs scale faster than the revenue they support, which becomes increasingly common as a SaaS business matures, the gap closes. The 2025 SaaS Benchmarks Report from High Alpha and OpenView found gross margins compressing nearly ten percentage points year-over-year for many early-stage companies, driven not by poor growth decisions but by delivery costs quietly outpacing the revenue that was supposed to cover them.
The root cause is almost never a single cost line item. It’s the compounding effect of several smaller dynamics working simultaneously: underpriced customers, rising cost-to-serve, product complexity, and usage patterns that pricing models weren’t built to handle. These pressures build beneath the surface, largely invisible to finance teams relying on blended averages.
Revenue Is Visible. Cost-to-Serve Is Not.
Most SaaS companies track revenue at a high level of granularity: by customer, by product, by segment, by cohort. Cost tracking is far less specific. Finance teams typically see aggregate cloud infrastructure spend, aggregate support headcount cost, and aggregate customer success time, then divide those numbers across the customer base as averages. That approach works well enough when the business is simple and relatively homogeneous. It stops working once the customer base grows complex.
What averages can’t surface is that a $150,000-ARR customer requiring heavy implementation support, ongoing custom development, and weekly customer success calls may generate significantly lower margin than a $30,000-ARR customer on a standard plan with minimal support volume. Both look like wins on a revenue dashboard. Only one of them is contributing positively at the margin level. The profitable account is quietly subsidizing the unprofitable one, and neither the finance team nor the sales team typically knows it.
The Cost Dynamics That Quietly Compress Margins
Margin compression in SaaS is rarely caused by one obvious cost spike. It accumulates from several dynamics working simultaneously, each one modest on its own and easy to rationalize, but compounding as the company scales.
Cost-to-serve scales nonlinearly. As a SaaS business grows, the cost of supporting each additional customer rarely follows a straight line. Support ticket volume increases. Onboarding complexity rises as enterprise deals replace smaller accounts. Customer success teams spend more hours per account as products become more configurable. Edge cases multiply. These costs are distributed across support, engineering, CS, and professional services, which makes them easy to miss until the margin trend makes them impossible to ignore.
Infrastructure and usage costs don’t track with seats. Cloud compute, storage, data processing, and API call volumes tend to grow faster than headcount or revenue, especially as products add features. For companies that have introduced AI capabilities, this dynamic is more pronounced. Inference costs from model providers are consumption-based, meaning heavy-usage customers can generate dramatically more infrastructure cost than light-usage customers at the same contract value. When pricing was set before usage patterns were well understood, the margin math on those accounts can quietly invert. The individual account economics of AI features deserve specific attention, as explored in our article on how AI features are compressing SaaS customer margins.
Legacy pricing doesn’t keep pace with costs. Early customers are often on pricing set years ago, before the product had its current feature depth, before infrastructure costs reached current levels, before AI tooling entered the stack. Without proactive renewal pricing or meaningful escalation clauses, these accounts retain their original ARR while their cost-to-serve has grown. Because they’ve been customers for years and feel stable, they’re rarely scrutinized at renewal the way new deals are.
Product complexity accumulates silently. Every integration added, every enterprise configuration supported, every edge case accommodated in the product adds maintenance burden, support complexity, and engineering overhead. Product teams measure velocity by features shipped; finance teams rarely receive a cost estimate for what it takes to maintain those features at scale. Over time, a product that once had a simple, low-cost delivery profile becomes expensive to run, and pricing set two or three years ago rarely reflects what it costs to deliver today.
Sales incentive structures optimize for revenue, not margin quality. Sales teams are typically measured on ARR closed, deal size, and growth metrics. They are rarely evaluated on cost-to-serve, implementation complexity, or long-term margin contribution. The result is predictable: discounting to close, selling into accounts that require heavy support, and structuring commitments at price points that don’t account for usage-intensive workloads. Individual deals look like wins. The cumulative effect on margins shows up in aggregate, quarters later, when it’s already baked into the cost structure.
Why Averages Hide the Problem
The most common reason SaaS finance teams miss margin erosion until it becomes significant is that their reporting is built around blended averages. Aggregate gross margin is measured. Total infrastructure spend is tracked. Support headcount cost is visible. But none of those numbers are broken down by account or product line, which means a portfolio of profitable customers can mask a set of deeply unprofitable ones for years.
According to Benchmarkit’s 2025 B2B SaaS Performance Metrics report, median gross margins across B2B SaaS companies sit at approximately 77% for subscription revenue. That aggregate figure is useful for investor benchmarking. It is not useful for understanding which customers or product lines are contributing to that number and which are pulling it down. A blended 77% could conceal a subset of accounts running at 40% margin (or below) while a well-performing majority holds the average up.
Fixing this requires allocating costs at the individual account and product level, a methodology that most finance teams recognize as important but struggle to implement without a clear framework or dedicated tooling. The practical challenges of building that allocation approach are covered in our article on how to allocate costs across customers and products in software companies.
What High-Performing SaaS Companies Do Differently
Companies that maintain strong margins through growth share a few operational characteristics that distinguish them from peers who discover profitability problems late.
They treat account-level profitability as a managed metric, not an occasional analysis. They know which customers are profitable, which are marginal, and which are operating at negative margin, and they have a defined process for each category at renewal. Marginal accounts get repriced or restructured. Deeply unprofitable accounts are either fixed or transitioned. This visibility exists because finance, CS, and sales teams share the same cost allocation data, not because each team is running separate calculations with separate assumptions.
They align pricing to actual consumption. Rather than treating usage as a fixed assumption embedded in a seat-based price, high-performing operators introduce usage-based components that cause pricing to move with delivery cost. The Bessemer Venture Partners Cloud 100 Benchmarks Report 2025 notes that compute is increasingly replacing code as the primary unit of cost in modern cloud products. Companies that price against seat counts while paying against compute usage have a structural mismatch that only gets harder to manage at scale.
They also evaluate sales deals on margin contribution, not just ARR. This doesn’t mean blocking deals. It means making better decisions at the time of signature. Knowing that a prospective account involves heavy onboarding, custom configuration, and a high-usage workload at a discounted price point allows finance and CS leadership to make informed tradeoffs before the contract is signed, not after twelve months of below-average margin contribution.
Getting Ahead of Margin Erosion
The reason margin erosion compounds is that it operates below the level of visibility most companies maintain. Profitability by segment isn’t visible from a revenue dashboard. True cost-to-serve isn’t visible from a support headcount report. Infrastructure usage isn’t visible from an aggregate cloud invoice. Each piece of data exists somewhere in the business. The problem is that it’s almost never connected to the customer or product generating it.
Cogs’z helps finance, sales, and customer success teams see margin contribution at the customer and product level by connecting revenue, cost, usage, and allocation data in one place. When cost-to-serve is visible by account and product line rather than blended across the customer base, the decisions that protect margins become tractable: which customers to reprice at renewal, which product lines are underpriced relative to their delivery cost, which deals need different structure before they close.
The Bottom Line
Shrinking SaaS margins are rarely caused by a single obvious problem. They compound from many smaller ones: underpriced legacy customers, infrastructure costs that scale nonlinearly with usage, AI inference expenses that flat pricing wasn’t built to handle, product complexity that adds maintenance burden without adding revenue, and sales motions optimized for ARR at the expense of margin quality. Revenue growth can mask these dynamics for years. It doesn’t resolve them.
The companies that protect margins over time are the ones that measure profitability by account and by product line, price against actual consumption, and build margin visibility into the decisions finance, sales, and CS teams make every day. Blended averages tell you what the business looks like from the outside. Granular cost data tells you what’s actually happening inside it.
Brad Perry is the CEO of Cogs’z, a profitability management platform built for B2B SaaS companies. Brad co-founded DealerSocket, an end-to-end platform in the automotive industry, where he experienced firsthand the margin challenges that Cogs’z is designed to solve. Cogs’z automates customer-level cost allocation so finance, CS, and sales teams share a single, accurate view of who’s profitable and why. Learn more or request a demo at cogsz.com.
References
- High Alpha and OpenView — 2025 SaaS Benchmarks Report
- Benchmarkit — 2025 B2B SaaS Performance Metrics
- Bessemer Venture Partners — Cloud 100 Benchmarks Report 2025