Agency benchmark data from Involve Digital puts the gap between platform-reported ROAS and actual ROAS at 30%–60% for multi-channel accounts. That range is wide enough to change a budget decision. But the reflex most teams have next is worse than the gap itself: they pull the number from their CRM, get something lower, and call that one true.

It isn't. The CRM is answering a narrower question than you think you asked.

Two thermometers, both broken

Platform ROAS is an attribution metric. Google, Meta, LinkedIn, TikTok: each one grades its own homework. View-through conversions, modeled conversions where consent was never granted, 28-day click windows that credit a tap from three weeks ago. All of it flows into the number, and all of it points up.

Your backend does the opposite. Most CRM or ecommerce revenue reporting runs last-click or something close to it. The order gets stamped to whatever the buyer touched last (often a brand search or direct visit), and the paid click that opened the journey three weeks earlier gets zero credit. The 5x-to-2x gap is mostly the size of that disagreement, not evidence of fraud.

Averaging them doesn't give you the answer. It gives you a number that belongs to neither instrument.

The backend can't see the ads nobody clicks

The under-crediting scales with distance from the click. Impression-based formats (social, display, video, CTV) work by influence. Someone scrolls past your ad, doesn't click, searches your brand three days later, and converts. Your CRM credits that last clickable touch. The impression that created the demand gets nothing.

To your CRM, a Meta campaign that drove a week of branded search looks like it did nothing at all. Not undervalued. Invisible. Privacy-driven signal loss made this worse: iOS ATT and cookie deprecation thinned out even the social clicks that do happen, reducing match-back rates to the purchase.

Search sits closer to the purchase, so a last-click backend captures a fairer share of what search actually did. The gap is narrower, but that doesn't make search attribution correct. If you're cutting impression-based spend because the CRM says it "doesn't convert," you may be switching off the demand generation that feeds every clickable touch downstream.

When two platforms claim the same sale

Run Google and Meta together. Pull each platform's reported conversion revenue for the same period. Add them up. Compare to what your backend says you actually made. For most accounts at scale, the sum exceeds actual revenue.

A buyer sees a Meta ad, searches your brand later, clicks a Google ad, buys. Google logs the conversion. Meta logs it on a view-through. Neither can see the other. You paid once, sold once, and two dashboards recorded the revenue. Add a third channel and the double-counting compounds.

Reconciliation produces a third wrong number

The standard fix is to blend sources or move to data-driven attribution. DDA still comes from the same platform whose top-line number you already learned not to trust. It reallocates credit among paid touches, but it can't show you the conversions that would have happened without ads. It reconciles. It doesn't measure.

For B2B SaaS specifically, the measurement architecture that reduces this gap has three layers. First: connect ad platforms to CRM stages. Upload offline conversions (MQL→SQL→Opportunity→Closed-Won) back into Google and LinkedIn so bidding optimizes to qualified pipeline, not raw leads. Second: reconcile platform-attributed revenue against net revenue in your finance system (after refunds, credits, taxes), so Marketing and Finance agree on the denominator. Third: separate branded from non-branded campaigns, because existing demand inflates ROAS for prospecting activity.

Those three steps don't give you truth. They give you a tighter range of plausible values.

The only honest number comes from turning something off

Incrementality testing (geo holdouts, conversion-lift tests) estimates what would have happened without ads. That's the only question that tells you whether your spend caused revenue or just claimed it.

The hypothesis, stated so it's falsifiable: if we pause paid social in two matched geos for four weeks, then branded search volume and CRM pipeline in those geos will decline by a measurable amount, because paid social is generating demand that branded search is capturing. If branded search holds steady, paid social was capturing credit, not creating demand.

The trade-off: incrementality tests can reduce short-term performance during the test window. Start with backend reconciliation and offline conversion uploads. Run a selective holdout once you trust the plumbing. Read lift against qualified pipeline stages, not form fills.

Platform ROAS is still useful as a tactical signal for creative and campaign comparisons within a channel. The problem is using it as the sole budget-allocation KPI. The commonly cited 20%–60% gap between platform-reported and incremental ROAS (per industry benchmarks from Involve Digital and Bigeye) should make any growth leader uncomfortable with a single-source answer.

The number that settles the argument doesn't live in any dashboard. It lives in the gap between what happened with ads and what would have happened without them. Everything else is two broken thermometers arguing about the patient's temperature.