ROAS Formula: How to Calculate Return on Ad Spend (With Examples)

Learn the ROAS formula and its variations (break-even, target, blended, POAS), how to calculate it by hand in Google Ads, Meta and a spreadsheet, how to automate it with ChatGPT, Claude or Claude Code, and what a good ROAS looks like against current benchmarks.

savvy.so · Updated October 28, 2026

The ROAS formula is simple: ROAS = revenue attributed to your ads ÷ ad spend. If a campaign cost you $2,000 and drove $8,000 in sales, your return on ad spend is $8,000 ÷ $2,000 = 4, written as 4x, 4:1 or 400%. That is the whole formula for ROAS. The hard part is not the division; it's deciding what goes in the numerator (platform-reported conversion value or real store revenue?) and knowing what ROAS you actually need to make money, which depends on your margins, not on an industry average.

Key takeaways

  • ROAS = revenue from ads ÷ ad spend. Express it as a multiple (3.5x) or a percentage (350%). Google Ads shows it as "Conv. value / cost" and Meta as "Purchase ROAS".
  • Break-even ROAS = 1 ÷ gross margin. With a 40% margin you need at least 2.5x just to not lose money on the ad. Any benchmark that ignores your margin is noise.
  • Target ROAS = 1 ÷ (gross margin − profit you want to keep). This is the number you should put in your bid strategies, not a round "4x".
  • Platform ROAS and real ROAS differ, because each ad platform claims conversions on its own terms. Cross-check with blended ROAS (total revenue ÷ total ad spend) from your store data.
  • ROAS measures revenue, not profit. POAS (profit ÷ ad spend) or feeding profit as the conversion value fixes that blind spot.

The return on ad spend formula, step by step

Return on ad spend answers one question: for every dollar you put into advertising, how many dollars of sales came back?

ROAS = Revenue attributed to ads ÷ Cost of those ads

Three decisions make or break the result:

1. Which revenue counts

  • Platform conversion value. What Google Ads, Meta, TikTok or Microsoft Ads attribute to their own clicks and views. Easy to get, but every platform uses its own attribution window and modeling, so two platforms can both claim the same order.
  • Store revenue. What Shopify (or your order system) actually recorded. More honest, but you need an attribution method (UTMs, GA4, a tracking tool) to split it across channels.
  • Gross or net. Most teams use gross sales before returns, taxes and discounts because that's what the platforms report. If you sell in regions with VAT or sales tax included in the price, or have a 15% return rate, your "real" ROAS is lower than the dashboard one.

2. Which costs count

Pure ROAS only includes media spend: what you paid the platform. Agency fees, creative production and tools are usually left out of ROAS and included in ROI instead. Be consistent: if you compare campaigns, use the same cost definition for all of them.

3. Ratio or percentage

Both are correct. 4x = 4:1 = 400%. Google Ads Target ROAS wants a percentage (400%); Meta and most analytics tools display a multiple (4.00). To convert, multiply the multiple by 100.

Worked example

Say your Shopify store ran Google Shopping in March:

  • Ad spend: $6,250
  • Conversion value reported by Google Ads: $21,875
  • Orders matched in Shopify to that campaign: $19,400 (some conversions were duplicates or canceled)

Platform ROAS = 21,875 ÷ 6,250 = 3.5x (350%)

Store-verified ROAS = 19,400 ÷ 6,250 = 3.1x (310%)

Both numbers are "correct", they just answer different questions. Use the platform number to steer bids inside the platform, and the store number to decide budgets.

ROAS formula variations you will actually use

The basic ROAS formula in digital marketing is only the starting point. These four variants are where the decisions happen.

Break-even ROAS

Break-even ROAS = 1 ÷ gross margin

Gross margin = (price − cost of goods) ÷ price. If you sell a $100 product that costs $60, margin is 40% and break-even ROAS is 1 ÷ 0.40 = 2.5x. Below 2.5x, every ad dollar loses money even though revenue looks great.

