Most marketing attribution reporting doesn't prove anything because it measures platform-claimed credit, not money in the bank. Ad platforms grade their own work, tracking windows expire before slow deals close, and modeled attribution reports estimates as fact. Reporting proves something only when every number reconciles to closed revenue in your CRM.

What is marketing attribution reporting actually measuring?

It measures which touchpoint a given system is willing to take credit for — not which touchpoint caused the sale. Every ad platform, analytics tool, and CRM applies its own rules about who gets counted, over what window, using whose data. Change the rules, change the report. Nothing about the revenue changed.

That's the whole problem in one line. Three different systems will hand you three different answers about the same month, and all three will be internally consistent. None of them is lying. They're answering different questions, and none of the questions is the one you asked: did this spend produce money?

Why do the platform dashboards add up to more conversions than you had sales?

Because each platform counts every conversion it believes it influenced, and they don't compare notes. A buyer who saw a Meta ad, searched your brand on Google, and clicked a retargeting ad can appear as three conversions across three dashboards and one deal in your CRM.

Run the check yourself, this week. Open your ad accounts, add up the platform-reported conversions for last month, then pull closed-won deals from your CRM for the same period. If the first number is larger than the second — and it usually is — you have a reporting system that inflates by design.

The defaults make it worse. Meta counts a conversion on a 7-day click and 1-day view window by default; Google Ads counts on its own window with its own model. Two platforms, two ledgers, one sale, double credit. Nobody is cheating. The architecture simply has no mechanism for one platform to concede a sale to another.

Why does the tracking window expire before the deal closes?

Because browser privacy limits kill the identifier long before a considered B2B or high-ticket purchase completes. Safari's Intelligent Tracking Prevention caps script-writable cookies at seven days, and Safari blocks third-party cookies outright under WebKit's tracking prevention policy.

Now compare that to the reality of an owner-led sale. Google Analytics 4 lets you set attribution lookback windows of 30, 60, or 90 days — because real buying cycles run that long. So the tool is configured to look back 90 days at evidence that stopped existing on day eight.

What happens to those sales? They don't disappear from the P&L. They reappear in the report as direct traffic, unassigned, or organic — the bucket where attributed revenue goes to die. Then someone cuts the paid budget that was actually generating the pipeline, because the dashboard said it wasn't working.

What does "data-driven attribution" actually mean?

It means a machine-learning model distributing credit across touchpoints based on observed conversion patterns. Google's own documentation is explicit that data-driven attribution is modeled, not observed. It's a well-built estimate. It is not a receipt.

There's nothing wrong with modeling. There is something wrong with presenting a model's output to the person who signs the cheques as though it were a bank statement. The model can't see your offline close, your sales team's follow-up, the referral that came from a customer you acquired through paid, or the deal that closed because someone finally called the lead back.

What the dashboard reports What it actually proves
47 conversions from paid social 47 events fired inside the tracking window
Cost per lead: $38 Cost per tracked form fill
Data-driven attribution: 34% paid search A model's allocation of credit it cannot observe
Direct/unassigned: 41% Identity was lost before the sale
ROAS 4.2x Platform-claimed revenue, not reconciled revenue

How do you know if your reporting proves anything?

Apply four questions to your last monthly report. If any answer is no, the report is describing activity, not proving revenue.

  1. Does every number tie to a dollar in the CRM? Not a lead, not an MQL — a closed deal with an amount on it.
  2. Do the totals reconcile? Platform-claimed conversions should be reconciled against actual deals, with double-counting removed.
  3. Can you trace a single named customer end to end? Source, first touch, every follow-up, close date, contract value. If you can't do it for one customer, you can't do it for a hundred.
  4. Does the report say what to stop? Reporting that only ever justifies continuing is marketing for the marketing.

Most reporting fails on question one, and the rest never get asked.

What does reporting that proves something look like?

It's built backward from money. You start at closed revenue in the CRM and work upstream — deal, opportunity, contact, source — instead of starting at impressions and hoping the chain reaches revenue at the far end. The CRM becomes the system of record; the ad platforms become inputs to be reconciled against it, not authorities to be believed.

Three things change when you do this:

Offline conversions go back into the platforms. When a deal closes in the CRM, that outcome — with its real dollar value — gets sent back to the ad platforms. The optimization algorithms then bid toward revenue instead of toward form fills. This is also the only honest way to use modeled attribution: feed the model real outcomes and its estimates get closer to true.

Lead source is captured at the point of entry and never overwritten. Source, medium, campaign, and first-touch date get stamped onto the contact record when they arrive and persist through the entire lifecycle — because the browser cookie won't survive the sales cycle, but the CRM record will.

The report is one page and denominated in revenue. Spend, pipeline created, deals closed, revenue, and cost per acquired customer — reconciled, deduplicated, and comparable month over month.

This is also why measurement and follow-up can't be separated. Reporting that shows a channel underperforming when the real failure is a lead nobody called back sends you to fix the wrong thing. Before you judge any source, audit your follow-up process — and check what's already sitting unworked in your database, because reactivating old leads usually beats buying new ones.

What we do when we take over an account

The first thing we build is the reconciliation, before touching spend. We pull platform-reported conversions and CRM closed-won for the same period and put them side by side. The gap between those two numbers is the first honest thing most owners have seen about their marketing.

Then we trace one real customer end to end — a named account, from first touch to signed contract — and instrument whatever broke along the way: source capture that doesn't persist, offline conversions that were never sent back, follow-up that has no timestamp. Only after the ledger holds do we make a spend decision, because a budget change made on unreconciled data is a guess with a spreadsheet attached.

"They know exactly how to connect marketing execution to real business outcomes." — Riggs Eckleberry, Chairman, OriginClear

That connection is the entire job. Execution that can't be tied to an outcome isn't measurable, and anything unmeasurable is a gamble regardless of how good the deck looks.

What should you ask your agency this month?

Ask for one number: revenue from marketing last month, reconciled to the CRM, with the double-counting removed. Not leads. Not ROAS. Not impressions. If that number takes more than a day to produce, or arrives with caveats about how attribution is complicated, the system doesn't exist yet.

Attribution is complicated. That's an argument for building the reconciliation properly — not an excuse for reporting numbers nobody can defend.


Avi Vatsa is CEO of Exchange Four Agency, where he leads the team that installs and runs AI-leveraged revenue systems for owner-led companies. His background spans law, technology, and marketing; he also co-founded Dialora, an AI voice-agent platform for automated lead capture and booking. Connect on LinkedIn.