Funnel Visualization is a growth-analytics widget that renders a multi-stage conversion funnel with drop-off percentages and optional CTAs per step. It composes the existing ProgressBar component to visualize stage-to-stage conversion rates. The widget is designed for SaaS dashboards where teams track user progression through signup, activation, and retention funnels.
Goals
Deliver a <FunnelVisualization> component that renders an ordered list of funnel stages with conversion rates and drop-off percentages.
Compose ProgressBar for per-stage visualization of conversion relative to the first stage.
Support an optional CTA button per stage for actionable funnel analysis.
Ship Storybook stories with realistic growth analytics data.
Non-Goals
Interactive funnel editing or drag-to-reorder stages.
Animated transitions between funnel states (deferred to motion enhancement).
Horizontal or diagonal funnel shapes (vertical list layout only).
Backend funnel calculation or event tracking integration.
Scope
In Scope
Area
Description
Component
<FunnelVisualization> rendering ordered stages with metrics
Stage Rendering
Each stage shows name, count, conversion %, and drop-off % from previous stage
Progress Bars
ProgressBar composition showing conversion relative to stage-1 count
CTAs
Optional action button per stage (e.g., “View Users”, “Send Nudge”)
States
Loading skeleton, empty state, error state
Stories
Storybook stories covering typical funnels, edge cases, and themed variants
Out of Scope
Area
Reason
Funnel shape (trapezoid/triangle SVG)
Horizontal bar/list layout is more accessible and composable
Branching funnels
Linear funnel only; branching is a different data model
Real-time updates
Consumer handles data refresh
Click-through to filtered user lists
Application-layer concern
Users and Pain Points
User Groups
User
Description
Needs
Developers
Engineers building growth dashboards
A composable funnel widget that uses DS primitives
Growth PMs
Product managers analyzing conversion
Visual funnel with drop-off rates at each stage
Designers
Design-system consumers
Token-aligned funnel that matches the DS visual language
Pain Points
User
Pain Point
Impact
Developers
Building funnels from scratch using divs and inline styles
Inconsistent funnels across products, high development cost
Growth PMs
Existing dashboards show raw numbers without visual drop-off indicators
Harder to identify conversion bottlenecks
Definitions
Term
Definition
Funnel
An ordered sequence of stages through which users progress, with decreasing counts at each stage
Drop-off
The percentage of users who did not progress from one stage to the next
Conversion Rate
The percentage of stage-1 users who reached a given stage
Stage CTA
An optional action button associated with a funnel stage
Current State
Existing Behavior
The design system has ProgressBar for single-value progress visualization but no funnel-specific component. Dashboard teams build funnels ad hoc using stacked divs with inline percentage widths.
Current Limitations
No funnel component or pattern exists in the design system.
ProgressBar is a standalone bar, not designed for sequential stage composition.
Drop-off calculation and display are left entirely to consumers.
Existing Workarounds
Teams build custom funnel UIs with hardcoded styles and manual percentage calculations.
Some teams use third-party chart libraries that do not align with DS tokens.
Proposed Solution
Summary
Introduce <FunnelVisualization> that accepts a stages array where each stage has a name, count, and optional CTA config. The component calculates conversion rates and drop-off percentages automatically, renders each stage as a row with a ProgressBar (width proportional to stage-1 count), stage name, metrics, and optional CTA button.
Key Capabilities
Automatic conversion rate and drop-off calculation from raw stage counts.
ProgressBar per stage scaled to the first stage’s count (100%).
Drop-off indicator between stages showing the percentage lost.
Optional CTA button per stage with onClick callback.
Accessible summary table for screen readers.
User Experience
Users see a vertical list of funnel stages. Each stage shows a progress bar (wider at top, narrower at bottom), the stage name, user count, conversion rate from stage 1, and the drop-off percentage from the previous stage. Between stages, a subtle connector shows the drop-off. Optional CTA buttons appear on the right side of each stage row.