Funnels that name the step losing the most people
Build a funnel from pages and events, and Metrickle shows how many people reach each step, how long they take, and which step leaks the most. Split it by campaign, device or accessibility setting to see who leaks.
Biggest leak: /checkout → /checkout/pay (−57%)
Start with what counts as a conversion
A goal is any custom event or any page. Page goals take a trailing * wildcard, so /thanks/* counts every thank-you page as one goal.
Once a goal exists, conversions and conversion rate appear on every breakdown: pages, entry pages, referrers, campaigns, countries, devices and app versions.
- Events or pages:
signup,orderor/welcome, whichever your app already has. - Revenue per event: send a numeric
revenueproperty and it's summed per app, page, source and campaign. - Web and mobile alike: screens from the mobile SDKs work as page steps, and events work everywhere.
// Pages are tracked automatically.
// Steps that aren't pages take one line each.
metrickle.track("add_to_cart", { sku: "tulip-12" });
// A numeric revenue property is summed
// per page, source and campaign.
metrickle.track("order", { revenue: 49 });
Every step, measured two ways
A funnel is two to ten ordered steps. Each step is a page (with a trailing * wildcard) or an event. Someone counts for a step only if they reached every step before it, in order, within the funnel's time window.
The window runs from the moment someone enters step 1, and can be anything up to 90 days. A one-hour window suits a checkout. Thirty days suits a trial that should end in an upgrade.
- Conversion from the previous step shows where people stop. Conversion from step 1 shows how much of the start is left.
- Median time between steps shows where people hesitate, even when they do carry on.
- The biggest leak is named in words above the chart, so you don't have to compare bars to find it.
| Step | From previous | Median time |
|---|---|---|
1. /product/* | – | – |
2. add_to_cart | 22% | 1m 52s |
3. /checkout | 64% | 38s |
4. /checkout/pay (biggest leak) | 43% | 3m 05s |
5. order | 63% | 1m 21s |
Shipping costs arrive at step 4. Fewer than half of the people who start checkout reach payment, and they spend three minutes getting there.
Split any funnel to see who leaks
Every filter in the dashboard works on funnels. Two kinds behave differently, on purpose.
- Campaign, source and referrer filters apply to the whole session. They're read from the landing page, so a purchase five pages later still counts for the campaign that brought the visitor.
- Other filters apply to every step. Filter by path, device, country, browser or app version and each step has to match it.
- Accessibility settings: compare keyboard, zoom, large text, forced colours or reduced motion against people using none.
- Survey answers: “people who gave checkout effort a 5 or more” is a filter like any other.
| Segment | Chart | Converted |
|---|---|---|
| Desktop | 5.8% | |
| utm_campaign = spring-sale | 4.7% | |
| Mobile | 2.9% | |
| Keyboard navigation | 1.7% |
Keyboard users convert at less than half the average. The next stop is the friction report for /checkout/pay, filtered to keyboard sessions.
When you only care whether people finish
Some questions don't need five steps. A task is a start step and a success step, with a time limit of up to 30 days. It tells you how often people finish what they set out to do, and what happened when they didn't.
- Success rate, with median and p90 time on task for the attempts that succeeded.
- Where abandoned attempts stopped: the last page or screen reached before giving up.
- Friction in failed attempts versus successful ones, so you see what separates them.
- Split by accessibility setting, for usability studies without a lab.
Pick a start
An event or page that means someone has begun, such as
/checkoutorexport_opened.Pick a success
The event or page that means they finished, such as
orderorexport_done.Set the limit
How long an attempt can run before it counts as abandoned. The default is 30 minutes.
Let an assistant find the real steps
Guessing event names is the slowest part of building a funnel. Connect Claude or another MCP client and use the build-funnel prompt: it looks up the pages and events your app actually records, runs the funnel to check every step has data, names the biggest leak, checks the friction on that step, and offers to save the funnel once you agree.
Saving needs a token with “Read and draft” access. Tokens can create goals, funnels, tasks and survey drafts, and that's the limit of what they can change.
Common questions
How long can a funnel's time window be?
Up to 90 days, measured from the moment someone reaches step 1. The default is one day. Someone who reaches a later step after the window has closed doesn't count for it.
Do people have to complete the steps in order?
Yes. A person counts for a step only if they reached every step before it, in order. Pages and events can be mixed freely, and page steps accept a trailing * wildcard such as /product/*.
Why do campaign filters behave differently from path filters?
UTM parameters and the referrer describe how a session started, so they apply to the whole session. A path or device filter describes each event, so every step has to match it. That way a purchase is credited to the campaign that brought the visitor, even pages later.
Should I use a funnel or a task?
Use a funnel when you want to see every step between start and finish. Use a task when you only need to know whether people finish, how long it takes, and where the rest gave up. Tasks allow a limit of up to 30 days.
Do funnels work on data I've already collected?
Yes. Funnels, goals and tasks are definitions run over your stored events, so a new funnel shows results for any past period straight away.
See where your apps break, and who they break for
Free to start. One script tag on the web, one SDK on mobile, and no cookie banner in cookieless mode.
Start tracking for free