Blog · How-to guides · Software
Calculate SaaS marketing ROI using acquisition costs and realized subscription contribution. Compare equally mature cohorts, find the observed payback month, and keep projected lifetime returns separate.
SaaS marketing ROI compares the realized subscription contribution of an acquisition cohort with the spending used to acquire it. Measure every cohort over the same number of completed months. Annual contract value and projected lifetime value cannot replace contribution already earned.
Observed cohort ROI = (Recognized subscription revenue - Matching delivery costs - Acquisition costs) / Acquisition costs
Use the first paid subscription date to assign a customer to a cohort. Freeze the campaign assignment rule before reviewing results, and give each acquired account one primary cohort. Keep renewals and expansion revenue attached to the original cohort when the chosen return definition includes them; identify them separately in the source rows.
The acquisition-cost boundary must also stay fixed. A marketing-only case can include campaign media, agency, and allocated marketing labor. A fully loaded acquisition case may add sales costs. State which one you use and follow the customer acquisition cost method for a consistent denominator.
This is a cohort performance comparison. Crediting a customer to a campaign does not prove that the campaign caused the purchase. A separate experiment is needed for an incremental investment claim.
Start with the customer acquisition register, campaign cost workbook, and monthly subscription revenue and delivery-cost export. The business columns are customer ID, cohort, campaign, paid start date, service month, recognized net revenue, refunds or credits, and matching delivery cost.
Use the finance revenue schedule rather than treating invoice face value or cash receipts as revenue earned. The SEC's guide to financial statements distinguishes income statements reporting revenue and expenses over a period from cash flow statements reporting cash movements. Finance should confirm the subscription revenue treatment used in the export.
Mark each relative service month as observed or not yet observed. A missing revenue row might mean cancellation, an incomplete export, or a month that has not happened. Resolve the reason before assigning a zero. The GAO data reliability guide frames reliability around accuracy, completeness, and applicability to the intended purpose; those checks matter as much as the ratio.
A US subscription business compares a January search cohort with a March partner cohort. All example customers started service on the first day of their acquisition month. The review includes each cohort's first six complete service months, so January runs through June and March runs through August.
These are illustrative USD amounts, not industry benchmarks. The acquisition costs include the same marketing and sales cost categories for both cohorts.
| Cohort | Acquired customers | Acquisition cost (USD) | Cost per acquired customer (USD) |
|---|---|---|---|
| January search | 100 | 120,000 | 1,200 |
| March partner | 50 | 60,000 | 1,200 |
| Total | 150 | 180,000 | 1,200 |
Use relative month numbers to compare retention and earned contribution at the same age. Delivery cost in this example includes hosting, payment processing, and the assigned cost of customer service under one fixed policy.
| Service month | Search revenue (USD) | Search delivery cost (USD) | Search contribution (USD) | Partner revenue (USD) | Partner delivery cost (USD) | Partner contribution (USD) |
|---|---|---|---|---|---|---|
| 1 | 30,000 | 6,000 | 24,000 | 15,000 | 3,000 | 12,000 |
| 2 | 29,000 | 5,800 | 23,200 | 14,000 | 2,800 | 11,200 |
| 3 | 28,000 | 5,600 | 22,400 | 13,000 | 2,600 | 10,400 |
| 4 | 27,000 | 5,400 | 21,600 | 12,000 | 2,400 | 9,600 |
| 5 | 26,000 | 5,200 | 20,800 | 11,000 | 2,200 | 8,800 |
| 6 | 25,000 | 5,000 | 20,000 | 10,000 | 2,000 | 8,000 |
| Total | 165,000 | 33,000 | 132,000 | 75,000 | 15,000 | 60,000 |
For a worksheet matching this table, put the headers in row 1 and service months in rows 2 through 7. Search contribution in D2 and partner contribution in G2 are:
=B2-C2
=E2-F2
Fill both formulas down. Put search acquisition cost in J2 and partner acquisition cost in J3. The observed ROI formulas are:
=(SUM(D2:D7)-J2)/J2
=(SUM(G2:G7)-J3)/J3
| Six-month result | Search | Partner |
|---|---|---|
| Contribution (USD) | 132,000 | 60,000 |
| Acquisition cost (USD) | 120,000 | 60,000 |
| Net contribution after acquisition (USD) | 12,000 | 0 |
| Observed ROI | 10.0% | 0.0% |
Both cohorts have the same acquisition cost per customer. Their realized returns differ because the revenue paths differ. The search cohort has recovered its acquisition spending and earned an additional $12,000 of contribution at this horizon.
Cumulative contribution shows whether acquisition spending has been recovered. In H2, use =SUM($D$2:D2) and fill down; for the partner cohort use =SUM($G$2:G2) in I2.
| Service month | Search cumulative contribution (USD) | Partner cumulative contribution (USD) |
|---|---|---|
| 1 | 24,000 | 12,000 |
| 2 | 47,200 | 23,200 |
| 3 | 69,600 | 33,600 |
| 4 | 91,200 | 43,200 |
| 5 | 112,000 | 52,000 |
| 6 | 132,000 | 60,000 |
Both first reach their acquisition cost in month 6. These are observed month-end payback points, not estimates of the exact day. If a cohort has not recovered its cost, report payback as not yet observed rather than dividing by a favorable recent month's contribution.
The combined revenue is $240,000 and delivery cost is $48,000, leaving $192,000 of contribution. Subtracting $180,000 of acquisition cost leaves $12,000. Combined ROI is 12,000 / 180,000 = 6.7%, rounded to one decimal place; it is not the simple average of cohort percentages.
Tie revenue and delivery costs to the finance schedules for the exact cohort customers and service months. Tie acquisition cost to the campaign cost register. Confirm that the 150 acquired customers are unique and remain in the original population even if some later cancel.
Marketing uses this comparison to challenge acquisition mix. Finance owns revenue and cost reconciliation, and customer success explains retention and service-cost changes. A higher observed return is evidence for further investigation, not permission to assume the same result at any spending level.
Bring a sample of your own acquisition-cost workbook and subscription revenue export to Covirage; it maps the columns, and its tools compute and check the cohort figures. The external AI model explains the results with every figure traced to its rows. Create a free Covirage account, then set up your business and bring your file.
See Covirage for SaaS sales for the supporting business context.
Use recognized revenue and matching delivery costs for an observed period return. ARR describes an annualized recurring revenue run rate, rather than revenue already earned during that period. Present ARR separately when discussing commercial scale, and do not add it to recognized revenue.
Choose a window that matches the decision and that every cohort has completed. A younger cohort can be reported separately as incomplete. Do not fill unobserved months with zero revenue or compare its partial return directly with a fully observed cohort.
ROI measures the return through a stated observation horizon. Payback identifies when cumulative contribution covers acquisition cost. A cohort can reach payback and then continue generating contribution, so its ROI depends on how long you observe it after that point.