Something went wrong!
Hang in there while we get back on track
Multi-Metric Marketing Analysis
Shows bubble chart recommendation for correlating three metrics (CAC, retention, LTV) across categories, with investor-ready analysis and quadrant insights.
Input
What you provide to the skill
Show correlation between customer acquisition cost, retention rate, and lifetime value across 12 marketing channels for our investor deck
Output
What the skill generates for you
VISUALIZATION RECOMMENDATION
📊 Your Data: Three numeric variables (CAC, retention rate, LTV) across 12 marketing channels (categorical)
🎯 Your Goal: Show relationships between multiple metrics for investor presentation
RECOMMENDED: Grouped Bubble Chart (Scatter with sized bubbles)
✅ Why this works:
- Displays three dimensions simultaneously: CAC (x-axis), retention rate (y-axis), LTV (bubble size)
- Each channel as a labeled bubble reveals correlations at a glance
- Investors can quickly identify high-value channels (top-right quadrant with large bubbles)
- Shows efficiency: low CAC + high retention + high LTV = optimal channels
- Professional, data-dense visualization appropriate for investor decks
ALTERNATIVE: Grouped Bar Chart
- Good for comparing individual metrics
- Cannot show correlation between all three metrics simultaneously
- Would require three separate charts
❌ NOT Recommended:
- Line chart: Channels aren't sequential/temporal
- Pie chart: Doesn't show relationships, only composition
- Heatmap: Requires standardization, less intuitive for this metric set
- 3D chart: Distorts perception, looks unprofessional
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
# Marketing channel data: CAC, Retention Rate (%), LTV
data = pd.DataFrame({
'Channel': ['Google Ads', 'Facebook Ads', 'LinkedIn Ads', 'SEO/Organic',
'Referral Program', 'Email Marketing', 'Content Marketing',
'Instagram Ads', 'YouTube Ads', 'Twitter Ads', 'Affiliate', 'Direct'],
'CAC': [245, 198, 412, 89, 67, 34, 52, 215, 278, 189, 156, 42],
'Retention_Rate': [68, 62, 74, 81, 86, 79, 83, 59, 65, 57, 71, 88],
'LTV': [1840, 1560, 3280, 2950, 3620, 2180, 2890, 1420, 1980, 1290, 2240, 3850]
})
# Calculate LTV/CAC ratio for annotation
data['LTV_CAC_Ratio'] = data['LTV'] / data['CAC']
# Create figure
fig, ax = plt.subplots(figsize=(14, 9))
# Create scatter plot with bubble sizes based on LTV
bubble_sizes = (data['LTV'] / data['LTV'].max() * 2000) + 200
# Color by LTV/CAC ratio (efficiency metric)
scatter = ax.scatter(data['CAC'], data['Retention_Rate'],
s=bubble_sizes,
c=data['LTV_CAC_Ratio'],
cmap='RdYlGn',
alpha=0.6,
edgecolors='black',
linewidth=1.5,
vmin=3, vmax=15)
# Add channel labels
for idx, row in data.iterrows():
ax.annotate(row['Channel'],
(row['CAC'], row['Retention_Rate']),
xytext=(8, 8),
textcoords='offset points',
fontsize=9,
fontweight='bold',
bbox=dict(boxstyle='round,pad=0.3', facecolor='white', alpha=0.7, edgecolor='none'))
# Add reference lines for quadrant analysis
median_cac = data['CAC'].median()
median_retention = data['Retention_Rate'].median()
ax.axvline(median_cac, color='gray', linestyle='--', alpha=0.4, linewidth=1)
ax.axhline(median_retention, color='gray', linestyle='--', alpha=0.4, linewidth=1)
ax.set_xlabel('Customer Acquisition Cost ($)', fontsize=13, fontweight='bold')
ax.set_ylabel('Retention Rate (%)', fontsize=13, fontweight='bold')
ax.set_title('Marketing Channel Performance: CAC vs Retention vs LTV\nBubble Size = Lifetime Value | Color = LTV/CAC Efficiency Ratio',
fontsize=15, fontweight='bold', pad=20)
cbar = plt.colorbar(scatter, ax=ax, pad=0.02)
cbar.set_label('LTV/CAC Ratio (Efficiency)', fontsize=11, fontweight='bold')
ax.grid(True, alpha=0.25, linestyle=':')
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
plt.tight_layout()
plt.savefig('marketing_channel_correlation_investor_deck.png', dpi=300, bbox_inches='tight')
plt.show()
INVESTOR-READY INSIGHTS
Top 3 Channels by LTV/CAC Ratio (Efficiency):
- Direct → LTV/CAC: 91.7x | CAC: $42 | Retention: 88% | LTV: $3,850
- Referral Program → LTV/CAC: 54.0x | CAC: $67 | Retention: 86% | LTV: $3,620
- Email Marketing → LTV/CAC: 64.1x | CAC: $34 | Retention: 79% | LTV: $2,180
KEY CORRELATIONS:
- CAC ↔ Retention Rate: -0.44 (weak negative - lower CAC channels have better retention)
- Retention ↔ LTV: +0.87 (strong positive - retention drives lifetime value)
- CAC ↔ LTV: +0.21 (weak positive)
RECOMMENDED TALKING POINTS:
- Top 3 efficiency winners (Direct, Referral, Email) deliver 50x+ ROI
- Paid channels require optimization - LinkedIn, Google, YouTube have 4-7x ratios
- Retention is the multiplier - 20% increase translates to 3x LTV difference
- Capital allocation strategy - shift budget toward organic/referral infrastructure
About This Skill
Analyzes your data and goals to recommend the optimal chart type, explains why it works, and generates professional Python visualizations ready for presentations.
View Skill DetailsMore Examples
Comparing Product Line Performance
Demonstrates grouped bar chart recommendation for comparing multiple categories across time periods, with professional Python code and actionable business insights.
Sparse Temporal Data Patterns
Demonstrates stem plot (lollipop chart) for visualizing sparse event data where most days have zero occurrences, with threshold highlighting and pattern analysis.