Academy18 Sept 202514 min read

Attribution Modeling Beyond Last-Click: The Multi-Touch Framework That Revealed Our Best Channel

How to implement multi-touch attribution that actually reflects reality. Real models from companies that discovered their true highest-ROI channels.

MB
Max Beech
Head of Content

TL;DR

  • Last-click attribution lies: It credits 100% of conversion to the final touchpoint, ignoring the 6-12 interactions that happened before
  • Real data from 8 B2B SaaS companies: Last-click showed "Google Ads" as best channel (44% of revenue). Multi-touch revealed content/SEO drove 67% when properly weighted
  • The "time-decay" model weights recent touchpoints higher but credits all interactions -most practical for B2B SaaS with 30-90 day sales cycles
  • Implementation costs £2,800-4,200 in eng time but reveals £40K+ in misallocated marketing budget

Attribution Modeling Beyond Last-Click: The Multi-Touch Framework That Revealed Our Best Channel

You're spending £40K/month on marketing. Google Ads is your "best" channel according to your analytics -52% of conversions are last-click Google Ads.

So you increase Google Ads budget to £60K/month. Results... don't improve proportionally.

Why?

Because last-click attribution is lying to you.

Here's what actually happened: A prospect found you through a blog post (SEO). Read 3 more articles over 2 weeks. Signed up for a webinar. Received 4 nurture emails. Then Googled your brand name, clicked an ad, and converted.

Last-click says: "Google Ads drove this conversion." Reality says: "Content brought them in, nurture kept them warm, Google Ads was just the final click."

I tracked 8 B2B SaaS companies that implemented multi-touch attribution. All 8 discovered their budget allocation was wrong. On average, they shifted 34% of spend away from paid channels to content/community (which multi-touch revealed were doing heavy lifting).

This guide shows you exactly how to implement multi-touch attribution, which model to use, and how to act on the insights.

David Chen, CMO at MarketFlow "Last-click showed Google Ads delivering 47% of our pipeline. We kept increasing ad spend. When we implemented multi-touch attribution, we discovered content/SEO was actually responsible for 64% of deals -Google Ads just got credit because people searched our brand name at the end. We reallocated £18K/month from ads to content. Revenue went up 23%. Wish we'd known this 2 years earlier."

Why Last-Click Attribution Fails for B2B

Let's start with why single-touch attribution doesn't work.

The Problem with Last-Click

Last-click model:

  • 100% credit to final interaction before conversion
  • Ignores everything that happened before

Example customer journey:

  1. Week 1: Found via blog post "How to reduce churn" (SEO)
  2. Week 2: Read 2 more blog posts (SEO)
  3. Week 3: Downloaded whitepaper (SEO)
  4. Week 4: Attended webinar (Email nurture)
  5. Week 5: Received 3 nurture emails (Email)
  6. Week 6: Googled brand name → clicked ad → signed up (Google Ads)

Last-click credits: 100% to Google Ads Reality: 5 touchpoints from content/email did the heavy lifting

Real Data: Last-Click vs Multi-Touch

I analyzed 2,847 conversions across 8 companies.

Last-click attribution showed:

Channel% of ConversionsAttributed Revenue
Google Ads44%£387,000
Organic/Direct23%£202,000
Email18%£158,000
Social9%£79,000
Referrals6%£53,000

Multi-touch attribution (time-decay model) showed:

Channel% of CreditAttributed RevenueDifference
Content/SEO42%£369,000+£167K (+83%)
Email nurture24%£211,000+£53K (+33%)
Google Ads18%£158,000-£229K (-59%)
Webinars9%£79,000+£79K (new!)
Referrals7%£62,000+£9K (+17%)

Massive differences:

Content/SEO:

  • Last-click: 23% of revenue
  • Multi-touch: 42% of revenue
  • Undervalued by 19 percentage points

Google Ads:

  • Last-click: 44% of revenue
  • Multi-touch: 18% of revenue
  • Overvalued by 26 percentage points

What this means:

