Why this matters
Marketing decisions improve when credit is fairly shared across all touchpoints that influenced a conversion. Multi-touch attribution (MTA) helps you:
- Optimize budgets across channels (e.g., how much to shift from Paid Social to Paid Search).
- Identify assisting channels that rarely get last-click credit (e.g., Email nurturing, Content).
- Design better journeys (e.g., which touchpoints to add or remove).
- Report outcomes clearly to stakeholders with defensible rules.
Concept explained simply
Single-touch models give all credit to only one touchpoint. Multi-touch attribution shares one conversion’s credit across several touchpoints on the path.
Mental model
Imagine a pie (the conversion) sliced among teammates (touchpoints). Different rules decide slice sizes:
- Linear: everyone shares evenly.
- Time-decay: players closer to the goal get bigger slices.
- Position-based (U-shaped): first and last get big slices, middle gets a small split.
- Data-driven/algorithmic: credit based on each touchpoint’s marginal contribution (advanced; out of scope for basics).
Key terms
- Touchpoint: Any interaction before conversion (ad click, email open, site visit).
- Path: Ordered list of touchpoints for one converting user/session.
- Lookback window: How far back in time touches are considered (e.g., 30 days).
- Deduplication: Remove repeated identical events when needed (or keep if meaningful).
- Attribution rule: The method for splitting credit across touches.
How to do Multi-Touch Attribution (step-by-step)
- Define the goal: What counts as a conversion? Purchase, signup, demo, or lead status.
- Choose a lookback window: Commonly 30 days for B2C, 60–90 days for longer B2B cycles.
- Assemble paths: For each conversion, list time-stamped touchpoints in order.
- Clean the data: Ensure consistent channel naming, remove impossible duplicates, keep sequence integrity.
- Select a model: Start with Linear, Time-decay (50% per step back is a simple default), or Position-based (U-shaped).
- Allocate credit per conversion: Apply the rule to split 1.0 credit across its touches.
- Aggregate: Sum credits by channel, campaign, creative, or any dimension you need.
- Compare and act: Contrast model outputs to decide budget shifts or journey changes.
Worked examples
Example 1 — Linear model
Path: Paid Social → Email → Direct → Conversion
Linear splits equally across 3 touches: each gets 1/3 ≈ 0.333.
Paid Social: 0.333 Email: 0.333 Direct: 0.333
Example 2 — Time-decay (50% per step back)
Weights by position from last touch: last = 1, previous = 0.5, previous = 0.25, etc. Normalize per path.
Path: Organic → Paid Search → Paid Search (Brand) → Conversion
Raw weights: Brand=1, Paid Search=0.5, Organic=0.25 (sum=1.75) Normalized: - Brand: 1/1.75 ≈ 0.571 - Paid Search: 0.5/1.75 ≈ 0.286 - Organic: 0.25/1.75 ≈ 0.143
Example 3 — Position-based (U-shaped)
Rule: 40% to first, 40% to last, remaining 20% split equally among middle touches. If only two touches exist, split 50/50.
Path: Content → Retargeting → Email → Conversion
First (Content): 0.40 Middle (Retargeting): 0.20 (only one middle touch) Last (Email): 0.40
Common mistakes and self-check
- Mixing models with no explanation: Always state which model and why.
- Ignoring data quality: Mis-tagged channels can swing results. Self-check: spot unusual spikes in one channel after cleaning.
- Forgetting lookback window: Too short under-credits early touches; too long adds noise. Self-check: sensitivity-test 30 vs 60 days.
- Comparing MTA to last-click KPIs directly: Reconcile totals, not per-channel shares.
- Assuming causality: MTA is descriptive. For causal impact, test with experiments.
Exercises
Do this before scrolling to the solution. Then compare your work.
Exercise 1 — Allocate credit across channels
Use three models on the same dataset.
Dataset and rules
- Conversions and paths:
- Conv 1: Paid Social → Email → Direct → Purchase
- Conv 2: Organic → Paid Search → Paid Search (Brand) → Purchase
- Conv 3: Referral → Email → Purchase
- Models to apply:
- Linear: split equally across all touches
- Position-based (U-shaped): 40% first, 40% last, 20% split across middle touches; if only 2 touches, use 50/50
- Time-decay: 50% weight drop per step away from the last touch (last=1, previous=0.5, previous=0.25, etc.), then normalize
Your task: compute total credit per channel for each model. Round to 3 decimals.
- Deliverable: channel totals for Linear, Position-based, and Time-decay.
- Tip: verify each model sums to 3.000 across channels (minor rounding differences ok).
Show solution
Linear totals
Paid Social: 0.333 Email: 0.833 Direct: 0.333 Organic: 0.333 Paid Search: 0.333 Paid Search (Brand): 0.333 Referral: 0.500
Position-based (U-shaped) totals
Paid Social: 0.400 Email: 0.700 Direct: 0.400 Organic: 0.400 Paid Search: 0.200 Paid Search (Brand): 0.400 Referral: 0.500
Time-decay (50% step) totals
Paid Social: 0.143 Email: 0.952 Direct: 0.571 Organic: 0.143 Paid Search: 0.286 Paid Search (Brand): 0.571 Referral: 0.333
Note: sums may be off by 0.001–0.002 due to rounding.
Self-check checklist
- Did every conversion distribute exactly 1.0 credit?
- Do model totals across channels ≈ number of conversions (3)?
- Are the same channels higher under different models for sensible reasons (e.g., Direct higher in time-decay)?
Practical projects
- Build a spreadsheet MTA calculator with three tabs (Linear, Time-decay, Position-based). Paste any user paths and see credits update.
- Channel sensitivity test: rerun U-shaped as 30/40/30 and compare budget implications.
- Journey redesign: pick one funnel, remove one touchpoint virtually, and explain expected impact under each model.
Who this is for
- Marketing analysts needing channel mix clarity.
- Performance marketers validating budget shifts.
- Growth teams optimizing journeys across paid and owned channels.
Prerequisites
- Comfort with basic analytics metrics (sessions, conversions).
- Familiarity with spreadsheets or SQL to aggregate paths.
- Consistent channel naming and time-stamped touchpoints.
Learning path
- Review MTA models (this page).
- Recreate the examples in a sheet.
- Run the exercise on your own sample data.
- Compare model outputs and write one-page recommendations.
- Extend to campaigns and creatives once channels are solid.
Next steps
- Apply these models to last month’s data.
- Share a short memo: what changes if you move from last-click to time-decay?
- Plan one controlled test to validate an MTA-based shift.
Mini challenge
Pick any recent win. Under each model here, which channel benefits most and which loses? Explain in 3 bullet points why the shift is reasonable (or not).
Quick test
The quick test is available to everyone. Only logged-in users will have their progress saved.