ServicesAboutNotesContact Get in touch →
EN FR
Note

Attribution Model Disagreement as Signal

Why running multiple attribution models in parallel reveals more than any single model, and how to use the disagreement between them to communicate uncertainty and drive better decisions

Planted
ga4analyticsdata modeling

Every attribution model has a built-in bias. First-touch over-credits discovery channels like organic search and content marketing. Last-touch over-credits conversion channels like branded search and retargeting. Linear treats a random display impression the same as a demo request email. Position-based assumes the first and last touches are always the most important. Time-decay assumes recency always matters most.

Relying on a single model embeds its blind spots into budget decisions: channels that the model systematically under-credits get defunded regardless of actual contribution. Running multiple attribution models in parallel makes those biases visible rather than hiding them inside a single number.

Disagreement is the insight

When first-touch says organic search drives 40% of revenue and last-touch says it drives 8%, you know the true number is somewhere in between. The disagreement itself is informative: it tells you that organic search plays a role in customer journeys, but its exact contribution is uncertain. That uncertainty is real. Pretending it doesn’t exist by picking one model is worse than acknowledging it.

When models agree, you have high confidence in the insight. “Paid search drives 25-28% of revenue across all models” is a strong statement. You can make budget decisions based on that range with reasonable confidence.

When models disagree sharply, flag it for stakeholders. “Organic social drives between 5% and 22% of revenue depending on the model” tells leadership that this channel’s contribution is genuinely uncertain. That kind of honesty about the limits of the data is more valuable than false precision from a single model.

Quantifying disagreement

Calculate a disagreement score for each channel: the standard deviation of attributed revenue percentages across models. Channels with high disagreement are candidates for deeper investigation.

WITH model_shares AS (
SELECT
model_type,
touchpoint__channel,
SUM(touchpoint__attributed_revenue) AS channel_revenue,
SUM(SUM(touchpoint__attributed_revenue)) OVER (
PARTITION BY model_type
) AS total_revenue
FROM {{ ref('mrt__attribution__comparison') }}
GROUP BY model_type, touchpoint__channel
),
channel_percentages AS (
SELECT
touchpoint__channel,
model_type,
SAFE_DIVIDE(channel_revenue, total_revenue) * 100 AS revenue_pct
FROM model_shares
)
SELECT
touchpoint__channel,
MIN(revenue_pct) AS min_pct,
MAX(revenue_pct) AS max_pct,
AVG(revenue_pct) AS avg_pct,
STDDEV(revenue_pct) AS disagreement_score
FROM channel_percentages
GROUP BY touchpoint__channel
ORDER BY disagreement_score DESC

The channels at the top of this list — the ones with the widest spread — are where your attribution is most uncertain. These are the candidates for incrementality testing to find ground truth.

Channels at the bottom, where all models agree, are where you can confidently communicate performance and allocate budget.

Strategy alignment across teams

Multi-model attribution enables different teams to optimize for different objectives without contradiction.

Awareness-focused teams (content, brand, PR) can use first-touch to measure their contribution to customer acquisition. First-touch rewards discovery, which is exactly what these teams should be optimizing for.

Conversion-focused teams (performance marketing, retargeting, email) can use last-touch to measure their closing efficiency. Last-touch rewards the final conversion event, which aligns with their mandate.

Leadership looks at the range across models to understand the full picture. When a CMO asks “how much does content marketing contribute?”, the answer is “between 8% and 40% depending on the model, with a mid-range estimate around 22%.” That range communicates both the contribution and the uncertainty, enabling informed rather than precise-but-wrong decisions.

This isn’t model shopping — picking whichever model tells each team the story they want to hear. It’s using each model’s intentional bias to illuminate the question that model was designed to answer: first-touch for “who fills the funnel?”, last-touch for “who closes?”, linear for “what does balanced credit look like?”

Communicating results to stakeholders

Lead with outcomes, not methodology. “Content marketing influences 47% of our conversions” lands better than “Our Markov chain attribution model with 30-day lookback windows shows…” Save the methodology for the appendix.

Present ranges, not false precision. “Paid search drives $50K-$80K monthly depending on the attribution model” is more honest than picking one number. The range communicates confidence level without requiring a statistics lesson. If the range is tight, it signals high confidence. If it’s wide, it signals genuine uncertainty — and that’s valuable information.

Highlight agreement and disagreement explicitly. Structure your insights around these two categories:

  • “All models agree that email is our most efficient channel. Confidence: high.”
  • “Models disagree on display’s contribution (5-22%). Recommendation: run an incrementality test before changing display spend.”

Structure recommendations as Challenge-Insight-Recommendation-Outcome. This framework forces you to connect the data to a decision:

  • Challenge: We need to decide whether to increase display spend.
  • Insight: Attribution models disagree on display’s contribution (5-22% of revenue).
  • Recommendation: Run a 4-week holdout test in 3 markets before scaling.
  • Outcome: If incremental lift exceeds 10%, increase display budget by 20%.

Warning signs your attribution is failing

These patterns indicate that model disagreement reflects data quality problems rather than genuine measurement uncertainty:

Attributed revenue doesn’t match actual revenue. If your models attribute $100K to marketing but finance sees $80K in the bank, something is wrong. Check your conversion tracking, how you’re joining touchpoints to conversions, and your definition of “conversion.” A revenue integrity test should catch this before it reaches stakeholders.

Margin erosion despite high ROAS. If a channel shows strong return on ad spend but scaling it doesn’t grow profits proportionally, the attribution is likely over-crediting the channel. The channel may be capturing demand that would have converted anyway, not creating new demand.

Untraceable deals. In B2B, if more than 60% of closed deals can’t be attributed to any marketing activity, your tracking is incomplete. Either touchpoints aren’t being captured or your identity resolution isn’t connecting anonymous sessions to known users. Fix the tracking before investing further in model sophistication.

All models agree but the answer seems wrong. If every model says a channel is worthless but your instinct (or customer feedback) says otherwise, the models may be missing touchpoints entirely. Dark social, word-of-mouth, and podcast mentions don’t generate trackable clicks. The absence of data isn’t the absence of impact.

When a single model is enough

Not every organization needs multi-model attribution. A single model may suffice when:

  • Your conversion paths are short (1-2 touchpoints), making model choice less consequential
  • You’re in an early stage where directional insight matters more than precision
  • Your analytics capacity is limited and the comparison layer adds complexity your team can’t maintain

For organizations making large budget allocation decisions based on attribution data, the disagreement between models is material information. Running multiple models requires one additional comparison model in the dbt project.