luvv to helpDiscover the Best Free Online Tools
Topic 4 of 8

Time Decay Attribution

Learn Time Decay Attribution for free with explanations, exercises, and a quick test (for Marketing Analyst).

Published: December 22, 2025 | Updated: December 22, 2025

Who this is for

  • Marketing Analysts who need to credit multiple touchpoints fairly across a customer journey.
  • Performance marketers optimizing budgets across channels and campaigns.
  • Analysts building dashboards or reports that compare channel ROI.

Prerequisites

  • Know your conversion event (e.g., purchase, lead) and lookback window.
  • Have touchpoint data with user/session IDs, timestamps, and channels.
  • Comfort with basic math and spreadsheets or SQL.

Why this matters

Real tasks you will face:

  • Allocating revenue/lead credit to channels without overvaluing last click.
  • Comparing campaign effectiveness when journeys have many touches.
  • Explaining why recent touches often matter more and how you weighted them.
  • Running budget shift scenarios based on time-weighted performance.

Concept explained simply

Time Decay Attribution gives more credit to touches that happen closer to conversion. Earlier touches still matter, just less. This mirrors real buyer behavior: memory fades and intent strengthens as people get closer to purchase.

Mental model

  • Think of attention like a melting ice cube: the closer to conversion, the more solid the impact.
  • We control how fast it melts with a β€œhalf-life” (h). After h days, weight halves.

Weight formula (using days as the unit): w = 0.5^(age_in_days / half_life). Normalize weights so they sum to 1 per conversion, then allocate credit.

Terminology
  • Lookback window: how far back you consider touches (e.g., 30 days).
  • Half-life (h): how quickly credit decays; common picks: 7 days (B2C), 30 days (B2B).
  • Normalization: divide each touch weight by the sum so credits add up to 1.

How to implement (step-by-step)

  1. Define scope. Choose the conversion and lookback window (e.g., purchases within 30 days of first touch).
  2. Pick a half-life (h). Start practical: 7 days for fast cycles (retail), 14–30 days for longer cycles (B2B). Plan to backtest.
  3. Compute touch weights. For each touch: age = conversion_time βˆ’ touch_time. Weight w = 0.5^(age/h). Keep time units consistent.
  4. Normalize per journey. Sum all w for that conversion; each touch credit = w_i / sum_w.
  5. Aggregate. Sum credits by channel, campaign, ad group, etc.
  6. QA. Randomly sample journeys to ensure credits sum to 1, timestamps make sense, and single-touch paths get 100% credit.
Pro tips
  • Use the same half-life across channels for fair comparison; only change it with strong evidence and clear documentation.
  • Set sensible rules for β€œDirect”: report both with and without last-non-direct to avoid over-crediting Direct.
  • Backtest half-lives: choose the one that best predicts future conversions or aligns with business reality.

Worked examples

Example 1: B2C, half-life 7 days

Path: Facebook (14d), Paid Search (7d), Email (2d), Direct (0d). h=7.

Show calculation
  • w_FB = 0.5^(14/7) = 0.25
  • w_PS = 0.5^(7/7) = 0.5
  • w_Email = 0.5^(2/7) β‰ˆ 0.820
  • w_Direct = 1.0
  • Sum = 2.57
  • Credits: FB β‰ˆ 9.7%, Paid Search β‰ˆ 19.5%, Email β‰ˆ 31.9%, Direct β‰ˆ 38.9% (rounding may vary slightly)

Example 2: B2B, half-life 30 days

Path: LinkedIn (60d), Webinar (20d), SDR Call (5d), Direct (0d). h=30.

Show calculation
  • w_LI = 0.5^(60/30) = 0.25
  • w_Webinar = 0.5^(20/30) β‰ˆ 0.630
  • w_SDR = 0.5^(5/30) β‰ˆ 0.891
  • w_Direct = 1.0
  • Sum β‰ˆ 2.771
  • Credits: LinkedIn β‰ˆ 9.0%, Webinar β‰ˆ 22.7%, SDR β‰ˆ 32.1%, Direct β‰ˆ 36.1%

Example 3: Repeated channel touches

Path: Display (9d), Email (5d), Email (1d), Direct (0d). h=7.

Show calculation
  • w_Display β‰ˆ 0.410
  • w_Email_old β‰ˆ 0.610
  • w_Email_recent β‰ˆ 0.906
  • w_Direct = 1.0
  • Sum β‰ˆ 2.926
  • Per-touch credits: Display β‰ˆ 14.0%, Email_old β‰ˆ 20.9%, Email_recent β‰ˆ 31.0%, Direct β‰ˆ 34.1%
  • Channel-level: Email total β‰ˆ 52.0%

