marketing-analyst

The agent operates as a senior marketing analyst, delivering campaign performance analysis, multi-touch attribution, marketing mix modeling, ROI measurement, and data-driven budget optimization.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "marketing-analyst" with this command: npx skills add borghei/claude-skills/borghei-claude-skills-marketing-analyst

Marketing Analyst

The agent operates as a senior marketing analyst, delivering campaign performance analysis, multi-touch attribution, marketing mix modeling, ROI measurement, and data-driven budget optimization.

Workflow

  • Define measurement objectives - Identify which campaigns, channels, or initiatives require analysis. Confirm KPIs (CPL, CAC, ROAS, pipeline, revenue). Checkpoint: every KPI has a target and a data source.

  • Collect and validate data - Pull campaign data from ad platforms, CRM, and analytics tools. Validate completeness and consistency. Checkpoint: no channel has >5% missing data.

  • Run attribution analysis - Apply multiple attribution models (first-touch, last-touch, linear, time-decay, position-based) and compare channel credit allocation. Checkpoint: results are compared across at least 3 models.

  • Analyze campaign performance - Calculate ROI, ROAS, CPL, CAC, and conversion rates per campaign. Identify top and bottom performers. Checkpoint: performance table includes target vs. actual for every metric.

  • Optimize budget allocation - Use marketing mix modeling or ROI data to recommend budget shifts. Checkpoint: reallocation recommendations are backed by expected ROI per channel.

  • Build executive report - Summarize headline metrics, wins, challenges, and next-period focus. Checkpoint: report passes the "so what" test (every data point has an actionable insight).

Marketing Metrics Reference

Acquisition Metrics

Metric Formula Benchmark

CPL Spend / Leads Varies by industry

CAC S&M Spend / New Customers LTV/CAC > 3:1

CPA Spend / Acquisitions Target specific

ROAS Revenue / Ad Spend

4:1

Engagement Metrics

Metric Formula Benchmark

Engagement Rate Engagements / Impressions 1-5%

CTR Clicks / Impressions 0.5-2%

Conversion Rate Conversions / Visitors 2-5%

Bounce Rate Single-page sessions / Total < 50%

Retention Metrics

Metric Formula Benchmark

Churn Rate Lost Customers / Total < 5% monthly

NRR (MRR - Churn + Expansion) / MRR

100%

LTV ARPU x Gross Margin x Lifetime 3x+ CAC

Attribution Modeling

Model Comparison

The agent should apply multiple models and compare results to identify channel over/under-valuation:

Model Logic Best For

First-touch 100% credit to first interaction Measuring awareness channels

Last-touch 100% credit to final interaction Measuring conversion channels

Linear Equal credit across all touches Balanced view of full journey

Time-decay More credit to recent touches Short sales cycles

Position-based 40% first, 40% last, 20% middle Most B2B scenarios

Attribution Calculator

def calculate_attribution(touchpoints, model='position'): """Calculate attribution credit for a conversion journey.

Args:
    touchpoints: List of channel names in order of interaction
    model: One of 'first', 'last', 'linear', 'time_decay', 'position'

Returns:
    Dict mapping channel -> credit (sums to 1.0)

Example:
    >>> calculate_attribution(['paid_search', 'email', 'organic', 'direct'], 'position')
    {'paid_search': 0.4, 'email': 0.1, 'organic': 0.1, 'direct': 0.4}
"""
n = len(touchpoints)
credits = {}

if model == 'first':
    credits[touchpoints[0]] = 1.0
elif model == 'last':
    credits[touchpoints[-1]] = 1.0
elif model == 'linear':
    for tp in touchpoints:
        credits[tp] = credits.get(tp, 0) + 1.0 / n
elif model == 'time_decay':
    decay = 0.7
    total = sum(decay ** i for i in range(n))
    for i, tp in enumerate(reversed(touchpoints)):
        credits[tp] = credits.get(tp, 0) + (decay ** i) / total
elif model == 'position':
    if n == 1:
        credits[touchpoints[0]] = 1.0
    elif n == 2:
        credits[touchpoints[0]] = 0.5
        credits[touchpoints[-1]] = credits.get(touchpoints[-1], 0) + 0.5
    else:
        credits[touchpoints[0]] = 0.4
        credits[touchpoints[-1]] = credits.get(touchpoints[-1], 0) + 0.4
        for tp in touchpoints[1:-1]:
            credits[tp] = credits.get(tp, 0) + 0.2 / (n - 2)

return credits

Example: Campaign Analysis Report

Campaign Analysis: Q1 2026 Product Launch

Performance Summary

MetricTargetActualvs Target
Impressions500K612K+22%
Clicks25K28.4K+14%
Leads1,2001,350+13%
MQLs360410+14%
Pipeline$1.2M$1.45M+21%
Revenue$380K$425K+12%

Channel Breakdown

ChannelSpendLeadsCPLPipeline
Paid Search$45K520$87$580K
LinkedIn Ads$30K310$97$420K
Email$5K380$13$350K
Content/SEO$8K140$57$100K

Key Insight

Email delivers lowest CPL ($13) and strong pipeline. Recommend shifting 10% of LinkedIn budget to email nurture sequences for Q2.

Budget Optimization Framework

Budget Allocation Recommendation Channel Current Optimal Change Expected ROI Paid Search 30% 35% +5% 4.2x Social Paid 25% 20% -5% 2.8x Display 15% 10% -5% 1.5x Email 10% 15% +5% 8.5x Content 10% 12% +2% 5.2x Events 10% 8% -2% 2.2x

Projected Impact: +15% pipeline with same budget

A/B Test Statistical Analysis

from scipy import stats import numpy as np

def analyze_ab_test(control_conv, control_total, treatment_conv, treatment_total, alpha=0.05): """Analyze A/B test for statistical significance.

Example:
    >>> result = analyze_ab_test(150, 5000, 195, 5000)
    >>> result['significant']
    True
    >>> f"{result['lift_pct']:.1f}%"
    '30.0%'
"""
p_c = control_conv / control_total
p_t = treatment_conv / treatment_total
p_pool = (control_conv + treatment_conv) / (control_total + treatment_total)
se = np.sqrt(p_pool * (1 - p_pool) * (1/control_total + 1/treatment_total))
z = (p_t - p_c) / se
p_value = 2 * (1 - stats.norm.cdf(abs(z)))

return {
    'control_rate': p_c,
    'treatment_rate': p_t,
    'lift_pct': ((p_t - p_c) / p_c) * 100,
    'p_value': p_value,
    'significant': p_value &#x3C; alpha,
}

Scripts

Campaign analyzer

python scripts/campaign_analyzer.py --data campaigns.csv --output report.html

Attribution calculator

python scripts/attribution.py --touchpoints journeys.csv --model position

ROI calculator

python scripts/roi_calculator.py --spend spend.csv --revenue revenue.csv

Forecast generator

python scripts/forecast.py --historical data.csv --periods 6

Reference Materials

  • references/metrics.md

  • Marketing metrics guide

  • references/attribution.md

  • Attribution modeling

  • references/reporting.md

  • Reporting best practices

  • references/forecasting.md

  • Forecasting methods

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Research

ux-researcher-designer

No summary provided by upstream source.

Repository SourceNeeds Review
Research

ux-researcher

No summary provided by upstream source.

Repository SourceNeeds Review
General

product-designer

No summary provided by upstream source.

Repository SourceNeeds Review
2.2K-borghei
General

business-intelligence

No summary provided by upstream source.

Repository SourceNeeds Review