
Funnel Analysis
Analyze sequential conversion steps, quantify drop-off, and prioritize fixes when users stall before purchase, signup, or feature adoption.
Overview
Funnel Analysis is an agent skill most often used in Grow (also Validate and Ship) that structures conversion funnels, surfaces drop-off points, and ties metrics to optimization work.
Install
npx skills add https://github.com/aj-geddes/useful-ai-prompts --skill funnel-analysisWhat is this skill?
- Defines funnel stages from entry through goal completion with drop-off and per-stage conversion rates
- Covers key metrics: drop-off rate, conversion rate, funnel efficiency, and friction-oriented problem areas
- When-to-use triggers: bottlenecks, segments, onboarding adoption, journey efficiency, and A/B funnel variants
- Includes Python-oriented implementation patterns with pandas, numpy, and visualization (matplotlib/seaborn)
- Supports comparing performance across traffic sources or cohorts for optimization decisions
- Core metrics: drop-off rate, per-stage conversion rate, funnel efficiency, friction score framing
Adoption & trust: 560 installs on skills.sh; 250 GitHub stars; 3/3 security scanners passed (skills.sh audits).
What problem does it solve?
You see traffic or activations but cannot tell which step bleeds users or whether a segment or onboarding change actually improved progression.
Who is it for?
Indie SaaS or storefront owners optimizing signup-to-paid, onboarding checkpoints, or feature adoption with event data or exports.
Skip if: Brand-new ideas with zero instrumentation where you still need qualitative discovery instead of quantitative funnels.
When should I use this skill?
Optimizing conversion paths, identifying bottlenecks, comparing segments, measuring onboarding or feature adoption, improving journey efficiency, or A/B testing funnel designs.
What do I get? / Deliverables
You get a staged funnel model with defined metrics and analysis patterns so you can rank friction points and test funnel or UX changes with measurable stage conversion.
- Stage-labeled funnel with conversion and drop-off interpretation
- Python-oriented analysis and visualization approach for friction hotspots
Recommended Skills
Journey fit
Spans multiple journey phases - primary shelf plus alternate fits below.
Grow is the canonical home for funnel metrics, segment comparisons, and ongoing conversion optimization after you have traffic and events to measure. Analytics subphase matches drop-off rates, stage conversion, funnel efficiency, and friction scoring backed by data workflows.
Where it fits
Measure how many trial users reach billing versus abandon on the plan-selection step.
Track launch-week landing-to-waitlist or install funnels to spot a broken intermediate step.
Rank stages by drop-off rate and segment by channel to decide what to fix this sprint.
Evaluate feature-adoption funnels after lifecycle campaigns to see if activation improved.
How it compares
Use for stepwise conversion math and drop-off diagnosis—not as a substitute for full product analytics platform setup or MCP warehouse connectors.
Common Questions / FAQ
Who is funnel analysis for?
Solo builders and small teams responsible for growth metrics who need a clear funnel definition and analysis recipe without a dedicated data team.
When should I use funnel analysis?
In Grow for ongoing conversion and lifecycle analytics; in Validate when measuring onboarding or pricing-page experiments; in Ship when checking launch-window signup-to-activation paths.
Is funnel analysis safe to install?
Check the Security Audits panel on this page; funnel work often touches production analytics exports—avoid piping live secrets into prompts.
SKILL.md
READMESKILL.md - Funnel Analysis
# Funnel Analysis ## Overview Funnel analysis tracks user progression through sequential steps, identifying where users drop off and optimizing each stage for better conversion. ## When to Use - When optimizing user conversion paths and improving conversion rates - When identifying bottlenecks and drop-off points in user flows - When comparing performance across different segments or traffic sources - When measuring product feature adoption or onboarding effectiveness - When improving customer journey efficiency and user experience - When A/B testing different funnel configurations or designs ## Funnel Structure - **Stage 1**: Initial entry (landing page, app open) - **Stage 2-N**: Intermediate steps (signup, selection, payment) - **Final Stage**: Goal completion (purchase, subscription, sign-up) - **Drop-off**: Users not progressing to next stage - **Conversion Rate**: % progressing to next step ## Key Metrics - **Drop-off Rate**: % leaving at each stage - **Conversion Rate**: % progressing per stage - **Funnel Efficiency**: Overall conversion (Stage 1 to Final) - **Friction Score**: Identifying problem areas ## Implementation with Python ```python import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns # Create sample funnel data np.random.seed(42) funnel_stages = ['Landing Page', 'Sign Up', 'Product Selection', 'Add to Cart', 'Checkout', 'Payment', 'Confirmation'] # Simulate user journey (progressive drop-off) data = [] users_at_stage = 100000 for i, stage in enumerate(funnel_stages): # Progressively lower retention drop_off_rate = 0.15 + (i * 0.05) # Increasing drop-off users_at_stage = int(users_at_stage * (1 - drop_off_rate)) for _ in range(users_at_stage): data.append({ 'user_id': f'user_{np.random.randint(0, 1000000)}', 'stage': stage, 'timestamp': np.random.randint(0, 365), }) df = pd.DataFrame(data) # 1. Funnel Counts funnel_counts = df['stage'].value_counts().reindex(funnel_stages) print("Funnel Counts by Stage:") print(funnel_counts) # 2. Funnel Metrics funnel_metrics = pd.DataFrame({ 'Stage': funnel_stages, 'Users': funnel_counts.values, }) funnel_metrics['Drop-off'] = funnel_metrics['Users'].shift(1) - funnel_metrics['Users'] funnel_metrics['Drop-off %'] = (funnel_metrics['Drop-off'] / funnel_metrics['Users'].shift(1) * 100).round(2) funnel_metrics['Conversion %'] = (funnel_metrics['Users'] / funnel_metrics['Users'].iloc[0] * 100).round(2) print("\nFunnel Metrics:") print(funnel_metrics) # 3. Visualization - Funnel Chart fig, axes = plt.subplots(1, 2, figsize=(14, 6)) # Traditional funnel visualization ax = axes[0] colors = plt.cm.RdYlGn_r(np.linspace(0.3, 0.7, len(funnel_metrics))) for idx, (stage, users) in enumerate(zip(funnel_metrics['Stage'], funnel_metrics['Users'])): # Create trapezoid-like bars width = users / funnel_metrics['Users'].max() y_pos = len(funnel_metrics) - idx - 1 ax.barh(y_pos, width, left=(1 - width) / 2, height=0.6, color=colors[idx], edgecolor='black') ax.text(-0.05, y_pos, stage, ha='right', va='center', fontsize=10) ax.text(0.5, y_pos, f"{users:,}", ha='center', va='center', fontsize=9, fontweight='bold') ax.set_xlim(0, 1) ax.set_ylim(-0.5, len(funnel_metrics) - 0.5) ax.set_xticks([]) ax.set_yticks([]) ax.set_title('Conversion Funnel') # Step-by-step conversion ax2 = axes[1] x_pos = np.arange(len(funnel_stages)) colors2 = plt.cm.Spectral(np.linspace(0, 1, len(funnel_stages))) bars = ax2.bar(x_pos, funnel_metrics['Users'], color=colors2, edgecolor='black', alpha=0.7) # Add value labels for i, (bar, users, conv) in enumerate(zip(bars, funnel_metrics['Users'], funnel_metrics['Conversion %'])): height = bar.get_height() ax2.text(bar.get_x()