All examples for Data Visualization Chart Recommender

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:

  1. Top 3 efficiency winners (Direct, Referral, Email) deliver 50x+ ROI
  2. Paid channels require optimization - LinkedIn, Google, YouTube have 4-7x ratios
  3. Retention is the multiplier - 20% increase translates to 3x LTV difference
  4. Capital allocation strategy - shift budget toward organic/referral infrastructure