Quick reference:

  • 20% margin → 5.0x break-even
  • 30% margin → 3.33x
  • 40% margin → 2.5x
  • 50% margin → 2.0x
  • 60% margin → 1.67x
  • 70% margin → 1.43x

For ecommerce, make the margin realistic: subtract shipping you absorb, payment processing fees and packaging, not just the supplier cost. A "50% margin" on paper often turns into 38% after those, moving break-even from 2.0x to 2.6x.

Target ROAS

Break-even keeps you alive; it doesn't pay the rent. To keep a profit margin after ads:

Target ROAS = 1 ÷ (gross margin − desired net margin)

With a 45% contribution margin and a goal of keeping 15% of revenue as profit: 1 ÷ (0.45 − 0.15) = 1 ÷ 0.30 = 3.33x. That's the number to put in your bidding strategy (333% in Google Ads).

Blended ROAS (MER)

Blended ROAS = total store revenue ÷ total ad spend across all channels

Also called marketing efficiency ratio. It ignores attribution fights entirely: whatever Google and Meta claim, your store either made $120,000 on $30,000 of ads (4.0x blended) or it didn't. Track it weekly; if platform ROAS goes up while blended ROAS goes down, the platforms are claiming orders you would have gotten anyway.

POAS (profit on ad spend)

POAS = gross profit from ads ÷ ad spend

Replace revenue with profit (price minus tax, product cost, shipping, payment fees). A POAS of 1.0 means you broke even; 1.5 means you earned $1.50 of profit for every $1 of ads. POAS makes campaigns with very different margins comparable: a 3x ROAS on a 60%-margin product beats a 4x ROAS on a 25%-margin product, and only POAS shows it.

How to calculate ROAS by hand in Google Ads, Meta and a spreadsheet

Before automating, do it manually once. You'll understand exactly what each platform counts, which is what keeps you from trusting a wrong number later.

Google Ads

Google Ads doesn't have a column called ROAS. It's called Conv. value / cost.

1. Open Campaigns and set the date range. Exclude the last few days so conversion lag doesn't understate recent results.

2. Click Columns → Modify columns.

3. Under Conversions, add Conv. value, Cost and Conv. value / cost. Apply.

4. Read the column: 3.52 means $3.52 of conversion value per $1 spent, i.e. 352% ROAS.

5. Before you trust it, go to Goals → Conversions → Summary and check which actions are marked Primary. If "Add to cart" or a lead form is primary with a value, your conversion value column is not revenue and your ROAS is inflated.

6. To set Target ROAS, multiply the historical Conv. value / cost by 100 and start at or slightly below that figure. Google's own documentation describes Target ROAS as keeping conversion value per cost close to the target you set, so a target far above your history simply chokes spend.

Meta Ads Manager

1. Open Ads Manager → Campaigns, choose the date range and attribution setting (7-day click, 1-day view is the default; change it if you compare with other sources).

2. Click Columns → Customize columns.

3. Search "ROAS" and add Purchase ROAS (return on ad spend). Add Purchase conversion value and Amount spent too so you can verify the division yourself.

4. Note that Meta's purchase figures can include modeled (statistically estimated) conversions when data is partial, and the value comes from your Pixel/Conversions API events, so make sure the event sends the right value (subtotal vs total with shipping and tax).

Spreadsheet (blended ROAS)

1. Export your Shopify sales by day (Analytics → Reports → Total sales, or orders CSV).

2. Export spend by day from Google Ads and Meta (Reports → cost by day).

3. In Google Sheets, columns: Date, Revenue, Google spend, Meta spend, Total spend.

4. Formula: `=B2/E2` for blended ROAS; `=B2/C2` for Google-only, and so on.

5. Add a break-even row: `=1/margin` with your real contribution margin.

6. Conditional formatting: red below break-even, green above target.

This takes 20 minutes the first time and gives you a number no platform can fudge.

How to calculate ROAS faster with AI

Once you know what the inputs mean, let AI do the repetition.

ChatGPT or Claude: analyze an export in one prompt

Export your campaign table (CSV) from Google Ads or Meta and paste it, or attach the file, with this prompt:

