The gap
Your Google Ads dashboard says you did 4.2x ROAS last quarter. Your CFO's report says the marketing team contributed 2.8x. One of them is wrong, and if you cannot explain the gap, neither number is defensible in a board meeting.
We run an attribution rebuild on every new engagement. Five causes account for almost all the divergence between reported ROAS and P&L reality.
Cause 1: Client-side event loss
Safari Intelligent Tracking Prevention and iOS 14+ App Tracking Transparency eat between 20% and 60% of client-side conversion events depending on your audience mix. Meta and Google never saw them happen, so the conversion never gets attributed.
Fix: server-side Google Tag Manager with Conversions API routing. Recovers most of the lost signal. Typically 30-50% lift in reported conversions from the same actual conversion volume.
Cause 2: Offline conversions never upload
For home-service and B2B, the ad platforms never see the closed-won. A form fill is not a closed job. The algorithm optimizes toward the form fill instead of toward the revenue.
Fix: offline conversion uploads from the CRM to Google Ads and Meta CAPI. The platforms learn from closed-won revenue. CAC improves meaningfully within 90 days as the algorithm gets smarter.
Cause 3: Attribution window mismatch
Your paid report shows a 30-day attribution window. Your P&L reconciles based on close date, which for a home-service operator can be 7-30 days after the lead came in, and for B2B can be 90+ days. Same conversion, different windows.
Fix: align windows with your actual sales cycle. Use data-driven attribution where available. Document the window assumption and apply it consistently.
Cause 4: Organic revenue leaking into paid
Branded search paid clicks often convert customers who would have found you anyway. The ad account takes credit for the conversion. The true incremental lift is lower.
Fix: budget branded search as a competitive moat line item. Measure incremental lift via geo-holdout tests quarterly.
Cause 5: Refunds and returns
Ecommerce ROAS is usually reported on gross revenue. Returns can run 8-25% depending on category. Net revenue is what actually hits the P&L.
Fix: report net ROAS in all dashboards. Close the loop from refund events back to the ad platforms. Algorithm stops optimizing toward returning customers over time.
The cost of not fixing it
Every quarter the two numbers disagree is a quarter where the board meeting starts with a 20-minute reconciliation instead of a strategy conversation. Fix the measurement foundation and both numbers agree within a reasonable tolerance. Time saved in board meetings. Better decisions downstream.