Back to blog
AcquireROASAttribution

Why Your ROAS Is Lying to You (And What to Measure Instead)

Paulo de VriesMarch 3, 20266 min read

Your ad platform says your return on ad spend is 4x. You are spending $10K on ads and generating $40K in attributed revenue. That looks great on a dashboard. But when you check your bank account, the math does not add up.

This is the ROAS gap, and it is the most expensive blind spot in e-commerce advertising.

Why Platform ROAS Is Wrong

Double-counting across platforms. If a customer clicks a Meta ad on Monday, a Google ad on Wednesday, and buys on Friday, both platforms claim the full sale. Your "total attributed revenue" can exceed actual revenue by 20% to 40% depending on how many channels you run. This is not a bug. It is how attribution models work, and the platforms have no incentive to fix it.

Returns are invisible. Ad platforms report revenue at the point of sale. They have no visibility into what happens after. If 25% of your orders get returned, your real ROAS is 25% lower than what the dashboard shows. A campaign that looks like 4x ROAS might actually be 3x after returns, which changes your bidding strategy entirely.

Lifetime value is ignored. Platform ROAS measures the first purchase only. A customer acquired at a 2x ROAS who makes five purchases over the next year is far more valuable than a customer acquired at 5x ROAS who never comes back. But the dashboard tells you the opposite story, pushing you to optimize for one-time buyers instead of loyal customers.

Margin is not revenue. ROAS is calculated on gross revenue, not margin. A $100 sale with 20% margins and a $100 sale with 60% margins look identical in your ad dashboard. But one generates $20 of gross profit and the other generates $60. Optimizing for revenue-based ROAS can lead you to scale campaigns that are technically profitable but barely cover their costs.

What True ROAS Looks Like

True ROAS accounts for all of these factors. The formula is straightforward:

True ROAS = (Attributed Revenue - Returns - COGS) / Ad Spend

For a more complete picture, extend this to include lifetime value:

LTV-Adjusted ROAS = (Predicted LTV of Acquired Customers - Returns - COGS) / Ad Spend

This is harder to calculate because it requires connecting data from multiple systems: your ad platform, your e-commerce backend, your returns system, and your customer database. Most merchants do not have these systems talking to each other, which is why the gap persists.

The Attribution Problem

Even if you adjust for returns and margins, you still have the attribution problem. Which touchpoint actually caused the sale? First-click attribution over-credits awareness campaigns. Last-click attribution over-credits retargeting. Multi-touch models are better but require data infrastructure that most merchants do not have.

The practical solution is incrementality testing. Run a holdout test: take a random subset of your audience and show them no ads. Compare the conversion rate of the exposed group to the holdout group. The difference is your true incremental impact. This is the gold standard for measuring whether your ads are actually driving sales or just taking credit for sales that would have happened anyway.

Making Better Decisions

Once you have true ROAS, your ad spend decisions change dramatically. Campaigns that looked like winners get paused. Campaigns that looked marginal get scaled. The reallocation alone typically improves overall profitability by 15% to 25% without spending an additional dollar.

Here is a practical framework for getting started:

Step 1: Connect your return data to your acquisition data. Tag every order with its acquisition source, then track which source generates the highest return rates. This immediately reveals which campaigns are attracting problematic customers.

Step 2: Calculate margin-adjusted ROAS by channel. Instead of optimizing for revenue, optimize for gross profit. This shifts your budget toward products and campaigns with better margins.

Step 3: Run an incrementality test on your largest campaign. Pause it for a random 10% holdout group for two weeks. The results will likely surprise you. Many "high-performing" campaigns show minimal incrementality because they are targeting customers who would have converted organically.

FunnelPilot's Acquire layer automates this by connecting ad spend data to post-purchase outcomes. You can see true ROAS in real time, adjusted for returns, margins, and predicted lifetime value. When your Protect layer data feeds into your Acquire layer, you stop paying to acquire customers who will return everything, and start investing in customers who will stick around.

The Bigger Picture

ROAS is not just an advertising metric. It is a business health metric. When you measure it honestly, you make better decisions about where to invest, which products to promote, and which customers to pursue. The merchants who grow profitably are not the ones spending the most on ads. They are the ones who know exactly what each dollar of ad spend actually produces.

Stop optimizing for the number your ad platform wants to show you. Start optimizing for the number your bank account reflects.

See your funnel leaks

Start with the free audit. No credit card required.

Get started free