Attribution
Most reporting arguments are measurement bugs wearing a suit. Before anyone can decide whether a channel works, the numbers have to agree — and that is a build job, not a meeting.
The usual symptom
Three dashboards disagree and each team defends its own. The MMP says one thing, GA4 another, the finance sheet a third, and the difference gets split by seniority rather than evidence. Nobody trusts the reporting enough to act on it quickly, so decisions slow down.
How I fix it
I map every event from SDK to warehouse: what fires, when, carrying which identifiers, and what happens to it on the way. Then I break things on purpose in a staging build — strip a parameter, delay an event, block a network call — to find what fails silently. Silent failure is what erodes trust, because nothing looks wrong until a quarter of data is already unusable.
MMP migrations are done with history preserved and a parallel-run window, so nobody loses their basis for comparison halfway through a year.
What you end up with
- One documented source of truth, with the definitions written down
- UTM conventions that survive contact with a busy team
- Event QA that runs before spend scales behind it
- An honest list of the gaps that are structural and will not close
Naming the numbers that cannot be reconciled is part of the deliverable. A measurement plan that pretends everything ties out fails quietly, later, in front of someone senior.