Meta will tell you your ROAS. So will Google. The number looks clean. The problem is it's only counting what happened inside their walled garden. The moment someone clicks through to your site, the real cost of the funnel — landing page, checkout, failed payments, support — doesn't show up in that ROAS. So you scale what looks profitable and wonder why margin doesn't improve.
What platform ROAS actually measures
In the ad manager you're seeing: (revenue attributed to that campaign) ÷ (ad spend). Attribution is usually last-click or a 7-day window. So if someone clicks your ad, bounces, comes back three days later via Google and buys, Meta might still claim the sale. Or the opposite: they click, add to cart, and convert a week later. Meta might not claim it. Either way, the denominator is only ad spend. Creative, landing page build, tools, and the cost of everyone who didn't convert never enter the equation.
What true funnel ROAS should include
We use a simple definition: total revenue from that traffic source over a period, divided by total cost to acquire and convert that traffic. Cost means ad spend plus a fair share of landing page dev, testing, and any other channel-specific overhead. You don't have to get forensic — even a rough allocation (e.g. 10% of CRO and dev time to "paid social") gets you closer than the platform number.
Then there's the conversion side. If 80% of your Meta traffic lands on a page that converts at 1.2% and your best page converts at 3.5%, you're burning budget on the wrong experience. True ROAS has to reflect the real conversion rate of the journey you're sending people into, not just the click.
How we build the model
We pull revenue by source (UTM or first-touch where possible) for a 30–90 day window. We sum ad spend for the same period. We add a slice of fixed costs. Then we divide. That's true ROAS. When we've run this for clients, the platform number is often 1.5–2.5x higher than the true number. One SaaS brand was "running at 3.2x" in Meta; true funnel ROAS was 1.4x. They were scaling into a leaky bucket.
What to do with it
Use true ROAS for go/no-go and scaling decisions. Use platform ROAS for creative and audience tests — it's still useful for relative comparison. But don't let the platform tell you whether the channel is profitable. Build the funnel view once, update it monthly, and optimise against that. Your margin will thank you.