What is the difference between ROAS and ROI?
ROAS is revenue divided by ad spend: the sales each euro of ads brought in. ROI takes your costs out first, so it says whether those sales made money. A healthy-looking ROAS can still lose money if your margin is thin.
By Joris van Huët, Founder & CEOUpdated 6 min read
Run the numbers for your store: the free marketing ROI calculator.
ROAS is revenue divided by ad spend: the sales each euro of ads brought in. ROI takes your costs out first, so it tells you whether those sales made money. If your margin is thin, a healthy-looking ROAS can still lose money. Use ROAS to steer ads and ROI to judge them.
What one store's data shows
One store's anonymised GA4 export, 1 January 2024 to 21 August 2026. It holds shares of revenue only: no ad spend, no order counts.
| What the export shows | Value | Source cell |
|---|---|---|
| Break-even ROAS at a 40% margin (1 divided by 0.40) | 2.5x | Break-even sheet, 40% margin row |
| Direct, in last click, first click and touched views | 57.7% of revenue | Channels sheet, Direct row |
| Journeys with 1 touch (0.5 days to buy) | 79.5% of revenue | Journeys sheet, 1 touch row |
| Journeys with two or more touches (12.2% + 5.4% + 3.0%), 12.5 to 16.9 days to buy | 20.6% of revenue | Journeys sheet, sum of the three multi-touch rows |
Start with margin, because it links the two numbers. On the Break-even sheet, a 40% margin gives a break-even ROAS of 2.5x, because 1 divided by 0.40 is 2.5. That is arithmetic, not a ROAS the store achieved: the export holds no spend, so neither ratio can be worked out from it. On the Break-even sheet's sum, a ROAS under 2.5x means the ads cost more than the gross profit they bring in. Above that line, ad ROI turns positive, before rent, salaries and the coffee machine.
The Channels sheet holds the awkward row. In one store's export, Direct holds 57.7% of revenue in last click, first click and touched views alike. Direct is not an ad, so no ROAS formula gets to divide that revenue by a spend figure. Which revenue sits on top of the ratio is a choice, and ROI inherits the same choice. Google admits as much: GA4 and Google Ads attribute key events differently, so the same dates can show different results.
The Journeys sheet adds time. In one store's export, 1-touch journeys hold 79.5% of revenue and take 0.5 days to buy. Journeys with two or more touches hold 20.6% of revenue on the Journeys sheet and take 12.5 to 16.9 days. A ROAS read the week after a campaign misses buyers who are still making up their minds. A ROI over a quarter catches more of them, which is one more reason the two numbers can tell different stories.
On their own, these share rows cannot show cause. They say where revenue landed, not whether any ad made it happen.
Why does a strong ROAS still lose money?
The usual answer stops at two formulas. ROAS is revenue divided by ad spend. ROI is profit divided by what you spent to earn it. The trouble is what each one leaves out.
Google's own glossary has a tidy example. In it, $1,200 of sales come from $200 of Google Ads and $600 of product costs. Google puts the ROI at 50%, dividing the profit by product costs plus ad costs. Run ROAS on the same numbers and you get 6x, because $1,200 divided by $200 is 6. Same campaign, two headlines: one sounds like a rocket launch, the other like a business.
ROAS never looks at what the goods cost. That is why it flatters low-margin products, free shipping and discount weeks. ROI does look, which is why finance asks for it.
ROI also comes in more than one flavour. Google's glossary divides by all costs, goods and ads together. You can also divide by ad spend alone, which answers a narrower question: did the ads pay for themselves? Both are fine. Mixing them in one report is not.
What can neither number tell you?
Both ratios share a numerator: revenue that somebody credited to the ads. Neither tells you what would have happened if you had switched the ads off. Buyers who were coming anyway still count as return, in ROAS and in ROI alike. A holdout test, where some people or regions see no ads, answers that question head-on.
Recent days are the other trap. Google's Target ROAS help says to leave the most recent conversion delay period out of any ROAS review. GA4 can also shift attribution credit for up to 12 days after a key event. So last week's ROAS is a draft, and a ROI built on it is a draft of a draft.
What to do this week
- Find your real margin in Shopify. Go to Analytics > Reports, filter Category to Profit Margin and open Gross profit by product. Pass: your top sellers each show a Gross margin. Fail: rows are missing, because Shopify reports profit only for products with a cost recorded when they sold.
- Turn that margin into a break-even ROAS. Divide 1 by the margin as a decimal and pin the result above your ad reports. Pass: you know your line, like the 2.5x at a 40% margin on one store's Break-even sheet. Fail: you judge campaigns against a ROAS target borrowed from someone else's store.
- Put two ROAS figures side by side. In Google Ads, add Conv. value/cost through Columns, Modify columns and the Conversions list. In GA4, read Return on ad spend under Advertising > Planning > All channels for the same month. Pass: ROI keeps the same sign on either figure. Fail: ROI flips between them, so settle which revenue you trust before you scale.
Check the homework. Your GA4 Attribution paths export already holds the evidence. Causality Engine reads that one file and shows what each channel caused next to what last-click gave it, in 1 to 2 minutes, for €99 once (excluding VAT), refundable within 30 days. Check the homework
Sources, 1 October 2026: Return on investment (ROI) (Google); About Target ROAS bidding (Google); All channels performance report (Google); Profit reports (Shopify); Data freshness (Google).
Related answers
Frequently asked questions
Can ROAS be high while ROI is negative?
Yes. ROAS ignores what the goods cost, and ROI does not. If your gross margin is 40%, ads need a ROAS above 2.5x to earn back their own cost. Under that line, ROAS still looks fine while ad ROI is below zero.Should I show ROAS or ROI to my finance team?
ROI, usually, because finance thinks in profit. Say which costs you subtracted and what you divided by, since ROI comes in more than one version. Keep ROAS for steering bids and budgets inside the ad platforms.Does a higher ROAS always mean a higher ROI?
No. A campaign selling low-margin products can beat another on ROAS and still lose on ROI. Margin decides how much of each sale is left to pay for the ads, so compare ROI when the products differ.
Go deeper: Causal attribution, explained.
Sixty-second versions of these ideas: Causality Engine on YouTube Shorts.
Keep reading
Terms in this article
- AttributionAttribution identifies user actions that contribute to a desired outcome and assigns value to each. It reveals which marketing touchpoints drive conversions.
- ConversionConversion is a specific, desired action a user takes in response to a marketing message, such as a purchase or a sign-up.
- Holdout TestA holdout test is an experiment where a portion of the audience does not see a campaign. This measures the campaign's true incremental impact.
- IncrementalityIncrementality measures the true causal impact of a marketing campaign. It quantifies the additional conversions or revenue directly from that activity.
- Incrementality TestingIncrementality Testing measures the additional impact of a marketing campaign. It compares exposed and control groups to determine causal effect.
- Profit MarginProfit margin measures profitability, calculated as net income divided by revenue and expressed as a percentage.
- Return on Ad Spend (ROAS)Return On Ad Spend (ROAS) measures the total revenue generated for each dollar spent on advertising. It indicates campaign profitability and effectiveness.
- Return on Investment (ROI)Return on Investment (ROI) is a ratio between net income and investment. It evaluates the efficiency of an investment.