The ROAS formula in one line
Return on ad spend measures the revenue you earn for every dollar you put into ads. According to Triple Whale, the formula is simply: divide an ad campaign's revenue by its cost. It does not get more complicated than this:
ROAS = Revenue attributed to ads ÷ Ad spend
The result is a ratio. A ROAS of 4.0 means every $1 of ad spend brought back $4 in revenue. You can write the same number three ways, and they all say the same thing:
- As a ratio: 4:1
- As a decimal: 4.0
- As a percentage (multiply by 100): 400%
Say you run a Meta campaign that spends $1,200 in a week and drives $4,800 in tracked sales. Your ROAS is $4,800 ÷ $1,200 = 4.0, whether you are on Google, Meta, or any other channel. Nothing else changes that top-line math.
What counts as ad spend and revenue?
Before you plug numbers into the formula, you need to define your scope. As Adjust notes, "calculating ROAS becomes a little bit more complicated when determining what the cost of ads is." You have to decide whether to track only the dollar amount paid to the platform, or to bundle in agency fees, creative production, and other adjacent costs. The same logic applies to revenue: are refunds, chargebacks, and discounts netted out? Without agreeing on scope upfront, two people can report different ROAS figures for the exact same campaign.
For most print-on-demand sellers, a clean working definition is:
- Ad spend = total charged by the ad platform (Meta or Google) for the measurement window, excluding agency mark-ups unless you want fully loaded cost.
- Ad-attributed revenue = store revenue credited to that campaign by your attribution source, after refunds are removed.
Keeping those definitions consistent from month to month matters more than which exact costs you include.
A worked example, step by step
Let's use a print-on-demand apparel store so the numbers tie together. In one month you spend $10,000 on ads and those ads produce $40,000 in revenue across 1,000 orders.
- Ad spend: $10,000
- Ad-attributed revenue: $40,000
- ROAS = $40,000 ÷ $10,000 = 4.0
A 4:1 return is commonly cited as a healthy ecommerce benchmark by practitioners. But "strong versus other stores" and "strong for your P&L" are different questions, and only one of them pays your bills.
Why revenue-based ROAS can lie to you
Here is the part almost every guide skips. ROAS uses revenue in the numerator, not profit. That $40,000 is the money customers paid, before you subtract what it cost to make and ship the product. As Z2A Digital points out, "a campaign can have good ROAS on paper but still lose money" once you account for marketplace fees, discounts, and refunds.
Walk the same store's per-order economics:
- Revenue (AOV): $40.00
- Product cost (blank + print + base fulfillment): −$16.00
- Shipping: −$5.00
- Payment processing: −$1.60
- Pick and pack labor: −$1.40
That leaves $16.00 of contribution margin per order before you count a cent of ad spend. On a 4.0 ROAS you are spending $10 in ads per order ($10,000 ÷ 1,000 orders), so:
- Contribution margin before ads: $16.00
- Ad cost per order: −$10.00
- Profit per order: $6.00
The campaign is profitable, but the real margin is 15% of revenue — not the 400% ROAS flashes at you. If your costs were heavier, that same "good-looking" 4.0 could be a loss. This is exactly why understanding your true per-order profit matters so much for ad decisions, and why knowing your net profit margin benchmark is the essential companion to any ROAS figure.
Break-even ROAS: the number that actually matters
Instead of guessing whether a ROAS is "good," you can calculate the exact point where an ad stops losing money. AppsFlyer explains the formula this way: "break-even ROAS is 1 / your average profit margin %" — it is the level at which your ad campaign pays for itself.
Break-even ROAS = 1 ÷ your contribution-margin ratio
Your contribution-margin ratio is the share of each sale left after all your variable costs. For the store above, contribution margin before ads is $16 on a $40 order, so the ratio is 40%.
- Break-even ROAS = 1 ÷ 0.40 = 2.5
Any ROAS above 2.5 makes money; anything below it burns cash, no matter how the platform dashboard spins it. The margin you plug in changes everything. Say your contribution margin were thinner, only 25% of revenue:
- Break-even ROAS = 1 ÷ 0.25 = 4.0
At a 25% margin, a 4.0 ROAS is not a win — it is exactly break-even. The lower your margin, the higher the ROAS you must clear just to tread water. This single formula is why two stores can hit the identical ROAS and one prints profit while the other quietly goes broke.
Setting a target ROAS with a profit buffer
Break-even keeps you at zero. To actually keep money, you set a target ROAS above break-even. Decide how much contribution margin you want to hold after ads, then work backward.
Using the running store, contribution margin before ads is 40% and you want to keep 15% after ads:
- Target ROAS ≈ 1 ÷ (0.40 − 0.15) = 1 ÷ 0.25 = 4.0
That is precisely where the store runs. If you wanted to keep 20% instead, you would need 1 ÷ (0.40 − 0.20) = 5.0 ROAS. Now your ad targets are tied to your P&L instead of an arbitrary "4 is good" rule of thumb. One fast way to raise your break-even ceiling is to increase average order value — see how AI-assisted AOV tactics can shift the math.
ROAS vs. ROI — what's the difference?
These two metrics are often confused. As Triple Whale explains, "ROAS zeroes in on ad-specific spending and revenue, while ROI considers everything: production costs, shipping, overhead, and more." In other words, ROAS is a campaign-efficiency ratio; ROI tells you whether your entire business investment pays off. Use ROAS to compare campaigns head to head; use profit-based math (or POAS, below) to decide whether the campaign is actually worth running.
POAS: ROAS's honest cousin
If you want profit baked directly into the ratio, use POAS (profit on ad spend). Same shape as ROAS, but the numerator is profit, not revenue:
POAS = Profit attributed to ads ÷ Ad spend
There is a shortcut: POAS = ROAS × your margin ratio. On the store's 40% contribution margin, POAS = 4.0 × 0.40 = 1.6 — meaning $1.60 of contribution margin for every $1 spent on ads. The useful rule is that POAS above 1.0 means the campaign is contribution-positive; below 1.0 means it loses money even when ROAS looks fine. A 4.0 ROAS on a product where only 20% of revenue survives as contribution margin gives a POAS of 0.8 — a loss hiding in plain sight.
Channel ROAS vs. blended ROAS
The ROAS on a single platform depends on that platform's attribution, and platforms tend to grade their own homework generously. If Meta claims 600 conversions and Google claims 500 on the same 1,000 orders, summing them over-counts every channel.
That is why many operators also track blended ROAS: total revenue ÷ total ad spend, across every channel, ignoring platform attribution entirely. For the running store that is still $40,000 ÷ $10,000 = 4.0, but in real life blended ROAS usually comes in below the sum of channel ROAS because it cannot double-count. Understanding blended ROAS is worth doing before you trust any single dashboard number.
Attribution accuracy matters here too. If you run Google Ads without properly configured ValueTrack parameters, your store-side attribution can silently return null values — meaning Google-channel ROAS figures may be understated or missing entirely, with no obvious warning in your dashboard.
Common mistakes that wreck your ROAS calculation
Even with the right formula, these errors routinely produce bad numbers:
- Relying solely on platform data. As Leadscale notes, "ad platforms show cost and clicks, but without finance data you're blind to the revenue side." Platform conversion counts and your actual store revenue almost never match exactly.
- Not netting out refunds and chargebacks. Z2A Digital flags that "refunds and chargebacks don't constitute raw revenue" — including them inflates your ROAS.
- Ignoring the attribution window. A 7-day click window and a 1-day click window produce very different ROAS numbers for the same campaign. Pick one window and apply it consistently.
- Comparing channel ROAS across mismatched windows. Meta's default attribution window differs from Google's. Blended ROAS sidesteps this, but channel-level comparisons require aligned windows.
- Treating ROAS as a profitability signal. As Amazon Ads puts it, ROAS is "an early KPI that can help guide the efficiency of a campaign" — not a proof of profit. Always pair it with your break-even ROAS or POAS.
Don't forget the customers ads bring back
ROAS also quietly takes credit for repeat buyers who would have purchased anyway. A cleaner read of acquisition is new-customer ROAS: new-customer revenue ÷ ad spend. If 800 new customers placed $32,000 of first orders, new-customer ROAS = $32,000 ÷ $10,000 = 3.2 — lower than the blended 4.0 because it strips out returning-buyer revenue.
This is where profit and lifetime value meet. A campaign with a "weak" first-order ROAS can still win if those buyers return. Improving your conversion rate and checkout completion rate both raise the revenue side of that equation without increasing spend.
Where PodVector fits
The reason ROAS misleads is that revenue and profit live in different systems: your ad platforms know spend and clicks, your store knows orders, and your suppliers know product cost. PodVector connects Shopify, Meta Ads, Google Ads, Printify, and Printful into a live data warehouse, so you can see the profit reality behind any ROAS figure instead of a flattering revenue ratio.
Victor, PodVector's AI employee, reads that connected data and proposes moves as approval cards showing old and new values — for example, repricing your worst-margin SKUs to a target margin, raising your free-shipping threshold, or pausing a Meta campaign. He executes approved changes on the Shopify side; your ad accounts and supplier platforms are read surfaces he analyzes but does not write to. Every action waits for your approval — Victor never acts on his own. If you would rather see profit than guess at ROAS, try PodVector.
FAQs
How do you calculate ROAS?
Divide the revenue your ads generated by the amount you spent on them: ROAS = ad revenue ÷ ad spend. If a campaign spends $2,000 and returns $8,000, ROAS = $8,000 ÷ $2,000 = 4.0, meaning $4 back for every $1 spent. Express it as a ratio (4:1), a decimal (4.0), or a percentage (400%).
What is a good ROAS?
It depends entirely on your margins. A 4:1 return is commonly cited as a healthy ecommerce benchmark, but the number that matters more is your break-even ROAS: 1 ÷ your contribution-margin ratio. Anything above that is profitable; anything below it loses money regardless of how "strong" the ratio looks.
How do you calculate break-even ROAS?
Take 1 and divide it by your contribution-margin ratio — the share of each sale left after product cost, shipping, and fees. At a 40% contribution margin, break-even ROAS = 1 ÷ 0.40 = 2.5. At a 25% margin it rises to 1 ÷ 0.25 = 4.0. Lower margins demand a higher ROAS just to break even.
Is ROAS the same as ROI?
No. ROAS measures revenue against ad spend only, so it ignores product cost, shipping, fees, and overhead. ROI — or its ad-specific cousin POAS — measures profit against total cost. A 4.0 ROAS can represent a healthy profit or an outright loss depending on your margins, which is why POAS = ROAS × margin ratio is the safer number to watch alongside ROAS.
Should I use revenue or profit in the ROAS formula?
The standard ROAS formula uses revenue, and that is fine for comparing campaigns head to head. But to decide whether an ad actually makes money, switch to profit-based metrics: compare your ROAS to your break-even ROAS, or calculate POAS directly. Revenue-based ROAS tells you scale; profit-based math tells you survival.
What is blended ROAS?
Blended ROAS is total store revenue divided by total ad spend across all channels, ignoring platform-level attribution entirely. It avoids the double-counting problem that arises when Meta and Google both claim credit for the same sale, making it a more conservative and often more honest signal of overall ad efficiency.
What is POAS and how is it different from ROAS?
POAS (profit on ad spend) replaces revenue with profit in the numerator: POAS = profit ÷ ad spend. A POAS above 1.0 means the campaign is contribution-positive; below 1.0 it loses money. POAS = ROAS × your contribution-margin ratio, so you can convert any ROAS figure directly. POAS is the more actionable metric for POD sellers because it reflects supplier costs and fulfillment fees that ROAS ignores.