Funnel chart
A funnel chart shows how a quantity shrinks as it moves through sequential stages. Each stage sits below the last, and each bar is narrower than the one above — so the whole shape literally looks like a funnel. It's the go-to chart when you want to see where people (or items, or deals) drop off along a process.
When to use it
Use a funnel chart when your data has these three qualities:
- Ordered stages. Step 2 only happens after step 1. If the stages are interchangeable, use a bar chart instead.
- Shrinking counts. Each stage should have fewer items than the one before. If counts go up and down, a funnel misleads — use a bar chart.
- Same unit across stages. All stages count the same kind of thing (people, orders, leads). You can't mix "visitors" and "dollars."
Common examples: sales pipelines, signup flows, hiring processes, checkout flows, customer support escalation.
Example data
Here's a week of data from an online shoe store. Each row is a stage in the checkout process, starting from people who landed on the site:
| Stage | Visitors | % of previous | % of top |
|---|---|---|---|
| Visited site | 10,000 | — | 100% |
| Viewed a product | 4,500 | 45% | 45% |
| Added to cart | 1,200 | 27% | 12% |
| Started checkout | 600 | 50% | 6% |
| Completed purchase | 380 | 63% | 3.8% |
The raw "Visitors" column is what you need for the chart. The two percentage columns are what make the chart useful to read.
How to read it
Two different rates tell two different stories:
- % of previous (stage-to-stage conversion) tells you where the worst leak is. In the table above, the biggest drop is 45% → 27% (product view to cart). That's the stage to investigate first.
- % of top (overall conversion) tells you the end-to-end success rate. 3.8% of visitors end up buying something, which is the single number to report to a manager.
A common mistake is staring at the absolute drop-off numbers. "We lost 5,500 people between visit and product view!" sounds alarming, but 55% browse-away is normal for any website. The stage-to-stage rate is what flags an actual problem.
How to build one
In a spreadsheet (Excel or Google Sheets)
- Put your stage names in column A and counts in column B.
- Select both columns.
- Excel: Insert → Charts → Funnel. Google Sheets: doesn't have a built-in funnel, so insert a bar chart and sort rows from largest to smallest — visually similar.
- Optional: add a third column with conversion percentages as labels.
With code (for a dashboard or report)
Most charting libraries have a funnel type built in. The pattern is always the same: give it an array of {stage, count} pairs.
// Using a library like Chart.js, Plotly, or Recharts
const data = [
{ stage: "Visited site", count: 10000 },
{ stage: "Viewed a product", count: 4500 },
{ stage: "Added to cart", count: 1200 },
{ stage: "Started checkout", count: 600 },
{ stage: "Completed purchase", count: 380 },
];
Tips
- Keep stages to 4–6. More than that and each bar gets too thin to compare; fewer and a bar chart would serve you better.
- Always show absolute counts, not just percentages. A 50% conversion looks great until you realize it's 50% of two people.
- Label the drop-off, not just the stage. The useful question is "how many did we lose here," and that number should be on the chart or in a caption.
- Don't use a funnel for things that aren't funnels. Age distributions, revenue by region, and survey responses all have ordered categories but no dropping-off process. Those are bar charts.