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
Diverse team collaborating in creative setting

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).

"Content velocity without content quality is just expensive noise. The winning formula combines AI efficiency with human insight and brand voice." - David Okonkwo, VP of Content at Shopify

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:


Frequently Asked Questions

Q: Should I prioritise SEO or social media distribution?

Both have value, but SEO typically delivers more compounding returns over time. Social generates immediate visibility but requires constant effort. Most successful strategies combine SEO-first content with social amplification.

Q: How do I measure content marketing ROI effectively?

Track both leading indicators (engagement, time on page, shares) and lagging indicators (leads generated, pipeline influenced, revenue attributed). Attribution modelling helps connect content touchpoints to business outcomes over multi-touch journeys.

Q: What's the ideal content publishing frequency?

Consistency matters more than volume. For most B2B companies, 2-4 quality pieces per week outperforms daily low-quality content. Focus on maintaining quality standards while building a sustainable production rhythm.