Funnel analysis counts how many users reach each step of a journey, then shows the step where the most are lost. This article runs one on a mobile app from install to purchase, with the event definitions and the arithmetic written out.
What funnel analysis means for an app
A funnel is an ordered set of steps. The analysis compares each step with the one before it and with the start, so you see both where users stop and how much of the original group is left.
For an app, the conversion funnel runs from install through onboarding to the paywall and the purchase. Product managers, growth owners and UX designers use it to decide which screen to look at first, before spending time on anything else.
ActivationPal builds this funnel for you from a small set of fixed events. It covers Native Swift, Native Android, Flutter and React Native / Expo apps. It does not do web funnels.
Define each event before you count
A funnel is only as good as its event definitions. If two people read "completed onboarding" differently, the numbers mean nothing. In ActivationPal the stages map to fixed events:
| Stage | Event | Fires when |
|---|
| Installed | first_open | Once per install, automatically |
| Each onboarding step | onboarding_step | A step is reached, with an index and an id |
| Completed | onboarding_completed | Onboarding finishes |
| Paywall shown | paywall_shown | The paywall appears, with a placement |
| Plan selected | paywall_plan_selected | A plan is tapped, with the plan |
| Purchased | paywall_purchased | A purchase succeeds, with the plan |
Setup is one SDK install and a call per event; the quickstart has the steps and the events reference has the full vocabulary.
The counting rules decide what the numbers mean:
- Every stage counts unique devices, not events.
- The base is the install cohort: devices whose
first_open falls inside the selected range. No stage can exceed 100% of installs.
- A stage event must also fall inside the range. A purchase after the range closes is not counted, so recent installs have had less time to reach later stages.
- Order is not checked. A device counts at a stage if it sent that event in the range. Onboarding steps are sorted by their
index.
Funnel analysis example: 4,000 installs to 156 purchases
Take a workout app with 4,000 installs in a 30-day range and a four-step onboarding. The numbers below are an illustration. Percentages and rates are rounded to one decimal.
| Stage | Users | % of installs | Step rate | Lost |
|---|
| Installed | 4,000 | 100% | | |
| Your goal | 3,760 | 94.0% | 94.0% | 240 |
| Experience level | 3,480 | 87.0% | 92.6% | 280 |
| Weekly schedule | 3,200 | 80.0% | 92.0% | 280 |
| Notifications | 2,960 | 74.0% | 92.5% | 240 |
| Completed | 2,800 | 70.0% | 94.6% | 160 |
| Paywall shown | 2,600 | 65.0% | 92.9% | 200 |
| Plan selected | 1,040 | 26.0% | 40.0% | 1,560 |
| Purchased | 156 | 3.9% | 15.0% | 884 |
This is the funnel analysis chart in table form. The dashboard draws the same stages as bars, each with its count and share of installs.
How to calculate drop-off between funnel steps
Three formulas cover the whole table:
- Step rate = users at the step / users at the previous step
- Drop-off = 1 minus the step rate
- Overall conversion = users at the last stage / installs
Take the move from paywall shown to plan selected. 1,040 / 2,600 is a 40.0% step rate, so drop-off is 60.0% and 1,560 users are lost. Overall conversion is 156 / 4,000, which is 3.9%.
ActivationPal shows the step rate and the users lost when you hover a stage. To run the same arithmetic on your own numbers, use the funnel calculator.
Which funnel step to inspect next
Read the table two ways. First, compare the step rates. The four onboarding steps and the move to the completed stage all keep between 92.0% and 94.6%, so no single screen stands out.
Second, compare the users lost. Of the 3,844 users who never purchased (4,000 minus 156), 2,444 dropped between the paywall and the purchase: 1,560 before choosing a plan and 884 after. The two weakest rates, 40.0% and 15.0%, sit in the same place. Inspect the paywall next.
Open these in the product:
- The plan split under the plan selected and purchased rows, to see whether one plan attracts taps but not purchases.
- The placements card for
paywall_shown, to see which placement the paywall appears in.
- The users behind a stage. Click a stage to list the devices that reached it.
Paywall conversion is purchased divided by paywall shown: 156 / 2,600 is 6.0%. Overall conversion is 3.9%. The dashboard reports both as separate headlines, and the gap between them is the onboarding loss.
The funnel locates the leak. It does not explain it. To find the cause, compare the same stage against the previous period or a different install window. After the purchase, use the cohort analysis tool to follow retention.
What a funnel analysis cannot tell you
- Counts are devices, not people. One person on two devices counts twice.
- Stages are not order-checked, so a stage can in principle be larger than the one before it.
- Installs near the end of the range have not had time to reach the paywall or buy.
- Small stage counts swing the rates. A few users can move a step rate by several points.
- Custom events are outside the funnel. It is fixed: installed, onboarding steps, completed, paywall shown, plan selected, purchased.
- Web and sales funnels are out of scope for ActivationPal.