ROAS Explained: How to Calculate It, Benchmark It, and Stop Getting Fooled By It
by Trivas.ai
|
8 min read
Sep 26, 2026
ROAS is the metric everyone quotes and almost nobody calculates the same way. Return on ad spend just means revenue generated per dollar spent on ads, that part's simple. What's not simple is what happens next: which revenue counts, which spend counts, and whether the number you're staring at in Slack matches what actually happened in your bank account.
This page exists because ROAS gets thrown around in board decks and marketing standups like it's a fixed, agreed-upon fact. It isn't. Two people on the same team can pull "ROAS" for the same campaign and land on different numbers depending on attribution window, refund handling, and which platform they screenshotted.
We'll cover how to calculate it properly, what counts as good, how it differs from ROI, MER, and POAS, why blending channels matters more than most tools admit, the tracking mistakes that quietly wreck the number, and how to actually move it. The stakes are real: a brand optimizing to the wrong ROAS figure can pour budget into a "winning" campaign for months before anyone notices it was never profitable.
How to Calculate ROAS (With Real Examples)
The formula is short: ROAS = Revenue from Ads / Ad Spend. Express it as a ratio (4:1) or a multiplier (4x), same thing.
Say you spend $2,000 on a Meta campaign and it generates $8,000 in attributed revenue. That's $8,000 / $2,000 = 4x ROAS. For every dollar spent, four came back in revenue. Clean example, easy math.
The mess starts with where that $8,000 came from. Platform-reported revenue (what Meta Ads Manager or Google Ads shows you) and revenue confirmed in Shopify or GA4 are often not the same number. Platforms attribute conversions using their own tracking pixels and windows, which tend to be generous about taking credit. Your actual order data doesn't lie the same way.
Two more places teams get sloppy:
Gross vs net revenue: are you counting the full order value, or revenue after discounts and refunds?
Timing: a sale attributed to Tuesday's ad spend might get refunded Thursday, but the ROAS number reported Tuesday never gets corrected.
If you want to skip the spreadsheet gymnastics, run your own numbers through the ROAS calculator and see where you land before reading further.
What Counts as a 'Good' ROAS?
There's no universal good ROAS. Anyone who tells you "3x is good" without asking about your margins is guessing.
The real starting point is breakeven ROAS, and it's a simple formula: 1 / gross margin percentage. A brand running 40% gross margin needs roughly 2.5x ROAS just to break even on ad spend, before overhead, before anything else. A brand at 60% margin only needs about 1.67x. Same "good" ROAS number means completely different things for these two businesses.
Rough ranges people commonly see, for context, not gospel:
Meta and Google prospecting (cold audiences): often 1.5x to 3x
Retargeting: often 4x to 8x
Branded search: often 6x to 10x+
Don't copy benchmark numbers from a blog post (including this one) and treat them as your target. Your margin structure, your AOV, your CAC tolerance, all of it changes what "good" means for you.
It's also worth saying plainly: a "good" ROAS on one channel can be a mediocre one on another. Branded search and retargeting have inherently higher intent and lower CPMs than cold prospecting, so comparing a 2x on Meta prospecting to a 7x on branded search and calling one a failure is comparing apples to a much easier version of apples.
ROAS vs ROI vs MER vs POAS: Stop Mixing These Up
These four get used interchangeably in meetings, and they shouldn't be.
[@portabletext/react] Unknown block type "table", specify a component for it in the `components.types` prop
ROAS tells you if a channel or campaign is generating revenue relative to spend. It says nothing about margin. ROI pulls in the full cost picture, product cost, fulfillment, overhead, so it's a better read on whether the business made money, not just whether the ad "worked." MER zooms out to your entire marketing spend across every channel, useful for a founder asking "are we healthy overall," useless for deciding which campaign to cut. POAS swaps revenue for actual profit dollars in the numerator, which is the number that should really drive budget decisions.
Simple rule: use ROAS to optimize a channel or campaign, use MER to check overall marketing health, use POAS when you need the real profitability answer.
Here's where it gets uncomfortable. A campaign can show 5x ROAS and look like a star. Run the same numbers through POAS at a 30% margin, and that "5x" campaign is barely clearing breakeven once real profit dollars replace revenue in the formula. The ROAS number wasn't wrong, it just wasn't answering the question everyone assumed it was answering.
Why Single-Channel ROAS Is Lying to You
Here's the problem nobody wants to say out loud: Meta and Google both take credit for the same sale, constantly.
A customer sees your Meta ad, doesn't buy, then Googles your brand name two days later and clicks a branded search ad to convert. Meta's dashboard counts that as a Meta conversion. Google's dashboard counts it as a Google conversion. Add up both platforms' "reported ROAS" and you're double-counting revenue that only happened once. Do this across five channels and your combined reported ROAS can look dramatically better than what actually landed in your bank account.
This is why blended ROAS, sometimes called true ROAS, matters: total attributed revenue across every channel divided by total spend across every channel, reconciled against what GA4 and Shopify actually recorded as orders. Not five dashboard screenshots stitched together with a mental asterisk.
Most ROAS content stops at the formula and skips this part entirely, because solving it isn't a formula problem, it's a data infrastructure problem. You need Amazon, Shopify, Meta, Google, and GA4 sitting in one place before ROAS is even calculated, not reconciled after the fact in a spreadsheet.
This is the specific gap Trivas is built around. The Redshift-based data layer pulls every channel into one source of truth first, so blended ROAS reflects what actually happened, not what each platform wants to claim credit for. If you're running spend across Meta and Google Ads simultaneously, this is the difference between a real number and a flattering one.
Common ROAS Tracking Mistakes That Skew the Number
A handful of tracking issues quietly distort ROAS before anyone even gets to the strategy conversation:
Attribution window mismatches: comparing Meta's 7-day click window against Google's 1-day view window isn't an apples-to-apples read, but teams do it constantly.
iOS 14.5+ and cookie deprecation: Meta specifically under-reports conversions now compared to a few years ago, so a flat ROAS trend might actually be a measurement gap, not a performance one.
New vs returning customer blending: lumping both into one ROAS number hides whether prospecting is actually acquiring anyone new, or whether the number's propped up by repeat buyers who'd have purchased anyway.
Refunds and cancellations arriving late: a campaign gets scaled based on a ROAS number that hadn't yet accounted for the return that came in three days later.
Branded vs non-branded search: branded search ROAS is almost always inflated and low-effort (people were already going to buy), while non-branded prospecting ROAS is the real signal of whether the channel is finding new demand.
Fix these before you touch a single bid or creative asset. Optimizing on top of bad measurement just means you're optimizing faster toward the wrong thing.
How to Actually Improve ROAS
Start with measurement, not creative. Reconcile platform-reported revenue against actual store revenue first. There's no point testing new ad copy on a number that's already 20% inflated.
From there:
Segment before you optimize. Break ROAS out by new vs returning customer and by campaign objective. A blended channel average can hide a prospecting campaign that's quietly underwater.
Shift budget by true ROAS, not reported ROAS. Once the blended, margin-adjusted numbers are accurate, move spend toward what's actually working, not what the platform dashboard is bragging about.
Work both sides of the ratio. ROAS isn't only a spend problem. AOV and conversion rate levers (bundles, post-purchase upsells, checkout offers) push the number up without touching CPMs at all.
Reassess weekly, minimum. ROAS moves fast with seasonality, creative fatigue, and platform algorithm shifts. A number from three weeks ago is a historical artifact, not a decision-making input.
Teams that treat this as a monthly report exercise are always making decisions on stale data. Performance marketers managing multiple channels at once feel this the hardest, since the reconciliation work multiplies with every platform added.
Get One True ROAS Number Across Every Channel
ROAS is genuinely useful when it's calculated the same way every time and reconciled against real revenue, not five different platform dashboards each taking credit for the same sale.
Trivas pulls Amazon, Shopify, Meta, Google, and GA4 into one Redshift-backed view through BI reporting, so blended ROAS gets calculated once, correctly, instead of stitched together by hand every Monday morning. The AI Wingman layer flags the moment a channel's ROAS drops below breakeven, so it doesn't sit unnoticed in a dashboard nobody opened that week.
If you want to sanity-check where you stand right now, run your numbers through the ROAS calculator. And if you're ready to see what blended ROAS looks like across your actual accounts instead of platform-reported guesses, start a free trial.
Content author and contributor at Trivas.ai, sharing insights on e-commerce analytics, business intelligence, and data-driven strategies to help businesses grow.
Continue Reading
explore more insights
Jetson Electric Ecommerce Analytics: How the Brand Could Unify Shopify and Amazon Reporting
3 min read
Ecommerce Analytics for Brands Expanding From the US to the EU
3 min read
Ecommerce Analytics for Baby and Kids Shopify Brands