Exercises

Do these now. Answers are available below each exercise in the Exercises panel and in the Solutions.

Exercise 1 β€” Single journey calculation

Given: Facebook (14d), Paid Search (7d), Email (2d), Direct (0d). h=7. Compute normalized credit by channel.

  • Formula: w = 0.5^(age/7)
  • Normalize per journey
  • Round to one decimal place

Exercise 2 β€” Aggregate across multiple journeys

Five conversions; h=7. For each journey, compute per-touch credits, normalize, then sum by channel.

Dataset
  • Journey A: Paid Social (10d), Email (3d), Direct (0d)
  • Journey B: Organic (12d), Paid Search (6d), Email (1d), Direct (0d)
  • Journey C: Paid Social (20d), Paid Search (2d), Direct (0d)
  • Journey D: Organic (5d), Referral (2d), Direct (0d)
  • Journey E: Paid Search (9d), Email (4d), Paid Search (1d), Direct (0d)
  • Output needed: Channel share % across all 5 conversions.
Checklist
  • Used same half-life across all journeys
  • Weights computed with correct ages
  • Each journey’s credits sum to 100%
  • Channels aggregated correctly (duplicates combined)

Common mistakes and self-checks

  • Not normalizing per journey. Self-check: Pick 10 random conversions; confirm channel credits sum to 100% each.
  • Wrong time unit. Self-check: Ensure age and half-life are in the same unit (both days or both hours).
  • Over-crediting Direct. Self-check: Compare results with and without last-non-direct rule; large swings imply Direct is absorbing brand recall.
  • Changing half-life per channel without evidence. Self-check: Keep one h for fairness; only vary after documented backtests.
  • Including post-conversion touches. Self-check: Filter touches strictly before conversion timestamp.
  • Timezone/timestamp errors. Self-check: Convert all times to a single timezone before calculating ages.

Practical projects

  • Project A: Build a spreadsheet model that takes touch timestamps and outputs time-decay channel credits with a configurable half-life. Deliverable: a template with inputs, weights, and pivoted channel totals.
  • Project B: Backtest half-lives (3, 7, 14, 30 days) on last month’s data and pick the one that best correlates with this month’s actual conversions or CAC. Deliverable: a one-page summary with charts and your recommendation.
  • Project C: Create a dashboard visualizing channel credit under last-click vs time-decay (h=7). Deliverable: side-by-side comparison and a 3-bullet stakeholder takeaway.

Quick Test β€” how it works

Everyone can take the test below; only logged-in users get saved progress.

Mini challenge

Your median time-to-conversion is 14 days. You want a time-decay model that still values mid-funnel touches but clearly favors recency. What half-life would you start with, and why?

Suggested answer

Start with h = 7 days. It’s about half the median path length, so mid-funnel touches keep meaningful weight while recency is emphasized. Then backtest against h = 5 and h = 10 to see which better predicts future conversions.

Learning path

  • Before: UTM taxonomy and channel mapping, conversion tracking, session stitching.
  • This lesson: Time Decay Attribution (setup, math, QA, reporting).
  • After: Position-based models, data-driven/algorithmic attribution (e.g., Markov, Shapley), and Marketing Mix Modeling for high-level budget planning.

Next steps

  • Implement time-decay in your reporting with a documented half-life and lookback window.
  • Share a short note explaining the model and how it differs from last-click.
  • Run a 2-week experiment shifting 10–15% budget toward channels that gain credit under time-decay; monitor CAC/ROAS and conversion quality.

Practice Exercises

2 exercises to complete

Instructions

Given a single journey with touches: Facebook (14 days before), Paid Search (7 days), Email (2 days), Direct (0 days). Use half-life h=7 days.

  • Compute weights: w = 0.5^(age/7)
  • Normalize so credits sum to 1
  • Report channel credits as percentages (1 decimal place)
Expected Output
Facebook β‰ˆ 9.7%, Paid Search β‰ˆ 19.5%, Email β‰ˆ 31.9%, Direct β‰ˆ 38.9% (allow small rounding differences)

Time Decay Attribution β€” Quick Test

Test your knowledge with 8 questions. Pass with 70% or higher.

8 questions70% to pass

Have questions about Time Decay Attribution?

AI Assistant

Ask questions about this tool