Skip to content

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.