The ROAS Calculation Everyone Gets Wrong
Last quarter a DTC skincare brand brought me in to figure out why scaling their Google Ads budget from EUR 15,000 to EUR 25,000 per month had not moved revenue. Their reported ROAS sat at 4.2x -- healthy on paper. They expected a proportional revenue jump when they increased spend. It never came.
The ROAS number was wrong. Their Google Ads conversion tag was double-firing on a subset of checkout confirmations, inflating attributed revenue by roughly 30 percent. And their ad spend figure excluded agency fees and platform costs that totaled another EUR 3,200 per month. Once I corrected both inputs, the real ROAS was 2.4x -- below their break-even point of 2.5x. They had been scaling a losing campaign for two months.
This is not unusual. The ROAS calculation formula itself is trivially simple. The inputs -- revenue attributed to ads and the true cost of those ads -- are where every mistake hides.
The ROAS Calculation Formula
ROAS stands for Return on Ad Spend. The formula:
ROAS = Revenue from ads / Cost of ads
A ROAS of 3.0x means you generated EUR 3 for every EUR 1 spent. That is it. No complexity in the math.
The calculation for ROAS becomes a problem the moment you ask two questions: which revenue counts, and which costs count? Most teams pull "revenue" from their ad platform dashboard and "cost" from the same place. Both numbers are unreliable for different reasons.
Revenue: what the platforms actually report
Google Ads reports conversion value based on the data your conversion tag sends. If the tag fires a purchase event with a value parameter of 120, Google records EUR 120 in revenue attributed to that click. Simple -- until you consider everything that can go wrong:
- Double-firing tags inflate revenue. I covered this pattern in the GA4 conversion tracking guide -- it is one of the five most common failures I see.
- Missing transaction IDs prevent deduplication. If a customer refreshes the order confirmation page, the tag fires again. Without a
transaction_id, Google cannot deduplicate the event and counts the same purchase twice. - Consent gaps and cookie loss mean some conversions never fire at all. Safari's ITP caps JavaScript-written first-party cookies at seven days. A prospect who clicks your ad on Monday and buys the following Wednesday may be invisible to Google Ads. Your reported revenue drops, and your ROAS looks worse than reality.
- View-through conversions add revenue Google claims credit for but that may have converted regardless. Google Ads includes these by default in its conversion reporting.
- Cross-device and modeled conversions fill gaps with estimates. Google's conversion modeling uses machine learning to infer conversions it cannot observe directly. Useful directionally, but the number is an estimate, not a measurement.
The net effect: the "revenue" number in your Google Ads dashboard is a blend of observed events, modeled estimates, and potentially duplicate or missing data. Using it as the numerator in your ROAS calculation without validation is a gamble.
Cost: more than ad spend
The denominator looks clean -- Google Ads tells you exactly how much you spent. But ROAS calculated on media spend alone hides costs that determine whether you are actually profitable:
| Cost component | Typically included in ROAS? | Should it be? |
|---|---|---|
| Media spend (clicks/impressions) | Yes | Yes |
| Agency management fees | No | Yes, for profitability decisions |
| Creative production | No | Depends on decision context |
| Landing page / CRO tools | No | Depends on decision context |
| Platform SaaS fees (e.g., Shopify) | No | No (overhead, not ad-specific) |
For campaign-level optimization inside Google Ads, using media spend alone is standard. For business decisions -- "should we invest more in this channel?" -- you need the fully loaded cost. Conflating the two is where I see founders get burned.
ROAS Calculation Google Ads: What the Dashboard Actually Shows
Google Ads calculates ROAS automatically as "Conv. value / cost" in the Conversions column group. This is a convenient metric, but it inherits every problem in your conversion setup.
A quick audit I run on every new account:
- Check the conversion actions. Are you counting the right events? A Google Ads account with both "Purchase" and an imported GA4 "purchase" key event as primary conversions will double-count revenue. I see this in roughly one in three accounts I audit -- I wrote about the mechanics in the GA4 import trap.
- Verify the value parameter. Is the purchase tag sending the correct order total? I have seen tags hardcoded to a static value of 1, tags sending revenue including tax when the business uses pre-tax revenue, and tags pulling the value from a data layer variable that returns
undefinedon certain checkout flows. - Check for view-through conversions. Segment by conversion type. If a significant share of your reported ROAS comes from view-throughs on Display or YouTube, decide whether those conversions would have happened anyway.
- Review the attribution model. Google Ads defaults to data-driven attribution. If you are comparing ROAS across channels -- Google Ads vs. Meta vs. email -- each platform's attribution model will claim credit differently. I cover this collision in detail in Marketing Attribution Models Explained.
Until you verify these four things, the ROAS number Google Ads shows you is an opinion, not a fact.
ROAS Calculation Example: Same Campaign, Three Different Numbers
Here is a concrete roas calculation example from a real engagement (details anonymized). The client was an e-commerce brand selling consumer electronics, spending EUR 18,000 per month on Google Search and Shopping.
What Google Ads reported:
- Conversion value: EUR 86,400
- Ad spend: EUR 18,000
- ROAS: 4.8x
After I audited the setup:
- Removed double-counted conversions from a duplicate tag: conversion value dropped to EUR 72,000
- Excluded view-through conversions from Display campaigns: dropped to EUR 65,500
- Added agency management fee of EUR 2,700 to cost: total cost became EUR 20,700
Corrected ROAS: EUR 65,500 / EUR 20,700 = 3.16x
Still profitable. But a 34 percent difference from the dashboard number. At 4.8x, the team was planning to double spend. At 3.16x, they needed to improve margins or creative efficiency first. The right number changed the decision.
Break Even ROAS Calculation
Your break-even ROAS is the minimum return needed to cover costs without losing money. The formula:
Break-even ROAS = 1 / Average profit margin
If your average profit margin (after COGS, shipping, returns) is 40 percent:
Break-even ROAS = 1 / 0.40 = 2.5x
Any ROAS below 2.5x means you are spending more on ads than you are earning in gross profit. Any ROAS above it contributes to covering fixed costs and generating net profit.
This is the number that should drive budget decisions, not a blanket "we want 4x ROAS" target. A brand with 70 percent margins can profitably run campaigns at 1.5x ROAS. A brand with 25 percent margins needs 4x to break even. Ignoring margin turns the roas calculation into a vanity metric.
Two things most teams miss in the break-even calculation:
- Returns and refunds. If your return rate is 15 percent, your effective revenue per order is lower than what the conversion tag reports. Google does not know about returns unless you send conversion adjustments.
- Customer lifetime value. If a first purchase leads to repeat orders, you can afford a higher acquisition cost (lower ROAS) on the first transaction. But you need the data to prove it -- which means connecting your CRM or Shopify customer data to your ad platform measurement. This is exactly where a solid measurement setup pays for itself.
ROI vs ROAS Calculation: When to Use Which
ROAS and ROI are related but answer different questions.
| Metric | Formula | What it tells you |
|---|---|---|
| ROAS | Revenue / Ad spend | How efficiently ad spend generates revenue |
| ROI | (Profit - Investment) / Investment | Whether the investment generated net profit |
The roi vs roas calculation distinction matters in practice. ROAS of 3x sounds good. But if your margins are 20 percent, the profit from EUR 3 of revenue is EUR 0.60 -- on EUR 1 of ad spend. Your ROI is -40 percent. You are losing money on every sale.
Use ROAS for campaign-level optimization inside ad platforms. Use ROI for business-level investment decisions. Confusing them is how profitable-looking campaigns quietly drain cash.
How to Get Your ROAS Inputs Right
Fixing a broken roas marketing calculation is not about the formula. It is about fixing the tracking, attribution, and cost accounting that feed it. Here is the short checklist I work through with clients:
1. Audit your conversion tags
Verify that each conversion action fires exactly once per transaction, sends the correct value, and includes a transaction ID for deduplication. The Google Ads conversion tracking guide walks through the full setup.
2. Close the consent and cookie gaps
Implement enhanced conversions to recover conversions lost to cookie expiration. If you operate under GDPR, deploy Consent Mode v2 in Advanced mode so Google can model the conversions you cannot observe directly.
3. Send offline revenue back to the platform
For B2B or any business where the final transaction happens outside the website, your ROAS is meaningless unless you import actual revenue via offline conversion tracking. The platform only knows about the click. You need to tell it about the money.
4. Validate against your source of truth
Compare the revenue Google Ads reports to your payment processor, accounting system, or CRM. If they differ by more than 10 percent, something is broken in the measurement chain. I have never audited an account where the ad platform revenue matched the bank account on the first check.
5. Separate campaign ROAS from business ROAS
Use media-spend ROAS for in-platform optimization. Calculate a fully loaded ROAS (or switch to ROI) for budget allocation and board-level reporting. Document which definition you are using -- mixed definitions in the same spreadsheet is how teams make contradictory decisions with the same data.
Why ROAS Alone Is Not Enough
Even with perfect inputs, ROAS has structural limitations. It is a channel-specific, last-touch-biased metric that ignores the full customer journey. A brand-awareness YouTube campaign will always show lower ROAS than a branded search campaign -- but without the YouTube campaign, the branded searches may never happen.
For a fuller picture, consider supplementing ROAS with incrementality testing or marketing mix modeling, especially once your spend exceeds EUR 20,000 per month. ROAS tells you what the platform claims. Incrementality testing tells you what would have happened if you had not spent the money at all.
FAQ
What is the formula for ROAS calculation?
ROAS equals revenue attributed to ads divided by the cost of those ads. A ROAS of 4x means you generated four currency units of revenue for every one unit of ad spend. The formula is simple but the accuracy depends entirely on whether your revenue tracking and cost accounting are correct.
What is a good ROAS for Google Ads?
There is no universal good ROAS. It depends on your profit margins. A business with 50 percent margins breaks even at 2x ROAS, while a business with 25 percent margins needs 4x just to cover costs. Calculate your break-even ROAS first, then set targets above it based on your growth goals and fixed-cost structure.
Why does my Google Ads ROAS not match my actual revenue?
Google Ads reports revenue based on conversion tag data, which can include double-counted transactions, modeled conversions, and view-through conversions. It also attributes revenue using its own data-driven model, which may credit Google for conversions that other channels influenced. Always validate platform-reported revenue against your payment processor or accounting system.
What is the difference between ROAS and ROI?
ROAS measures revenue generated per unit of ad spend. ROI measures net profit after subtracting the investment cost. A campaign can show a strong ROAS and still lose money if profit margins are thin. Use ROAS for campaign optimization and ROI for business-level profitability decisions.
How do I calculate break-even ROAS?
Divide one by your average profit margin expressed as a decimal. If your margin is 40 percent, break-even ROAS is 1 divided by 0.40, which equals 2.5x. Any ROAS below that number means your ad spend exceeds the gross profit those ads generate. Factor in returns and refunds for a more accurate margin figure.
Not sure the numbers behind your ROAS are trustworthy? Book a measurement audit -- I will tell you exactly what is broken in your tracking and how to fix it.