Blog · Finance metrics and formulas · Software
SaaS gross margin measures revenue left after delivery costs. Classify hosting, support and other delivery costs consistently, reconcile product margins, and separate real changes from accounting reclassifications.
SaaS gross margin is the share of recognized revenue left after the costs of delivering the service. Revenue of $300,000 and delivery costs of $78,000 leave $222,000 of gross profit, or 74.0%. The comparison only holds if hosting, support and other delivery expenses stay on the same basis across products and periods.
SaaS gross profit = Recognized revenue - Cost of revenue
SaaS gross margin = SaaS gross profit / Recognized revenue
Use revenue earned during the reporting period. Customer receipts, annual contract value and signed bookings answer different questions. An annual prepayment does not all become one month's revenue simply because the customer paid it at once.
The generic gross profit margin calculation is straightforward. SaaS adds a classification problem: the business must distinguish the cost of serving current customers from the cost of developing products, winning customers and running the company.
An actual disclosure shows the breadth of delivery costs. Atlassian's fiscal 2024 annual report describes cost of revenue that includes hosting, employee compensation, customer support contractors, payment processing, depreciation, amortization and allocated overhead. That is one company's policy, rather than a compulsory checklist for every software company.
For a management review, make your controller's approved policy explicit. A cost mapping that says only "technical payroll" is too vague: staff maintaining the contracted service and staff developing a new product perform different work.
Bring recognized revenue by product and month from the revenue ledger. Include credits and adjustments in the same basis used for the income statement. Bring expense rows with account, department, product, posting month, amount and classification.
Keep a separate mapping of shared cost allocations. For example, tagged usage can support a hosting allocation, while time records can support a support-labor allocation. A revenue allocation may be practical for some overhead, but it should be visible because it can conceal differences in customer demand.
| Expense row | Treatment to document | Evidence to retain |
|---|---|---|
| Hosting and service vendors | Delivery cost for the service provided | Invoice period and product allocation |
| Contracted customer support | Delivery cost under the approved policy | Support activity or staffing allocation |
| Implementation work | Match the relevant services revenue | Project and delivery records |
| Product development | Apply the company's development accounting policy | Approved account classification |
| Acquisition and expansion selling | Sales expense under the approved policy | Role and activity description |
| Shared overhead | Allocate according to the approved policy | Allocation base and reconciliation |
Do not decide the treatment solely from whether a cost changes with usage. A fixed delivery payroll can still belong in cost of revenue. Conversely, a variable sales commission does not become a delivery expense just because it rises with sales.
Consider an illustrative US SaaS company reviewing September 2026. Its Core and Advanced products share a delivery team. The following amounts come from the company's prepared revenue and expense allocations; all figures are USD.
| Input | Core (USD) | Advanced (USD) | Total (USD) |
|---|---|---|---|
| Recognized revenue | 180,000 | 120,000 | 300,000 |
| Hosting and vendor delivery charges | 18,000 | 18,000 | 36,000 |
| Support labor | 12,000 | 18,000 | 30,000 |
| Other allocated delivery costs | 6,000 | 6,000 | 12,000 |
| Cost of revenue | 36,000 | 42,000 | 78,000 |
| Gross profit | 144,000 | 78,000 | 222,000 |
| Gross margin | 80.0% | 65.0% | 74.0% |
Core delivery cost is 18,000 + 12,000 + 6,000 = $36,000. Its gross profit is 180,000 - 36,000 = $144,000, and its margin is 144,000 / 180,000 = 80.0%. Advanced follows the same steps: 120,000 - 42,000 = $78,000, and 78,000 / 120,000 = 65.0%.
The company margin divides totals: 222,000 / 300,000 = 74.0%. Percentages here are shown to one decimal place; retain unrounded values when calculating totals.
The operating expenses sit below that result:
| Income statement bridge | Amount (USD) |
|---|---|
| Gross profit | 222,000 |
| Research and development expense | 110,000 |
| Sales and marketing expense | 80,000 |
| General and administrative expense | 40,000 |
| Total operating expenses | 230,000 |
| Operating profit / (loss) | -8,000 |
The check is 222,000 - 230,000 = -$8,000. A positive gross profit does not establish that the business is profitable; gross profit versus net profit explains the further deductions.
First, reconcile the product revenue total to the revenue ledger and the delivery-cost total to the cost-of-revenue accounts. Shared invoices and payroll allocations must appear once, with all their allocated amounts adding back to the original expense.
Second, check that gross profit plus cost of revenue equals revenue: 222,000 + 78,000 = $300,000. This catches a missing cost subtotal or an inconsistent sign convention.
Third, distinguish a real improvement from a reclassification. Suppose the $18,000 of Advanced support labor in the first table moves to operating expenses, with no change in the service delivered. Reported cost of revenue becomes 78,000 - 18,000 = $60,000, and reported gross profit becomes 300,000 - 60,000 = $240,000. The margin becomes 240,000 / 300,000 = 80.0%, an increase of 6.0 percentage points.
Operating expenses simultaneously become 230,000 + 18,000 = $248,000. Operating profit remains 240,000 - 248,000 = -$8,000. The apparent gross-margin gain is entirely presentation. Keep the bridge with the review, and consult adjusted gross margin when a separately labeled adjustment is needed.
The lower Advanced margin directs attention to the cost of delivering that product. Finance and operations can review support demand, vendor consumption and the contractual service level before changing price or cutting resources. A lower percentage can still produce attractive gross profit dollars, so review both measures.
Separate implementation services when they materially change the mix. Bessemer's analysis of cloud company economics identifies hosting, implementation and services as costs relevant to delivery economics. A consolidated percentage alone cannot show whether a change came from recurring subscriptions or more labor-intensive services; the nearby service-business gross margin page covers that distinction.
The controller owns the accounting policy and reconciliation. Product and service leaders own the operating explanations. FP&A brings those together in a comparison with the prior period using the same definitions.
Covirage is not affiliated with Atlassian or Bessemer Venture Partners.
Bring your recognized-revenue export, classified delivery expenses and product allocations. Covirage maps the columns, and its tools compute and check product and period margins; the external AI model explains the result with every figure traced to its rows. Create a free Covirage account and bring a sample of your own data.
See Covirage for customer profitability for the supporting workflow.
The answer follows your documented accounting policy. Delivery costs can include hosting, support staff, third-party service charges, depreciation and relevant allocated overhead. Record the activities behind each account so a department name alone does not decide whether its entire payroll belongs above gross profit.
Separate the work. Staff delivering contracted support may belong in cost of revenue, while staff selling renewals or expansion may belong in sales expense under your policy. For mixed roles, use a documented allocation supported by activity records and apply it consistently.
Moving delivery expenses below gross profit raises the reported percentage without reducing total expenses. A shift toward products with higher margins can also raise the company figure while every product margin stays unchanged. Reconcile classifications and product mix before attributing the increase to efficiency.