```

You are a performance marketing analyst. Here is a campaign export with columns: campaign, cost, conversions, conversion value.

My contribution margin is 42% (after product cost, shipping and payment fees).

1. Calculate ROAS for each campaign (conv value ÷ cost) as a multiple and as a percentage.

2. Calculate my break-even ROAS and a target ROAS that keeps 12% net margin.

3. Flag campaigns below break-even, between break-even and target, and above target.

4. For each flagged campaign, suggest one concrete action (budget change, bid target, pause) and explain the math.

Show a table and keep explanations short.

```

Pros: instant, works with any export, explains the reasoning. Cons: the model can only see what you paste; if the conversion value column is inflated, the analysis is inflated too.

Claude or ChatGPT: build a ROAS calculator in Google Sheets

```

Build me a Google Sheets ROAS calculator. Inputs on a sheet called "Inputs": selling price, product cost, shipping cost absorbed, payment fee %, return rate %, desired net margin %. Outputs: contribution margin, break-even ROAS, target ROAS, and a table that takes weekly ad spend and revenue and returns ROAS, POAS and the profit or loss in dollars. Give me the exact cell formulas, and a short explanation of each one.

```

Paste the formulas and you have a reusable calculator with your real numbers in 5 minutes.

Claude Code: a repeatable weekly report

If you're comfortable with a terminal, Claude Code can write and maintain a script that does the whole job:

```

Write a Python script that:

- reads google_ads.csv (date, campaign, cost, conv_value) and meta.csv (date, campaign, amount_spent, purchase_value)

- reads shopify_orders.csv (date, order_total, product_cost, shipping_cost, payment_fee, utm_source, utm_campaign)

- computes per campaign: platform ROAS, store-verified ROAS (matching on utm_campaign), POAS using order-level profit, and blended ROAS for the week

- compares each to break-even ROAS = 1/margin, with margin computed from the orders file

- prints a markdown table sorted by POAS and writes report.md

Use pandas, handle missing campaigns gracefully, and add comments.

```

Run it every Monday with fresh exports. Pros: store-verified, profit-aware, no subscription. Cons: you maintain the exports and the UTM discipline yourself.

What is a good ROAS? Current benchmarks

The famous "4:1 is good" rule traces back to a Nielsen study from 2016. Today's data is more modest. Triple Whale's latest cross-platform benchmarks (October 2025 through September 2026) put the median ROAS at 2.22 overall, 3.18 on Google Ads, 1.88 on Meta Ads and 1.47 on TikTok Ads. Across calendar 2025, Triple Whale reported a Meta median of around 1.86x across roughly 35,000 ecommerce brands and a Google Ads median of 3.68x, with Google down about 10% year over year while Meta held flat despite CPMs rising around 20%.

Why Google runs higher: Search and Shopping catch people who already want the product, so the attributed revenue per dollar is higher. Meta mostly creates demand, so its ROAS looks lower while it often feeds the branded searches that Google later claims.

How to read benchmarks correctly:

  • Compare to your break-even first. A 2.5x Meta ROAS is above the median and still a loss if your margin is 35% (break-even 2.86x).
  • Compare by campaign type, not account. Branded search at 12x and prospecting at 1.8x average to a meaningless 4x.
  • Compare over time. Your own trend, same attribution settings, is a better benchmark than any industry table.

Where the ROAS formula lies to you (and the fixes)

Attribution double counting

Google claims the click, Meta claims the view, and your store got one order. Add platform-reported revenue together and you can "earn" more than you sold. Fix: track blended ROAS from store revenue, and use GA4 or an attribution tool for a third opinion.

Conversion value is not revenue

In Google Ads, the conversion value column sums every primary action's value. If a $120 add-to-cart is counted alongside the purchase, ROAS doubles on paper. Fix: only purchases as primary; everything else secondary.

Revenue is not profit

ROAS treats a $100 order with $20 profit the same as a $100 order with $60 profit. Scaling on ROAS alone pushes budget toward discounted, low-margin or high-return products. Fix: compute POAS, or send order profit as the conversion value so the bidding algorithms optimize for margin.

