Claude-skill-registry growth-marketing
Эксперт по growth-маркетингу. Используй для growth hacking, A/B тестов, воронок, viral loops и экспериментов роста.
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/growth-marketing" ~/.claude/skills/majiayu000-claude-skill-registry-growth-marketing && rm -rf "$T"
manifest:
skills/data/growth-marketing/SKILL.mdsource content
Growth Marketing Expert
Expertise in growth experimentation, funnel optimization, and data-driven marketing.
Core Competencies
Growth Experimentation
- Hypothesis development
- A/B and multivariate testing
- Statistical significance
- Experiment prioritization (ICE/PIE)
- Learning documentation
Funnel Optimization
- Conversion rate optimization (CRO)
- Landing page optimization
- Sign-up flow optimization
- Activation improvement
- Retention mechanics
Analytics & Data
- Funnel analytics
- Cohort analysis
- Attribution modeling
- Predictive analytics
- Customer segmentation
The Growth Framework
AARRR (Pirate Metrics)
Acquisition: question: How do users find you? metrics: - Traffic by source - Cost per acquisition - Click-through rate tactics: - SEO & content marketing - Paid acquisition - Viral/referral - Partnerships Activation: question: Do users have a great first experience? metrics: - Sign-up rate - Onboarding completion - Time to value - Feature adoption tactics: - Onboarding optimization - Progressive profiling - Quick wins - Personalization Retention: question: Do users come back? metrics: - DAU/MAU ratio - Cohort retention curves - Churn rate - Feature stickiness tactics: - Email/push engagement - Feature releases - Community building - Habit loops Revenue: question: How do you make money? metrics: - ARPU/ARPA - LTV - Conversion to paid - Expansion revenue tactics: - Pricing optimization - Upsell flows - Reduction of friction - Value demonstration Referral: question: Do users tell others? metrics: - Viral coefficient (K-factor) - Referral conversion - NPS - Share rate tactics: - Referral programs - Social proof - Word of mouth - Product virality
Growth Levers
def calculate_growth_impact(metrics): """Calculate impact of improving each growth lever.""" levers = { 'traffic': { 'current': metrics['monthly_visitors'], 'improvement': 0.20, # 20% more traffic 'impact': metrics['monthly_visitors'] * 0.20 * metrics['conversion_rate'] * metrics['arpu'] }, 'conversion': { 'current': metrics['conversion_rate'], 'improvement': 0.25, # 25% better conversion 'impact': metrics['monthly_visitors'] * (metrics['conversion_rate'] * 0.25) * metrics['arpu'] }, 'frequency': { 'current': metrics['purchases_per_year'], 'improvement': 0.15, # 15% more frequent 'impact': metrics['customers'] * (metrics['purchases_per_year'] * 0.15) * metrics['aov'] }, 'aov': { 'current': metrics['aov'], 'improvement': 0.10, # 10% higher AOV 'impact': metrics['customers'] * metrics['purchases_per_year'] * (metrics['aov'] * 0.10) }, 'retention': { 'current': metrics['retention_rate'], 'improvement': 0.05, # 5% better retention 'impact': calculate_ltv_improvement(metrics, 0.05) } } return sorted(levers.items(), key=lambda x: x[1]['impact'], reverse=True)
Experimentation Process
ICE Prioritization Framework
def calculate_ice_score(experiments): """Score experiments using ICE framework.""" scored = [] for exp in experiments: ice_score = ( exp['impact'] * # 1-10: potential business impact exp['confidence'] * # 1-10: confidence in hypothesis exp['ease'] # 1-10: ease of implementation ) / 3 scored.append({ 'name': exp['name'], 'hypothesis': exp['hypothesis'], 'ice_score': ice_score, 'impact': exp['impact'], 'confidence': exp['confidence'], 'ease': exp['ease'] }) return sorted(scored, key=lambda x: x['ice_score'], reverse=True)
Experiment Template
Experiment Name: Homepage CTA Button Color Test Hypothesis: statement: "Changing the CTA button from blue to orange will increase clicks" reasoning: "Orange creates more urgency and stands out from our blue brand" Metrics: primary: CTA click rate secondary: - Sign-up conversion - Time on page - Bounce rate Test Design: type: A/B test control: Blue button (#3498db) variant: Orange button (#e67e22) traffic_split: 50/50 sample_size_needed: 10,000 per variant duration: 14 days minimum Success Criteria: minimum_detectable_effect: 10% statistical_significance: 95% Segmentation: - New vs returning visitors - Mobile vs desktop - Traffic source
Statistical Significance Calculator
import scipy.stats as stats import numpy as np def calculate_sample_size(baseline_rate, mde, alpha=0.05, power=0.80): """Calculate required sample size for A/B test.""" effect_size = mde * baseline_rate # Z-scores for significance level and power z_alpha = stats.norm.ppf(1 - alpha/2) z_beta = stats.norm.ppf(power) # Pooled standard deviation p1 = baseline_rate p2 = baseline_rate * (1 + mde) pooled_var = p1*(1-p1) + p2*(1-p2) # Sample size per group n = (2 * pooled_var * (z_alpha + z_beta)**2) / (effect_size**2) return int(np.ceil(n)) def analyze_ab_test(control_visitors, control_conversions, variant_visitors, variant_conversions): """Analyze A/B test results.""" control_rate = control_conversions / control_visitors variant_rate = variant_conversions / variant_visitors # Lift calculation lift = (variant_rate - control_rate) / control_rate # Statistical test contingency = [[control_conversions, control_visitors - control_conversions], [variant_conversions, variant_visitors - variant_conversions]] chi2, p_value, dof, expected = stats.chi2_contingency(contingency) return { 'control_rate': control_rate, 'variant_rate': variant_rate, 'lift': lift, 'lift_percent': f"{lift:.1%}", 'p_value': p_value, 'significant': p_value < 0.05, 'confidence': 1 - p_value }
Funnel Analysis
Conversion Funnel Tracking
-- Funnel analysis query WITH funnel AS ( SELECT user_id, MIN(CASE WHEN event = 'page_view' THEN timestamp END) as viewed, MIN(CASE WHEN event = 'signup_started' THEN timestamp END) as started, MIN(CASE WHEN event = 'signup_completed' THEN timestamp END) as completed, MIN(CASE WHEN event = 'first_purchase' THEN timestamp END) as purchased FROM events WHERE timestamp >= CURRENT_DATE - INTERVAL '30 days' GROUP BY user_id ) SELECT COUNT(viewed) as step_1_viewed, COUNT(started) as step_2_started, COUNT(completed) as step_3_completed, COUNT(purchased) as step_4_purchased, -- Conversion rates ROUND(COUNT(started)::decimal / NULLIF(COUNT(viewed), 0) * 100, 2) as view_to_start, ROUND(COUNT(completed)::decimal / NULLIF(COUNT(started), 0) * 100, 2) as start_to_complete, ROUND(COUNT(purchased)::decimal / NULLIF(COUNT(completed), 0) * 100, 2) as complete_to_purchase, ROUND(COUNT(purchased)::decimal / NULLIF(COUNT(viewed), 0) * 100, 2) as overall_conversion FROM funnel;
Cohort Retention Analysis
-- Weekly cohort retention WITH cohort_data AS ( SELECT user_id, DATE_TRUNC('week', first_seen) as cohort_week, DATE_TRUNC('week', activity_date) as activity_week FROM user_activity ), cohort_size AS ( SELECT cohort_week, COUNT(DISTINCT user_id) as users FROM cohort_data GROUP BY cohort_week ), retention AS ( SELECT c.cohort_week, EXTRACT(WEEK FROM c.activity_week - c.cohort_week) as week_number, COUNT(DISTINCT c.user_id) as retained_users FROM cohort_data c GROUP BY c.cohort_week, week_number ) SELECT r.cohort_week, cs.users as cohort_size, r.week_number, r.retained_users, ROUND(r.retained_users::decimal / cs.users * 100, 2) as retention_rate FROM retention r JOIN cohort_size cs ON r.cohort_week = cs.cohort_week ORDER BY r.cohort_week, r.week_number;
Key Metrics
| Metric | Formula | Benchmark |
|---|---|---|
| Conversion Rate | Conversions / Visitors | 2-5% (varies) |
| CAC | Marketing Spend / New Customers | Varies by industry |
| LTV | ARPU × Average Lifetime | 3x CAC minimum |
| Payback Period | CAC / Monthly Revenue per Customer | <12 months |
| NRR | (Start + Expansion - Churn) / Start MRR | >100% |
| K-factor | Invites × Conversion Rate | >1 for virality |
| DAU/MAU | Daily Active / Monthly Active | 20-50% |
Viral Loop Design
Types of Virality: inherent: description: Product requires others to use examples: Slack, Zoom, Dropbox sharing k_factor_potential: High (1.5-3.0) artificial: description: Incentivized referrals examples: Dropbox space, Uber credits k_factor_potential: Medium (0.5-1.5) word_of_mouth: description: Organic recommendations examples: Great products, NPS > 50 k_factor_potential: Low-Medium (0.2-0.8) Viral Loop Optimization: - Reduce friction in invite flow - Clear value proposition for inviter AND invitee - Multiple sharing channels - Timing of ask (after value delivered) - Social proof in referral message
Tools Proficiency
Analytics
- Product: Amplitude, Mixpanel, Heap
- Web: Google Analytics 4, Plausible
- Data Warehouse: BigQuery, Snowflake
Testing
- A/B Testing: Optimizely, VWO, LaunchDarkly
- Feature Flags: Split, Flagsmith
- Session Recording: FullStory, Hotjar
Visualization
- BI: Tableau, Looker, Mode
- Dashboards: Metabase, Redash
Attribution
- Mobile: Branch, Adjust, AppsFlyer
- Web: Segment, mParticle
Automation
- Lifecycle: Iterable, Customer.io, Braze
- In-app: Appcues, Pendo, Intercom
Лучшие практики
- Hypothesis-driven — каждый эксперимент начинается с гипотезы
- Statistical rigor — достаточный sample size и significance
- One variable — тестируйте одну переменную за раз
- Document learnings — даже failed эксперименты ценны
- Quick iterations — много маленьких тестов лучше одного большого
- North Star focus — оптимизируйте главную метрику