Skip to content
cccskills
FreePublished on GitHub

attribution-analyzer

Multi-touch attribution analysis across marketing channels with multiple models

The English summary is being prepared. Showing the original description.

Works withLinkedIn
See how to install

Files included (2)

  • SKILL.md8.9 KB
  • skill.meta.json447 B

SKILL.md (original)

Review the instructions the agent will receive before you install.

Attribution Analyzer

Performs multi-touch attribution analysis on lead-to-conversion journey data. Applies five attribution models (first-touch, last-touch, linear, time-decay, U-shaped) to the same dataset and compares outputs. Identifies highest-impact channels and touchpoints, calculates channel ROI, and recommends budget allocation shifts. Works with CRM data or manually provided touchpoint logs.

Prerequisites

  • agency.config.json in the project root
  • Touchpoint data: lead journeys with channel, timestamp, and conversion status
  • Optional: channel spend data for ROI calculations
  • Optional: crm-writer integration for pulling journey data from CRM

Phase 0: Read Config

  1. Read agency.config.json from the project root.
  2. Extract channel configuration:
    • outreach.channels[] -- active marketing channels
    • outreach.cadence[] -- touchpoint sequence and timing
  3. Extract tools.crm for CRM data access method.
  4. Extract tools.analytics for any analytics platform integration.
  5. Check for attribution.default_model preference in config.

Phase 1: Gather Touchpoint Data

Collect or retrieve lead journey data. Each journey record needs:

{
  "lead_id": "lead_001",
  "converted": true,
  "conversion_value": 5000,
  "conversion_date": "2024-03-15",
  "touchpoints": [
    {
      "channel": "linkedin_ad",
      "timestamp": "2024-02-01T10:00:00Z",
      "type": "impression",
      "content": "CRO case study carousel"
    },
    {
      "channel": "cold_email",
      "timestamp": "2024-02-05T14:30:00Z",
      "type": "email_open",
      "content": "Touch 1 -- PAS framework"
    },
    {
      "channel": "website",
      "timestamp": "2024-02-06T09:00:00Z",
      "type": "page_visit",
      "content": "Case study page"
    },
    {
      "channel": "cold_email",
      "timestamp": "2024-02-10T11:00:00Z",
      "type": "email_reply",
      "content": "Touch 2 follow-up"
    },
    {
      "channel": "demo_call",
      "timestamp": "2024-02-15T15:00:00Z",
      "type": "meeting",
      "content": "Discovery call"
    }
  ]
}

Data sources:

  • Manual input (user provides CSV or JSON)
  • CRM pull via crm-writer (read from Outreach CRM tab)
  • Analytics export (Google Analytics, Mixpanel)

If data is incomplete, flag gaps and proceed with available data.

Phase 2: Apply Attribution Models

Apply all five models to every converted lead's touchpoint chain:

Model 1: First-Touch Attribution

  • 100% credit to the first touchpoint in the journey
  • Use case: understanding which channels drive awareness and initial discovery
  • Formula: credit = conversion_value assigned entirely to touchpoint[0]

Model 2: Last-Touch Attribution

  • 100% credit to the last touchpoint before conversion
  • Use case: understanding which channels close deals
  • Formula: credit = conversion_value assigned entirely to touchpoint[n-1]

Model 3: Linear Attribution

  • Equal credit distributed across all touchpoints
  • Use case: valuing every interaction in the journey equally
  • Formula: credit_per_touch = conversion_value / touchpoint_count

Model 4: Time-Decay Attribution

  • More credit to touchpoints closer to conversion
  • Use case: understanding recent influence while acknowledging earlier touches
  • Formula: weight = 2^((days_before_conversion * -1) / half_life) where half_life = 7 days
  • Normalize weights so they sum to 1.0

Model 5: U-Shaped (Position-Based) Attribution

  • 40% to first touch, 40% to last touch, 20% split among middle touches
  • Use case: valuing both discovery and closing while acknowledging the nurture
  • Formula:
    • First touch: 0.4 * conversion_value
    • Last touch: 0.4 * conversion_value
    • Middle touches: (0.2 * conversion_value) / middle_touch_count

For each model, aggregate credit by channel across all converted leads.

Phase 3: Compare Model Outputs

Build a comparison matrix:

CHANNEL ATTRIBUTION COMPARISON
===
Channel          | First-Touch | Last-Touch | Linear  | Time-Decay | U-Shaped
-----------------|-------------|------------|---------|------------|--------
LinkedIn Ads     | $12,000     | $3,000     | $7,500  | $5,200     | $8,400
Cold Email       | $8,000      | $15,000    | $10,000 | $11,800    | $9,600
Website/Organic  | $3,000      | $2,000     | $6,500  | $4,000     | $3,200
Demo Calls       | $0          | $18,000    | $6,000  | $12,000    | $7,200
Referrals        | $2,000      | $0         | $3,000  | $1,500     | $1,600

Calculate the consensus score per channel:

  • Average attribution value across all 5 models
  • Rank channels by consensus score
  • Flag channels with high variance (score differs more than 2x between models)

Phase 4: Channel ROI Analysis

If spend data is available, calculate ROI per channel per model:

