Your attribution data does not match your revenue because it was never built to. Platform dashboards and last click models answer "which touch was nearest the conversion," which is a different question from "what would have happened if we had not spent this money," and no model can answer the second one from the data you already have. The fix is not a better model. It is a small set of methods: one holdout test, one self-reported source field on your forms, and closed revenue in your CRM as the only scoreboard that counts.
Why your dashboards add up to more conversions than you actually closed
Every ad platform scores its own work inside its own window. A click or a view inside that window gets credited, whether or not another platform is claiming the same deal in its own dashboard. View through credit means a conversion can be attributed to an impression nobody consciously saw. Modeled conversions fill in paths that privacy controls broke, which means part of your reported number is an estimate, not an observation. And no platform is penalised for claiming a conversion that a different platform also claimed. There is no referee.
Add four of those dashboards together and the sum exceeds what your CRM actually closed. That is the expected output of the system, not a sign anything is broken.
The second structural problem is that a growing share of the real buying journey is invisible to all of it. A Slack group, a WhatsApp thread, a call with a former colleague. None of that produces a UTM. A model that only sees trackable touches will hand the credit to whatever trackable thing happened last, usually branded search or a retargeting ad, because that is what people do right before they buy.
The three questions attribution can answer, and the three it cannot
Attribution is a good diagnostic. Treat it as one.
It can honestly tell you:
- Which pages and assets high intent visitors touch before they convert. Useful for content and offer decisions.
- Whether a specific campaign is reaching anyone at all. Volume, reach and engagement are observed, not inferred.
- Where friction sits in the path from first visit to form fill to meeting booked.
It cannot tell you:
- Incrementality. Would this revenue have arrived anyway? The counterfactual is not in your data. No weighting scheme invents it.
- Demand creation. The podcast, the conference talk, the founder post that put you on the shortlist nine months ago does not appear in a conversion path.
- Dark social. Peer conversations in private channels carry real influence and produce no tracking layer at all.
Every attribution model explainer you have read, first touch, last touch, U shaped, W shaped, is rearranging credit among the trackable touches. None of them changes which questions the data can answer.
What to run instead: one holdout, one field, one scoreboard
Three moves. Do them in this order.
1. One holdout test on your largest line item. Turn a channel off, or hold it out of a defined geography or audience, for long enough to clear your sales cycle, and compare total closed revenue in and out of the holdout. This is the only method that produces a counterfactual, because you built one.
The branded search line is the one to sit with. A line item can look spectacular on platform ROAS and mostly be buying revenue you already had, which a holdout will show you and a dashboard never will.
2. One self reported source field on your forms. One optional question, picklist plus a free text option, asking how they first heard about you. Not three fields. Every field you add costs you conversion rate, so spend the budget on the one question that tells you something a UTM cannot. One field, optional, carried onto the contact record so it sits next to the deal forever.
Self reported source is a method, not a workaround. It has a known weakness: in regulated and long cycle categories, accuracy drops because the person filling in the form is often not the decision maker. And people report the last memorable moment, not the full path. Both are survivable. An imperfect answer about the podcast beats a confident lie about branded search.
3. CRM closed revenue as the scoreboard. Not leads. Not MQLs. Pipeline sourced and pipeline influenced revenue, judged in the system where deals actually close. The disputes that blow up board meetings are almost never about math. They are about crediting rules and stage definitions. Write those down before you present, not after someone challenges a number.
The credibility signal is agreement, not precision. Your model output, one incrementality test, and one periodic modeled read on your largest channels pointing the same direction is worth more than any single number carried to two decimal places.
The channel that looks terrible on cost per lead and carries your win rate
This is where judging on leads destroys value fastest.
A source that produces eleven leads a quarter at four times your average cost per lead looks like an obvious cut. Then you check closed revenue and those eleven leads carry twice the average contract value and a win rate nobody else comes close to. Cut it and you have optimised your cost per lead and shrunk your revenue.
The reverse is just as common. A cheap source fills the top of the funnel, flatters every efficiency metric on the dashboard, and converts to opportunity at a rate that never justified the sales time it consumed.
So the rule is simple. Cheap leads that do not become opportunities are not a winning channel. A low volume source with unusually high contract value and win rate is not a losing one. You can only see either if cost data and closed revenue live in the same view, which is exactly the thing a fragmented stack prevents.
What to put in the board deck
Do not present a single attributed number you cannot defend. Present this instead:
- Closed revenue by self reported source, with the response rate stated. Honest, directionally useful, and nobody can accuse you of modeling your way to a flattering answer.
- The holdout result, with the dates, the geography or audience held out, and the plain conclusion: holding this out cost us X in closed revenue, or it cost us nothing.
- An explicit unattributed bucket. Say what percentage of closed revenue you cannot assign and what you are doing about it. Naming the uncertainty is what makes the rest of the deck credible. Pretending it is zero is what gets your numbers challenged.
- One decision per channel: scale, hold, test, or stop, with the evidence attached to each.
Boards do not punish uncertainty that is quantified and managed. They punish precision that turns out to be fictional.
The system this actually requires
All three moves need the same thing: cost, website and company activity, lead scoring, form answers, deals and closed revenue sitting in one place rather than five, so the diagnostics and the scoreboard do not have to be reconciled by hand every quarter.
That is what Payani AI is built to be. Reporting that fuses GA4 with your CRM, revenue reporting through Stripe, self reported source captured in your forms and carried onto the contact record, visitor and company tracking for the accounts that never fill anything in, and an advisor across every screen that will tell you when a channel is buying revenue you already had.
Frequently asked questions
Why do my ad platforms report more conversions than my CRM shows closed deals?
Because each platform scores its own work inside its own attribution window, counts view through credit, fills gaps with modeled conversions, and is never penalised for claiming a deal another platform also claims. There is no referee reconciling them. Adding several dashboards together producing a number larger than your CRM reality is the expected output of the system, not a fault in your setup.
Will switching to a multi touch model fix the problem?
No. Every attribution model, first touch, last touch, U shaped or W shaped, is rearranging credit among the touches it can see. None of them creates a counterfactual, so none of them can tell you whether the revenue would have arrived without the spend. That requires a method change, specifically a holdout test, not a model change.
How big is the gap between platform reported ROAS and real incrementality?
Stella's analysis of 225 geo based incrementality tests run between August 2024 and December 2025 found a median incremental ROAS of 2.31x, with 16.9 percent of tests below breakeven, and reports that the gap between platform reported and true incremental ROAS often reaches two to three times. Branded search came in at a median 0.70x. That dataset is DTC ecommerce rather than B2B, so treat it as the shape of the error rather than your own benchmark.
Is self reported source on forms reliable enough to use?
It is reliable enough to be directionally useful and is now a documented method for dark funnel correction. It has two known weaknesses: people report the last memorable moment rather than the full path, and in regulated or long cycle categories accuracy drops because the person filling in the form is often not the decision maker. Keep it to one optional field, since added form fields that cut conversion rate by more than about 15 percent tend to stall adoption.
How do I defend a channel with a terrible cost per lead?
Judge it on closed revenue, contract value and win rate instead of lead volume. A low volume source carrying unusually high contract value and win rate is not a losing channel, and a cheap source that never converts to opportunity is not a winning one. You can only see the difference when cost data and closed revenue sit in the same view.
Newsletter
Get growth intelligence in your inbox.
Sharp notes on AI-native marketing and what actually moves revenue. No fluff, unsubscribe anytime.



