The honest answer to “what is a good ROAS for a SaaS?” is: it depends, and any number someone quotes you without asking about your margins is guessing. A ROAS of 2 can be wildly profitable for one product and a slow bleed for another. The useful version of the question is different: what ROAS do I need to break even, and how much above that do I want to be? Once you can answer those two, benchmarks stop mattering.
This post shows you how to derive your own break-even ROAS from two things you already know — your gross margin and how long customers stick around — with worked numbers for both monthly and annual plans. If you want the plain-English refresher on what ROAS even measures, start with our guide to understanding ROAS and come back.
ROAS is a ratio, not a verdict
ROAS is just revenue divided by ad spend. Spend $1,000, get $3,000 back in attributed revenue, and your ROAS is 3. That’s it. The number says nothing about whether you made money, because it ignores the cost of actually delivering the product.
That’s why “aim for a ROAS of 4” advice is useless. A physical-goods store with 30% margins genuinely needs a high ROAS to survive. A SaaS with 80% margins can be profitable at a ratio that would bankrupt the store. Same number, opposite verdict. The only benchmark that matters is your own break-even line.
Break-even ROAS = 1 ÷ gross margin
Here is the whole formula:
Break-even ROAS = 1 ÷ gross margin
Your gross margin is the share of each dollar of revenue left after the direct cost of serving that customer — hosting, payment processing, third-party APIs, support tooling. For most SaaS that’s high, which is exactly why software can advertise at ratios other businesses can’t.
| Gross margin | Break-even ROAS | What it means |
|---|---|---|
| 90% | 1.11 | Every $1 of ad spend needs $1.11 back |
| 80% | 1.25 | $1.25 back to break even |
| 70% | 1.43 | $1.43 back to break even |
| 50% | 2.00 | You need to double your money |
So if your gross margin is 80%, your break-even ROAS is 1 ÷ 0.80 = 1.25. Below 1.25 you’re losing money on every acquisition; above it, you’re contributing profit. This single number replaces every generic benchmark you’ll ever read.
Two honest caveats. First, this is gross margin, not revenue — if you’re mentally using your subscription price as the payoff, you’re overstating things by whatever it costs you to serve the account. Second, break-even ROAS is a floor, not a target. Running exactly at break-even means ads pay for themselves but fund nothing else — no salaries, no runway. Most healthy programs aim for roughly 1.5× to 2× their break-even so acquisition actually generates cash.
Subscriptions break the one-purchase assumption
Here’s where SaaS gets its own rules. The formula above quietly assumes the revenue arrives in one shot. Subscriptions don’t work that way — a customer pays a little each month and keeps paying until they churn. So the “revenue” in your ROAS depends entirely on which revenue you count.
There are two ways to measure it, and they answer different questions:
- First-payment ROAS counts only the first invoice. It’s conservative, it matches what your ad platform reports on day one, and it usually looks alarming.
- Lifetime ROAS counts the total revenue a cohort will pay before churning. It’s the number that reflects reality, but you have to wait to see it — or estimate it from retention.
The gap between the two is the entire reason SaaS founders panic at healthy campaigns. Your Meta dashboard shows a first-payment ROAS of 0.9 and you kill the campaign, when the customers it brought in will each pay for eleven more months.
A worked example: monthly plan
Say you sell a $30/month plan at 80% gross margin, and your customers stay an average of 12 months.
- First-month revenue per customer: $30. Gross-margin value: $30 × 0.80 = $24.
- Lifetime revenue per customer: $30 × 12 = $360. Gross-margin value: $360 × 0.80 = $288.
Now suppose a campaign spends $2,400 and brings in 40 customers.
- Day-one view: 40 × $24 = $960 of margin against $2,400 spent. First-payment ROAS ≈ 0.4. Looks like a disaster.
- Lifetime view: 40 × $288 = $11,520 of margin against $2,400 spent. Lifetime ROAS ≈ 4.8. Excellent.
Same campaign, same customers, two verdicts twelve months apart. The real question isn’t “is 0.4 good?” — it’s “can I afford to wait for the payback?” Which brings us to the number that actually governs the decision.
Payback period is the constraint, not ROAS
For a subscription business, the thing that can kill you isn’t a low day-one ROAS — it’s how long your cash is underwater before an acquisition pays for itself. That’s the payback period.
In the example above, you spend $60 to acquire each customer ($2,400 ÷ 40) and earn $24 of margin per month. Payback = $60 ÷ $24 = 2.5 months. After that, every month is profit. A 2.5-month payback is comfortable. A 14-month payback on the same lifetime ROAS is a cash-flow problem, because you’re funding a long gap out of pocket while you scale.
This is why annual plans change the math so much.
Annual plans collect the payback up front
Sell the same product as a $300/year plan and the entire first year’s revenue lands on day one. At 80% margin that’s $240 of gross value from the first invoice — versus $24 from the monthly plan.
| Monthly ($30/mo) | Annual ($300/yr) | |
|---|---|---|
| Day-one margin per customer | $24 | $240 |
| First-payment ROAS at $60 CAC | 0.4 | 4.0 |
| Payback period | 2.5 months | Immediate |
The annual plan is profitable on the ad platform’s own day-one number. That’s not a measurement trick — you literally have the cash. This is why SaaS teams running ads often push the annual option hard: it turns a scary first-payment ROAS into a healthy one and removes the cash-flow gap entirely. The trade-off is a harder sell and more refunds, so watch net revenue, not gross.
So, what’s a good ROAS?
Put the pieces together and the answer is specific to you:
- Compute your break-even ROAS: 1 ÷ gross margin.
- Decide which revenue you’re measuring — first payment or lifetime — and stay consistent.
- Target roughly 1.5× to 2× break-even on the revenue you can actually bank within your payback tolerance.
If you’re on monthly billing, judge campaigns on lifetime ROAS and watch payback period like a hawk. If you’re on annual billing, first-payment ROAS is already close to the truth. Either way, the platform’s headline number is a starting point, not a grade — reconcile it against your real revenue, a habit we walk through in reading your ad reports.
Where Flowjat fits
The hard part of all this isn’t the formula — it’s connecting ad spend to the revenue that actually arrives. Ad platforms report first-payment ROAS at best, and they don’t know your margin, your churn, or your payback period. Flowjat unifies your ads and revenue data so you see break-even and lifetime ROAS on the same screen, then tells you in plain words whether a campaign is above or below your own line — no spreadsheet reconciliation required. If you’d rather answer “is this campaign working?” without doing this math by hand every week, that’s the whole point.
The Flowjat team
Building the ad copilot for builders