CHANNEL ROI (by attribution model)
===
Channel          | Spend   | First-Touch ROI | Linear ROI | Time-Decay ROI | Consensus ROI
-----------------|---------|-----------------|------------|----------------|-------------
LinkedIn Ads     | $2,000  | 6.0x            | 3.8x       | 2.6x           | 4.2x
Cold Email       | $500    | 16.0x           | 20.0x      | 23.6x          | 19.2x
Website/Organic  | $1,000  | 3.0x            | 6.5x       | 4.0x           | 3.2x

Identify:

  • Highest ROI channel: best return per dollar regardless of model
  • Most scalable channel: high ROI with room to increase spend
  • Underperforming channel: low ROI across multiple models
  • Discovery channel: high in first-touch but low in last-touch
  • Closing channel: high in last-touch but low in first-touch

Phase 5: Touchpoint Sequence Analysis

Beyond channel-level attribution, analyze touchpoint patterns:

Winning sequences (most common paths among converted leads):

TOP CONVERSION PATHS:
1. LinkedIn Ad -> Cold Email -> Website -> Demo Call (35% of conversions)
2. Cold Email -> Cold Email -> Demo Call (25% of conversions)
3. Referral -> Website -> Demo Call (20% of conversions)

Average touches to conversion:

  • Overall: X touchpoints
  • By channel entry point: which first-touch channel leads to fastest conversion
  • By deal size: do larger deals require more touches

Drop-off points:

  • Where in the sequence do leads most commonly go cold
  • Which channel transitions have the highest drop-off rate

Phase 6: Recommendations

Generate actionable recommendations:

BUDGET RECOMMENDATIONS:
===
1. INCREASE: [Channel] -- [reason, supported by data]
   Current spend: $X -> Recommended: $Y (+Z%)
   Expected impact: [projected additional revenue]

2. DECREASE: [Channel] -- [reason, supported by data]
   Current spend: $X -> Recommended: $Y (-Z%)
   Expected savings: [amount freed up]

3. TEST: [Channel/tactic] -- [hypothesis to validate]
   Budget: $X for [duration]
   Success metric: [what to measure]

SEQUENCE RECOMMENDATIONS:
===
1. Prioritize [channel] as first touch for [segment]
2. Ensure [channel] is always in the path -- linear model shows consistent contribution
3. [Channel] is most effective as the final touch before conversion

Phase 7: Output

Return structured JSON:

{
  "attribution_report": {
    "analysis_date": "2024-03-15",
    "data_summary": {
      "total_leads": 150,
      "converted_leads": 45,
      "total_revenue": "$225,000",
      "total_touchpoints_analyzed": 487,
      "average_touches_to_conversion": 4.2,
      "date_range": "2024-01-01 to 2024-03-15"
    },
    "models": {
      "first_touch": { "channel_scores": {} },
      "last_touch": { "channel_scores": {} },
      "linear": { "channel_scores": {} },
      "time_decay": { "channel_scores": {}, "half_life_days": 7 },
      "u_shaped": { "channel_scores": {} }
    },
    "consensus_ranking": [
      { "channel": "cold_email", "consensus_score": 19200, "consensus_roi": "19.2x" }
    ],
    "top_conversion_paths": [],
    "drop_off_analysis": {},
    "channel_roi": {},
    "recommendations": {
      "increase": [],
      "decrease": [],
      "test": [],
      "sequence_changes": []
    }
  }
}

Example Usage

Trigger phrases:

  • "Run attribution analysis on our pipeline"
  • "Which channel is driving the most revenue?"
  • "Compare first-touch vs last-touch attribution"
  • "Analyze our marketing touchpoints for Q1"
  • "What's the ROI of our cold email vs LinkedIn ads?"
  • "Show me the conversion paths for our best deals"
User: Run attribution analysis on our Q1 pipeline
Assistant: [pulls touchpoint data from CRM, applies 5 models, builds comparison matrix, identifies cold email as highest ROI channel, recommends increasing email volume and testing LinkedIn content changes]
User: Which channel should we invest more in?
Assistant: [runs full attribution, finds LinkedIn drives discovery but email closes deals, recommends maintaining LinkedIn for awareness and doubling email follow-up sequences]

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Analyze A/B test results for statistical significance with ship, extend, or kill recommendations

The English summary is being prepared. Showing the original description.

ekatasingh1107/b2b-gtm-skills2Updated Apr 12, 2026

Reallocate ad budget across campaigns and channels using ROAS and marginal return analysis

The English summary is being prepared. Showing the original description.

ekatasingh1107/b2b-gtm-skills2Updated Apr 12, 2026

Generate structured creative briefs for ad designers with brand-consistent direction

The English summary is being prepared. Showing the original description.

ekatasingh1107/b2b-gtm-skills2Updated Apr 12, 2026

Mine winning ad angles, hooks, and creative patterns from top-performing ads

The English summary is being prepared. Showing the original description.

ekatasingh1107/b2b-gtm-skills2Updated Apr 12, 2026

ad-spy

Free

Monitor competitor ads across Meta, Google, and LinkedIn with strategic analysis

The English summary is being prepared. Showing the original description.

ekatasingh1107/b2b-gtm-skills2Updated Apr 12, 2026

Interactive onboarding wizard that generates agency.config.json for any B2B agency. Asks structured questions about the agency, services, ICP, tools, outreach preferences, and CRM setup. Outputs a complete config file.

The English summary is being prepared. Showing the original description.

ekatasingh1107/b2b-gtm-skills2Updated Apr 12, 2026

See all skills by ekatasingh1107

Report a problem with this skill