Enter your ad spend, revenue and conversions to see your ROAS, cost per acquisition and the break-even ROAS your margin actually requires. Free, instant and nothing leaves your browser.
ROAS = revenue ÷ spend. CPA = spend ÷ conversions. Break-even ROAS = 1 ÷ margin. Everything is calculated in your browser; nothing is stored or sent anywhere.
ROAS = revenue ÷ ad spend. Spend 5,000 and generate 15,000 in attributed revenue, and your ROAS is 3.0x. It is the fastest sanity check in paid marketing, but note what it measures: revenue, not profit. A 3.0x campaign can be printing money or quietly losing it, depending on your margins.
CPA = ad spend ÷ conversions. The same 5,000 spend producing 120 conversions gives a CPA of 41.67. CPA is most useful when you know what a conversion is worth: if your average customer brings in more profit than the CPA, you can scale; if not, no amount of volume fixes it.
Break-even ROAS = 1 ÷ profit margin. At a 40% margin, break-even is 2.5x. The logic: out of every 2.50 of revenue, 40% (exactly 1.00) is gross profit, which precisely covers the 1.00 of ad spend that generated it. Below 2.5x you are subsidising your customers; above it you are making real money. This is why comparing your ROAS to someone else's is meaningless unless you also compare margins.
The honest answer: whatever is above your break-even. Margin decides everything, as this table shows.
| Profit margin | Break-even ROAS | What that means |
|---|---|---|
| 20% | 5.00x | Low-margin business. A 3x ROAS that looks healthy elsewhere loses money here. |
| 30% | 3.33x | Typical for e-commerce with product and shipping costs. 4x starts being comfortable. |
| 50% | 2.00x | Every unit of spend needs to bring back two in revenue just to break even. |
| 70% | 1.43x | High-margin services and digital products can profit at ROAS levels others cannot survive. |
| 80% | 1.25x | Software-like margins. Almost any positive campaign is profitable; scale becomes the question. |
Published industry averages are mostly noise: they blend different margins, attribution windows and platform reporting quirks into one number. A more useful habit is to compute your own break-even ROAS, add the overhead you need covered, and treat that as your minimum acceptable ROAS. Then judge every campaign against that line, using revenue from your own backend rather than the ad platform's estimate.
ROAS is revenue divided by ad spend. If you spend 5,000 and generate 15,000 in revenue, your ROAS is 3.0x, meaning every unit of currency you put into ads came back three times over as revenue. Note that ROAS is measured on revenue, not profit, which is why the same ROAS can be great for one business and a loss for another.
There is no universal good ROAS, because it depends entirely on your margin. A business with 80% margins can be very profitable at 2.0x, while a business with 20% margins loses money at anything under 5.0x. The honest benchmark is your own break-even ROAS, which is 1 divided by your profit margin. Anything above that number makes money, anything below it loses money, regardless of what industry averages say.
Break-even ROAS is the ROAS at which your ad revenue exactly covers ad spend after accounting for your margin. The formula is 1 divided by profit margin. At a 40% margin, break-even is 2.5x: for every 1 spent you need 2.5 back in revenue, because only 40% of that revenue, exactly 1, is profit available to pay for the ad. Everything above break-even is real profit.
Ad platforms only count conversions they can see and attribute to themselves, and every platform uses its own attribution window and rules. Blocked pixels, iOS privacy changes and journeys that pass through Telegram or WhatsApp all hide conversions from the platform, while double-counting across platforms can inflate the total. The reliable ROAS comes from matching actual revenue in your own backend to actual spend per campaign, which is what server-side attribution tools like FlowTracker are built to do.
If conversions go missing between the click and the deposit, every number in this calculator is built on sand. FlowTracker matches revenue in your backend to the exact ad that caused it, so the ROAS you optimise on is the ROAS you actually earn.