Conversion lag and windows

A 7-day window on Meta vs a 30-day window on Google means the "same" ROAS isn't comparable. And yesterday's ROAS is always low because conversions haven't landed yet. Fix: fix the windows you compare, and evaluate periods that end a week ago.

Taxes, shipping and returns

Whether your pixel sends the subtotal or the total with tax and shipping changes ROAS by 10–25% without changing a single sale. Fix: decide once (subtotal excluding tax is cleanest), set it everywhere, and subtract an expected return rate for categories like fashion.

ROAS vs ROI vs POAS vs MER

  • ROAS = ad revenue ÷ ad spend. Measures media efficiency. Ignores margins and non-media costs.
  • ROI = (profit − total cost) ÷ total cost. Includes product costs, agency fees, tools. The finance view.
  • POAS = gross profit ÷ ad spend. Media efficiency measured in profit. Best for scaling decisions in ecommerce.
  • MER / blended ROAS = total revenue ÷ total ad spend. Attribution-proof sanity check across all channels.

Example on one $10,000 campaign generating $35,000 of sales with 40% margin and $2,000 agency fee: ROAS 3.5x; POAS 1.4; ROI = (14,000 − 12,000) ÷ 12,000 = 16.7%.

Tools for tracking ROAS: real alternatives

  • Native platform reports (Google Ads, Meta). Free, real-time, what the bidding uses. Con: each one grades its own homework.
  • GA4. Free; its Google Ads report includes a return on ad spend metric and its attribution covers all channels. Con: no product cost, so no profit; cost data only imports natively from Google Ads.
  • Spreadsheet or script. Fully under your control, zero cost, store-verified. Con: manual exports and UTM discipline.
  • Attribution platforms (Triple Whale, Northbeam and similar). Blended and multi-touch views, benchmarks, creative-level data. Con: monthly cost, and most still center on revenue unless you upload costs.
  • Profit-first tools. Compute profit per order and push it to the ad platforms as conversion value. Con: another integration to set up; requires accurate product costs in your store.

How savvy.so does it

savvy.so calculates the real profit of every Shopify order (price without VAT minus product cost, shipping, payment fee and expenses) and shows POAS by channel and campaign for Google Ads, Meta Ads and Idealo, next to the revenue-based ROAS you already know. It then sends that per-order profit as the conversion value to Google Ads, Meta and GA4, so Target ROAS and value-based bidding chase margin instead of revenue. There's a free trial if you want to see your break-even and POAS computed from real orders rather than estimates. If you'd rather learn the whole workflow yourself, the AI Marketing Bootcamp covers Google Ads and Meta bidding on profit.

FAQ

What is the formula for calculating return on advertising spend (ROAS)?

ROAS = revenue attributed to ads ÷ ad spend. $8,000 in sales from $2,000 in ads is a ROAS of 4 (4x, 4:1 or 400%).

Is ROAS expressed as a ratio or a percentage?

Either. 3.5x and 350% mean the same thing. Google Ads Target ROAS uses a percentage; Meta Ads Manager shows a multiple. Multiply the multiple by 100 to convert.

What is a good ROAS?

Good means above your target, which depends on margin: break-even ROAS = 1 ÷ gross margin. For context, recent Triple Whale medians are around 3.2x on Google Ads, 1.9x on Meta and 1.5x on TikTok, with 2.22 across all platforms.

How do I calculate break-even ROAS?

Divide 1 by your gross (ideally contribution) margin. A 40% margin gives 1 ÷ 0.4 = 2.5x. Below that, ads lose money even if revenue grows.

What is the difference between ROAS and ROI?

ROAS compares ad revenue with ad spend only. ROI compares profit with total cost, including product costs, fees and tools. A campaign can have a 3x ROAS and a negative ROI.

Why is my Google Ads ROAS different from Meta's and from Shopify's?

Each platform attributes conversions with its own window and model, and may count values differently (tax, shipping, modeled conversions). Shopify shows what actually sold. Use blended ROAS (total revenue ÷ total spend) as the referee.