track('checkout_completed')
See where people leave, on every platform.
A funnel follows each person through the steps you pick, from a page view on your site to a purchase on your server, even when they switch devices on the way. Rabolic marks the biggest drop-off and splits every step by platform.
- 2 to 10 steps
- Up to a 90-day window
- Counted per person
Pricing to paid
User-based14-day window21.0%convertedPricing
$pageview
12.5K
100% of start
Sign-up
signup_completed
6.7K
54% of start
Biggest drop
Workout
workout_started
4.6K
37% of start
Paid
checkout_completed
2.6K
21% of start
how a funnel counts
Four decisions, made once.
Name the steps, give people time to finish, and Rabolic counts each person once, however many devices they used on the way.
- 1
steps
Pick the events, in order
Each step is an event: a page view, a screen, or anything you send with track(). Narrow a step to one platform, or to a property such as plan equals pro. A funnel has 2 to 10 steps.
- 2
windowDays: 14
Set the conversion window
From 1 to 90 days. A person counts for a step when they do it, in order, within the window after their first step. Other events in between don’t break the funnel.
- 3
person
Counted per person, across devices
Steps are matched per person after identity resolution, so a sign-up on the web and a first workout in the iOS app are the same person moving forward, not two half-funnels.
- 4
entry
Entry decides the breakdown
A person enters with their first step-1 event in the date range. The platform, channel and app version of that event are the ones the breakdowns use.
step timing
Know where people stall, and for how long.
Every step shows how many people reached it, the share that came from the step before, and the median time it took them. Rabolic names the biggest drop-off and the median time to convert, so the first question is already answered.
- Conversion rate, entered and completed, against the previous period
- People at each step, from the previous step and from the start
- The biggest drop-off and the median time to convert
- Conversion rate per day over the range
- 1Pricing$pageview12,480entered
- median 3m2Sign-upsignup_completed6,74054.0% from previous
- median 1d 2h3App first open$app_first_open4,62068.5% from previous
- median 4d4Paid$purchase2,62056.7% from previous
Biggest drop-off: Sign-up
46% of people who reach the previous step don’t continue.
Median time to convert: 5.2 days
From the first to the last step, within the 14-day conversion window.
breakdowns
One funnel, split three ways.
Compare how the same funnel converts on the web, on iOS and on Android, by the channel people came from, and by app version. A release that converts worse than the last one shows up as its own row.
- Platform: web, iOS and Android
- Channel: organic search, paid, social, email, AI referral, referral, direct
- App version: the five most used builds
Pricing to paid
PlatformChannelApp version- Web19.1%
- Android22.4%
- iOS24.3%
- Organic Search23.8%
- Direct20.6%
- Email27.1%
- Paid12.9%
- 4.12.024.7%
- 4.11.223.6%
- 4.11.021.4%
- 4.10.515.2%
21.0% overall · each person counts by the event they entered with
the events
Steps are the events you already send.
A funnel needs no extra tracking. Page views and screens come from the SDKs on their own; sign-ups and workouts are your track() calls; purchases come from your server. Save the funnel once and the whole team reads the same numbers.
$pageviewand$screenwithout any codetrack('signup_completed')on any platformpurchase()from your server, with a secret key- Saved funnels per project, with a live preview while you build
import { rabolic } from '@rabolic/web'
rabolic.init({ projectKey: 'rb_pub_…', trackRoutes: true })
// after signup or login
rabolic.identify(user.id, { plan: 'pro' })
rabolic.track('signup_completed', { method: 'google' })good to know
What a funnel won’t do.
- Per person, not per session
- Funnels count people. A funnel that must finish inside one visit isn’t available.
- Steps in order
- Each step has to come after the one before it. Any-order funnels aren’t available.
- Medians for timing
- Time between steps is a median. Averages and percentiles aren’t shown.
funnels faq
Funnels, answered.
Can one funnel mix web, app and server events?
Yes. Steps are matched per person after identity resolution, so a funnel can start with a $pageview on your site, continue with $app_first_open in your iOS or Android app, and end with a $purchase your server sends. Once identify() links the devices, they count as one person.
What is the conversion window?
The time a person has to complete the funnel after their first step, from 1 to 90 days. It is set per funnel; 7 days is the default.
Do the steps have to happen in order?
Yes. Each step has to come after the one before it within the window. Other events in between are allowed, so a visit to your blog between pricing and sign-up doesn’t break the funnel.
Are funnels counted per user or per session?
Per person. Session-based funnels, where every step has to happen in one visit, aren’t available.
What can I break a funnel down by?
Platform (web, iOS, Android), the channel people arrived from, and app version (the five most common). Each person is counted by the step-1 event they entered with.
How is the time between steps measured?
As the median time from each step to the next among the people who made it, and the median time from the first step to the last among the people who converted.
Can I filter a step by a property?
Yes. A step can require a property to equal, not equal, contain, be greater or less than a value, or just exist. A step can also be limited to one platform.
What does the small-sample flag mean?
When fewer than 300 people entered a funnel in the range, Rabolic marks it, because a few people can move the rates a lot.
Find your biggest drop-off this week.
Start a 3-day trial without a card. It begins with your first event, so you can set up the SDKs first.
- 1
Create a project
Sign up, name your project, and copy its publishable key.
- 2
Add an SDK
Web, React Native, Flutter or Node.js, or the HTTP API. Or run npx rabolic init.
- 3
Watch the first event arrive
It shows in live events within seconds, and your trial starts then.