CRM-Reported Revenue vs Platform-Reported ROAS: How to Audit the Gap and Find Where Your Ad Budget Actually Goes
Why Your Dashboard Can Lie to You
If you run paid ads, you've probably had this experience: Google Ads says your campaign delivered a 4× ROAS last month. Meta says it drove 60 conversions. You check your CRM or booking software and count 21 actual paying customers.
That's not a rounding error. That's a structural measurement problem—and for local businesses spending real money on ads, the difference between 60 reported conversions and 21 real ones can mean tens of thousands of dollars pointed at the wrong campaigns.
Platform-reported numbers and CRM-confirmed revenue diverge for several compounding reasons: duplicate attribution windows, view-through credit, last-click vs data-driven models, and the simple fact that a 'conversion' on Google often means a form fill or phone call—not a signed contract or completed booking. This article gives you a concrete audit framework to measure that gap and act on it.
The Attribution Gap: What Platforms Are Actually Counting
Before running numbers, understand what each system is counting:
Platform (Google Ads / Meta):
- Counts a 'conversion' when a user completes a tracked action (form submit, call click, purchase pixel fire) within the attribution window—often 30–90 days for clicks, plus additional days for view-through on Meta.
- May count the same customer twice if they clicked a Google ad, then a Meta ad, before converting. Both platforms claim full credit.
- Counts intent signals, not closed revenue.
CRM / Booking System:
- Records leads that were actually contacted, qualified, and closed.
- Strips out duplicate inquiries, spam form fills, wrong-number calls, and no-shows.
- Ties revenue to a real invoice or booking confirmation.
The result: platforms are incentivized to show you the largest defensible conversion number. Your CRM is indifferent—it just records what happened. The gap between them is where budget misdirection lives.
Over-attribution is a documented industry concern. Google's own default 30-day click / 1-day view window, combined with Meta's default 7-day click / 1-day view, means a single customer journey that touches both platforms can inflate reported conversions by a factor of 2 or more—a rough estimate consistent with what multi-touch analytics tools surface when you compare de-duplicated path data against platform totals. Treat that as a directional benchmark, not a precise figure, until you run your own audit.
Step 1 — Pull the Reconciliation Table (A Labeled Model)
Start with a simple side-by-side table. Here's an illustrative reconciliation model using hypothetical but realistic numbers for a local home-services business spending $5,000/month on Google Ads + Meta combined:
| Metric | Platform-Reported | CRM-Confirmed | |---|---|---| | Total conversions | 84 | 31 | | Conversion rate (of clicks) | 8.4% | 3.1% | | Reported/confirmed revenue | $42,000 | $15,500 | | Implied ROAS | 8.4× | 3.1× | | Cost per acquisition | ~$60 | ~$161 |
(All figures above are illustrative. Build this table with your own account and CRM data.)
The column that matters for budget decisions is the CRM-confirmed column. A 3.1× ROAS on $5,000 in spend may still be profitable—but you cannot know that until you're looking at real revenue, not platform-optimistic conversions.
How to build your version: 1. Export last 30 days of conversions from Google Ads and Meta Ads Manager (by date, campaign, and conversion action). 2. Pull all leads/bookings from your CRM or scheduling tool for the same 30-day window, tagged by source if possible. 3. Match on date range and, where feasible, on individual contact records. 4. Count the confirmed closed jobs/sales only. Discard duplicates, spam, and unconverted leads. 5. Calculate your real CPA and real ROAS using actual revenue from those closed jobs.
Step 2 — Isolate the Bleed by Campaign
Once you have aggregate gap data, drill down by campaign to find where over-attribution is worst. This is where you reclaim budget.
Common patterns in local accounts:
- Brand keyword campaigns often show high platform conversion volume but also carry the most view-through and cross-device inflation—users who were already going to call you get double-counted.
- Broad match or Performance Max campaigns tend to generate volume at the top of the funnel. Platform attribution credits them for conversions that actually closed weeks later via a retargeting touch.
- Meta lead-gen forms (native in-platform forms) frequently produce lower-quality leads than landing-page forms because friction is removed—resulting in a large gap between Meta-reported 'leads' and CRM-confirmed qualified prospects.
For each campaign, calculate: CRM close rate = (CRM-confirmed closed / Platform-reported conversions). A campaign with a 60% close rate is healthy. One sitting at 12% is likely over-attributed or attracting unqualified traffic—and deserves either restructuring or reallocation.
This connects directly to a point we cover in Ad Account Structure: Consolidation vs Segmentation—how you structure campaigns determines how clearly you can isolate this signal. Consolidated structures make the reconciliation math easier; over-segmented accounts scatter the data.
Step 3 — Adjust Bidding and Budget to Reality
With your real CPA and real ROAS in hand, you can make defensible budget decisions:
Recalibrate your target CPA or ROAS bid strategy. If your platform CPA target was set at $60 (based on platform numbers) but your real CPA is $161, your Smart Bidding algorithm is optimizing toward a phantom number. Reset targets to reflect CRM-confirmed economics.
Reallocate away from high-volume, low-close campaigns. Budget that's flowing to campaigns with sub-20% CRM close rates is subsidizing platform metrics, not business growth. Even shifting 20–30% of that spend toward higher-intent, higher-close campaigns can move real ROAS meaningfully—without increasing total spend.
Smooth budget around lead quality, not just lead volume. We explored this in Seasonal Budget Smoothing vs Burst Spend: Local CAC—the timing and pacing of spend affects not just volume but the quality mix of who responds. Chasing volume with burst spend often widens the CRM gap.
Fix the lead response process in parallel. A portion of your CRM gap may not be attribution fraud—it may be lost leads due to slow follow-up. We covered the data on this in Lead Response Time: How Slow Callbacks Kill Your Ad ROI. If leads are going cold before your team calls them, the CRM will under-report even genuinely good campaigns.
The Honest Math: What a 2× Attribution Gap Costs You
Here's a labeled estimate to make the stakes concrete. Assume:
- Monthly ad spend: $6,000
- Platform-reported ROAS: 5×, implying $30,000 in revenue
- Actual CRM-confirmed revenue: $16,000 (roughly a 2× platform over-attribution, which is consistent with the directional range noted above)
- Real ROAS: ~2.7×
At 2.7× ROAS on $6,000 spend, you're generating $16,000—potentially profitable depending on your margins, but not the story your dashboard is telling you. More importantly, if you scale spend to $12,000 based on the 5× platform number, you're likely scaling the inefficiency too—not the revenue.
Running this reconciliation monthly, not quarterly, is the difference between compounding real growth and compounding a measurement mistake.
Run the Audit, Then Make Decisions With Real Numbers
The framework is straightforward: 1. Pull — Export platform conversions and CRM-confirmed revenue for the same period. 2. Reconcile — Build the side-by-side table. Calculate your real CPA and real ROAS. 3. Isolate — Find which campaigns have the worst CRM close rate. 4. Adjust — Recalibrate bid targets, reallocate budget, and fix downstream lead-handling gaps. 5. Repeat monthly — Attribution drift is ongoing, not a one-time audit.
This is the kind of work that turns a marketing budget from a cost center into a measurable growth engine. If you'd like a second set of eyes on your reconciliation—or help building the tracking infrastructure that makes this automatic—[book a call with Nika Spark](https://nikaspark.com/contact). We'll run the audit with you and show you exactly where the gap is in your account.
Sources
- 1.Google Ads Help (official documentation) — Default attribution windows: 30-day click, 1-day view for most conversion actions — used to explain platform over-attribution mechanics link
- 2.Meta Business Help Center (official documentation) — Default attribution setting: 7-day click, 1-day view — used to explain cross-platform duplicate attribution risk link