Webclat / Martech Practice
Webclat / Martech Practice  /  qa  /  attribution

How do I calculate conversions under a different attribution model (linear, last-non-direct) than the platform's default?

Answer in brief

Once you have the ordered channel-touch journey for each converting user, a linear model splits attribution credit evenly across every touch in that journey, while last-non-direct credits the full conversion to the last touch that is not classified as "Direct." Both are redistribution rules applied against exported journey data - not settings you flip in a standard UI report, which is why this usually requires exporting to a warehouse and computing the model there.

Why this happens

Most analytics platforms ship with one or two built-in attribution conventions baked into their standard UI reports, and switching to a genuinely different model - linear, time-decay, position-based, or a specific rule like last-non-direct-click - requires access to the underlying event or session sequence data, not a dropdown setting, because pre-aggregated reports do not expose enough granularity to recompute credit under a different rule after the fact.

This is the same underlying constraint as journey reconstruction: the raw data has to already contain the ordered touch sequence before any model, simple or complex, can be applied to it.

Fix it

  1. Build the ordered per-user channel-touch journey first - every attribution model downstream depends on having this correctly assembled.
  2. For a linear model: for each converting journey with N distinct channel touches, assign 1/N of the conversion, or conversion value, to each touch.
  3. For last-non-direct: walk the journey backward from the conversion event and assign full credit to the first channel touch encountered that is not classified as Direct traffic - if every touch in the journey is Direct, fall back to your platform's documented default behavior for that edge case.
  4. Aggregate the per-touch credit across all converting journeys, grouped by channel, to get total attributed conversions or value per channel under the chosen model.
  5. If you are working in a warehouse or analytics platform with built-in journey or funnel tooling, check whether it already has a configurable attribution model feature before hand-rolling the SQL.
  6. Document which model you used wherever the resulting numbers are reported - the same conversion count looks very different under first-touch versus linear versus last-non-direct, and a chart without a stated model is not a comparable number.

How to verify it worked

Sum the attributed value across all channels for your chosen model and confirm it equals total observed conversions or revenue for the period - like the Markov model, redistribution-based models should conserve the total, not create or lose conversions in the reallocation. Manually trace one specific multi-touch journey through your calculation by hand and confirm the per-channel split matches what the model's rule should produce for that exact sequence.

Still Seeing This After Trying the Fix?

Send us what you are seeing - the console error, the Network tab, the Live View output. We trace tracking implementations for a living and can usually tell you what is actually happening in one look.

Ask An Engineer