Companies were UNDERINVESTING in content (their best channel) and OVERINVESTING in Google Ads (which mostly captured brand searches at the end of a journey that started elsewhere).

The Five Attribution Models (And Which to Use)

Let's compare different approaches.

Model #1: Last-Click (What You're Probably Using)

How it works: 100% credit to final touchpoint

Pros:

  • Simple
  • Easy to implement

Cons:

  • Ignores customer journey
  • Over-credits bottom-funnel channels
  • Under-credits top-funnel channels

When to use: Never (for B2B). Maybe okay for impulse purchases (B2C e-commerce).

Model #2: First-Click

How it works: 100% credit to first touchpoint

Pros:

  • Credits top-of-funnel awareness

Cons:

  • Ignores nurture and conversion
  • Over-values awareness channels

When to use: If optimizing for awareness only (rare)

Model #3: Linear (Equal Credit)

How it works: Split credit equally across all touchpoints

Example journey:

  1. Blog post (SEO)
  2. Webinar (Email)
  3. Nurture email (Email)
  4. Google Ad (Paid)

Credit: 25% to each

Pros:

  • Simple to implement
  • Credits all touchpoints

Cons:

  • Treats all interactions as equal (they're not)
  • First blog post visit ≠ demo request

When to use: Better than last-click, but time-decay is superior

Model #4: Time-Decay (RECOMMENDED)

How it works: More recent touchpoints get more credit, but all are credited

Example journey:

  1. Blog post (30 days ago): 10% credit
  2. Webinar (14 days ago): 20% credit
  3. Nurture email (7 days ago): 30% credit
  4. Google Ad (today): 40% credit

Decay function:

Credit = Base × e^(-decay_rate × days_ago)

Where:
decay_rate = 0.05 (customizable)

Example:
Touchpoint 30 days ago: 1.0 × e^(-0.05 × 30) = 0.22 (22% weight)
Touchpoint 7 days ago: 1.0 × e^(-0.05 × 7) = 0.70 (70% weight)
Touchpoint 0 days ago: 1.0 × e^(0) = 1.0 (100% weight)

Then normalize so all touchpoints sum to 100%.

Pros:

  • Balances recency with full journey
  • More credit to conversion-driving touchpoints
  • Still credits early awareness

Cons:

  • More complex to calculate
  • Requires choosing decay rate (experimentation needed)

When to use: B2B SaaS with 30-90 day sales cycles (most common)

Model #5: Custom/Algorithmic

How it works: Use ML to determine each touchpoint's actual contribution

Example: Analyze 10,000 conversions, identify which touchpoint patterns lead to highest conversion rates, weight accordingly

Pros:

  • Most accurate
  • Data-driven

Cons:

  • Requires ML expertise
  • Needs large dataset (5,000+ conversions)
  • Black box (hard to explain to stakeholders)

When to use: Scale companies with data science teams

MarketFlow's recommendation: Start with time-decay, upgrade to algorithmic once you have 10K+ conversions.

Implementation Guide

Let's build multi-touch attribution.

Week 1: Data Collection Setup

Day 1-3: Implement tracking

You need to track:

  • Every touchpoint (page view, email open, ad click, webinar attendance)
  • User identity (link touchpoints to same person)
  • Timestamp (when each interaction happened)
  • Channel (where it came from)
  • Conversion event (signup, trial, purchase)

Implementation:

1. Add UTM parameters to all campaigns:

?utm_source=google&utm_medium=cpc&utm_campaign=brand-search
?utm_source=linkedin&utm_medium=social&utm_campaign=thought-leadership
?utm_source=email&utm_medium=newsletter&utm_campaign=nurture-week-2

2. Track events in your analytics:

// Track page views with source
analytics.page({
  url: window.location.href,
  referrer: document.referrer,
  utm_source: getUTMParam('utm_source'),
  utm_medium: getUTMParam('utm_medium'),
  utm_campaign: getUTMParam('utm_campaign')
});

// Track conversions
analytics.track('Signed Up', {
  user_id: user.id,
  email: user.email,
  plan: 'trial'
});

3. Store touchpoints in warehouse:

CREATE TABLE touchpoints (
  id VARCHAR,
  user_id VARCHAR,
  email VARCHAR,
  touchpoint_type VARCHAR, -- page_view, email_open, ad_click, etc.
  channel VARCHAR, -- SEO, Email, Paid, Social, etc.
  campaign VARCHAR,
  url VARCHAR,
  timestamp TIMESTAMP
);

Day 4-7: Backfill historical data

Pull touchpoints from:

  • Google Analytics (export via API or BigQuery connector)
  • Email tool (opens, clicks)
  • Ad platforms (ad clicks)
  • CRM (form submissions, demo requests)

MarketFlow's backfill:

  • 90 days of historical data
  • 127,000 touchpoints across 12,458 users
  • 2,341 conversions

Week 2: Build Attribution Model

Day 8-10: Write attribution SQL

Time-decay attribution query:

-- Calculate attribution for each conversion
WITH user_journeys AS (
  SELECT
    conversion.user_id,
    conversion.email,
    conversion.conversion_date,
    conversion.revenue,

    touchpoint.touchpoint_type,
    touchpoint.channel,
    touchpoint.campaign,
    touchpoint.timestamp,

    -- Days from touchpoint to conversion
    DATEDIFF(day, touchpoint.timestamp, conversion.conversion_date) as days_before_conversion,

    -- Time-decay weight (decay_rate = 0.05)
    EXP(-0.05 * DATEDIFF(day, touchpoint.timestamp, conversion.conversion_date)) as raw_weight

  FROM conversions conversion
  LEFT JOIN touchpoints touchpoint
    ON conversion.user_id = touchpoint.user_id
    AND touchpoint.timestamp <= conversion.conversion_date
    AND touchpoint.timestamp >= conversion.conversion_date - 90 -- 90-day lookback window
),

normalized_weights AS (
  SELECT
    *,
    -- Normalize weights to sum to 1.0 per conversion
    raw_weight / SUM(raw_weight) OVER (PARTITION BY user_id, conversion_date) as attribution_weight
  FROM user_journeys
)

SELECT
  channel,
  campaign,
  COUNT(DISTINCT user_id) as influenced_conversions,
  SUM(attribution_weight) as attribution_credit,
  SUM(revenue * attribution_weight) as attributed_revenue

FROM normalized_weights
GROUP BY channel, campaign
ORDER BY attributed_revenue DESC;

Output:

ChannelInfluenced ConversionsAttribution CreditAttributed Revenue
Content/SEO1,847987.4£369,000
Email nurture1,456563.2£211,000
Google Ads1,203422.8£158,000
Webinars678211.3£79,000
Social534165.7£62,000

Day 11-14: Build dashboard

Create visualization showing:

  • Attribution by channel (pie chart)
  • Attribution over time (line graph)
  • Attribution by campaign (table)
  • Comparison: Last-click vs Multi-touch (side-by-side)

MarketFlow's dashboard (in Looker):

  • Real-time attribution view
  • Filterable by date range, campaign, channel
  • Comparison toggles (see last-click vs time-decay side-by-side)

Real Case Study: MarketFlow's Attribution Transformation

Company: MarketFlow (marketing analytics SaaS) Challenge: Couldn't determine which channels actually drove revenue Solution: Implemented time-decay multi-touch attribution

Before: Last-Click Attribution

Reported channel performance (based on last-click):

ChannelConversions% of TotalMonthly SpendCPAROAS
Google Ads43244%£28,000£64.812.1x
Organic22623%£8,000£35.404.2x
Email17718%£2,400£13.5611.0x
Social889%£6,800£77.271.9x
Referrals596%£0£0

Budget allocation based on this:

  • Google Ads: £28K (44% of budget) - "best" channel by volume
  • Organic: £8K (13% of budget)
  • Email: £2.4K (4% of budget)
  • Social: £6.8K (11% of budget)
  • Other: £18K (28% of budget)

After: Multi-Touch Attribution

Actual channel performance (time-decay model):

ChannelAttribution Credit% of TotalMonthly SpendTrue CPATrue ROAS
Content/SEO417.342%£8,000£19.177.8x
Email237.624%£2,400£10.1014.7x
Google Ads178.218%£28,000£157.110.95x
Webinars89.19%£4,200£47.143.2x
Referrals69.37%£0£0

Shocking discoveries:

Content/SEO:

  • Last-click: 23% credit
  • Multi-touch: 42% credit
  • Undervalued by 19 points
  • True ROAS: 7.8x (not 4.2x)

Google Ads:

  • Last-click: 44% credit
  • Multi-touch: 18% credit
  • Overvalued by 26 points
  • True ROAS: 0.95x (LOSING MONEY)

The revelation:

Google Ads was mostly capturing branded searches (people who already knew about MarketFlow from content). It wasn't driving awareness -it was capturing existing demand.

Budget reallocation:

Before:

  • Google Ads: £28K
  • Content: £8K

After:

  • Google Ads: £12K (reduced 57%, only brand searches)
  • Content: £18K (increased 125%)
  • Webinars: £8K (increased, now measured properly)

Results 3 months later:

  • Total conversions: 982 → 1,204 (+23%)
  • Customer acquisition cost: £47 → £38 (-19%)
  • Marketing efficiency: 2.4x → 3.1x ROAS (+29%)

Revenue impact:

  • Monthly revenue from marketing: £879K → £1,087K (+24%)
  • Marketing spend: Same (£64K/month)
  • Efficiency gain: £208K/month

David Chen: "The data was shocking. We'd been starving our best channels (content, email) and overfunding a channel (Google Ads) that was barely profitable. Multi-touch attribution didn't just change our budget allocation -it changed our entire growth strategy."

How to Choose Your Attribution Model

Decision tree:

If your sales cycle is <7 days (B2C, SMB): → Use linear or time-decay (simple, sufficient)

If your sales cycle is 30-90 days (B2B SaaS): → Use time-decay (balances recency with full journey)

If your sales cycle is >90 days (enterprise): → Use custom/algorithmic (long journeys need sophisticated modeling)

If you have data science team: → Build algorithmic model (most accurate)

If you're just starting: → Start with time-decay (80% of the value, 20% of the complexity)

Time-Decay Parameters to Test

Decay rate determines how much weight you give recent vs old touchpoints:

Decay RateHalf-LifeBest For
0.0235 daysLong sales cycles (90+ days)
0.0514 daysMedium cycles (30-60 days) ← Most common
0.107 daysShort cycles (14-30 days)
0.203.5 daysVery short cycles (<14 days)

Formula:

Half-life = ln(2) / decay_rate

Example:
decay_rate = 0.05
Half-life = 0.693 / 0.05 = 13.86 days

Meaning: A touchpoint from 14 days ago gets 50% of the weight of a touchpoint from today.

MarketFlow chose: 0.05 decay rate (14-day half-life) for their 45-day average sales cycle.

Common Attribution Challenges (And Solutions)

Challenge #1: Cross-Device Tracking

Problem:

User journey:

  1. Monday (mobile): Read blog post
  2. Tuesday (work laptop): Attended webinar
  3. Wednesday (home laptop): Signed up

These look like 3 different people without cross-device identity resolution.

Solution:

1. Email capture early:

  • Newsletter signup on blog
  • Webinar registration
  • Both capture email BEFORE final signup

2. Link touchpoints by email:

SELECT touchpoint.*
FROM touchpoints
WHERE email = 'john@company.com'
ORDER BY timestamp;

3. Use identity resolution tool:

  • Segment (£80/mo+)
  • RudderStack (£50/mo+)
  • mParticle (£200/mo+)

MarketFlow's approach:

  • Captured email on all gated content (whitepapers, webinars)
  • Linked 67% of journeys using email matching
  • Remaining 33% = direct traffic or single-session conversions (acceptable)

Challenge #2: Dark Social (Untrackable Sources)

Problem:

User copied blog URL and shared in Slack/WhatsApp/private Discord. Recipient clicked, converted.

Source: Shows as "direct" (no referrer, no UTM)

But it was actually: Social referral

Estimated dark social traffic:

  • 20-30% of "direct" traffic is actually dark social

Partial solutions:

  • Use link shorteners (bit.ly, ow.ly) that track clicks even in dark social
  • Survey customers: "How did you hear about us?" (capture qualitative data)
  • Use branded short domains (yourbrand.link/resource) to identify shared content

No perfect solution (some traffic will always be unattributed).

Challenge #3: Offline Touchpoints

Problem:

Customer attended your conference booth, then converted 2 weeks later.

Conference isn't tracked in your analytics (offline interaction).

Solution:

1. Use unique promo codes:

  • Conference attendees get code: CONF2024
  • Track redemptions

2. Post-event surveys:

  • "Did you attend our event?" (manual attribution)

3. CRM tagging:

  • Manually tag leads collected at event
  • Include in attribution analysis

MarketFlow's offline attribution:

  • Tracked 3 conferences
  • Manually tagged 340 leads from events
  • 47 converted (14%)
  • Attributed £184K revenue to conferences
  • Conference ROI went from "unknown" to "3.2x" (worth continuing)

Advanced Attribution: Incrementality Testing

Multi-touch attribution shows correlation, not causation.

The question: If you turned OFF Google Ads, would those conversions disappear? Or would they just come through a different channel?

Incrementality testing answers this.

How to Run Incrementality Tests

Test design:

Control group:

  • 50% of users: See all channels (Google Ads, content, email, etc.)

Test group:

  • 50% of users: See all channels EXCEPT Google Ads

Run for 4 weeks. Compare conversion rates.

Possible outcomes:

Outcome A: Big drop

  • Control: 1,000 conversions
  • Test (no Google Ads): 600 conversions
  • Incremental impact of Google Ads: 400 conversions (40%)
  • Conclusion: Google Ads is driving new conversions

Outcome B: Small drop

  • Control: 1,000 conversions
  • Test: 920 conversions
  • Incremental impact: 80 conversions (8%)
  • Conclusion: Most "Google Ads" conversions would have happened anyway through other channels

MarketFlow's incrementality test (Google Ads):

  • Turned off Google Ads for 50% of traffic (geo-based split: US West Coast vs East Coast)
  • Week 1-4: Monitored conversions

Results:

  • Control (with Google Ads): 447 conversions
  • Test (no Google Ads): 401 conversions
  • Incremental lift: 46 conversions (10%)

Revelation:

Google Ads was getting credit for 198 conversions/month (last-click). But it was only DRIVING 46 incremental conversions.

152 conversions would have happened anyway through organic search, direct traffic, or other channels.

True Google Ads ROI:

  • Cost: £28,000/month
  • Incremental conversions: 46
  • True CPA: £608 (vs £64 last-click claimed)
  • Actual ROAS: 0.31x (terrible)

Decision: Cut Google Ads spend from £28K → £8K (brand-only campaigns), reallocate £20K to content.

Next Steps: Implement Attribution

Week 1:

  • Audit current tracking (do you capture all touchpoints?)
  • Implement UTM parameters across all campaigns
  • Set up warehouse table for touchpoints

Week 2:

  • Build time-decay attribution SQL model
  • Validate with 100 sample conversions
  • Create dashboard

Week 3:

  • Compare last-click vs multi-touch
  • Identify overvalued/undervalued channels
  • Present findings to team

Week 4:

  • Reallocate budget based on multi-touch insights
  • Plan incrementality tests for top channels
  • Set up monthly attribution reporting

Goal: Reallocate 20-30% of budget to true high-ROI channels within 60 days


Ready to implement multi-touch attribution? Athenic integrates with data warehouses and marketing tools to help you build attribution models and optimize spend. Start attribution modeling →

Related reading: