Subscription funnels fail in a few recognizable shapes
Give me eight of your numbers and the shape of the problem usually declares itself. Top of funnel, monetization, or retention. Here are the two shapes I see most, why a blended median hides both, and how to build the column you should actually be compared against.

Subscription funnels do not fail in a thousand ways. They fail in a small number of recognizable shapes, and the shape shows up fast once the numbers sit next to the right benchmarks. The clearest one is the AI-app signature: install-to-trial below benchmark, trial-to-paid at or above it, renewals fine, revenue per payer a little light. That reads as a monetization problem and it is a top-of-funnel problem. A blended cross-vertical median hides it, because that median is freemium-weighted and flatters some apps while punishing others.
Give me eight of your numbers and I can usually tell you whether your problem is top of funnel, monetization, or retention.
Not because I am clever. Because subscription funnels fail in a small number of recognizable shapes, and once the numbers sit next to the right benchmarks, the shape declares itself in about ten minutes.
The hard part is not the diagnosis. It is having something honest to compare against.
The eight numbers
Before any shape appears, you need the same small set every time. Install to trial. Trial to paid. Install to paid. Early retention, whichever day marker your category uses. Renewal rate at the first billing period. Revenue per payer. The plan mix between monthly and annual. And refund or cancellation rate.
That is the set. Eight numbers, and most teams can pull all of them in an afternoon.
What makes them useful together is that each one isolates a different stage. Install to trial is about the paywall's first impression. Trial to paid is about whether the product delivered inside the window. Renewals are about whether it kept delivering. Revenue per payer is about the ladder you put in front of them. Read alone, each number is ambiguous. Read as a set, they form a pattern.
The AI-app signature is the clearest one
This is the shape I see most often right now, and it is the one that gets misdiagnosed most often too.
Install to trial sits below benchmark. Trial to paid sits at or above it. Renewal retention is fine. Revenue per payer is a little light.
Almost every team reads that as a monetization problem, because the revenue number is the one that hurts and it is the one the board asks about. It is a top-of-funnel problem wearing a monetization costume. The people who make it past the first screen convert well and stay, which tells you the product is doing its job. Not enough of them get that far.
The fix is at the paywall's first impression. Presentation, trust, comprehension, what a stranger understands in four seconds. Not the price, and not the plan ladder.
<text x="30" y="90" font-size="13" font-weight="800" fill="hsl(var(--chart-1))">The AI-app signature</text>
<text x="30" y="108" font-size="11.5" fill="hsl(var(--muted-foreground))">Top of funnel. Fix the paywall's first impression.</text>
<line x1="30" y1="160" x2="690" y2="160" stroke="hsl(var(--border))" stroke-width="1" stroke-dasharray="5 5"/>
<text x="30" y="152" font-size="10.5" fill="hsl(var(--muted-foreground))">benchmark</text>
<circle cx="200" cy="196" r="8" fill="hsl(var(--chart-1))"/>
<circle cx="360" cy="126" r="8" fill="hsl(var(--muted-foreground))"/>
<circle cx="510" cy="160" r="8" fill="hsl(var(--muted-foreground))"/>
<circle cx="650" cy="178" r="8" fill="hsl(var(--muted-foreground))"/>
<text x="200" y="228" text-anchor="middle" font-size="11" font-weight="700" fill="hsl(var(--foreground))">Install to trial</text>
<text x="360" y="228" text-anchor="middle" font-size="11" fill="hsl(var(--muted-foreground))">Trial to paid</text>
<text x="510" y="228" text-anchor="middle" font-size="11" fill="hsl(var(--muted-foreground))">Renewals</text>
<text x="650" y="228" text-anchor="middle" font-size="11" fill="hsl(var(--muted-foreground))">Rev per payer</text>
<text x="30" y="286" font-size="13" font-weight="800" fill="hsl(var(--chart-2))">The product-value shape</text>
<text x="30" y="304" font-size="11.5" fill="hsl(var(--muted-foreground))">No paywall change rescues this one.</text>
<line x1="30" y1="356" x2="690" y2="356" stroke="hsl(var(--border))" stroke-width="1" stroke-dasharray="5 5"/>
<text x="30" y="348" font-size="10.5" fill="hsl(var(--muted-foreground))">benchmark</text>
<circle cx="200" cy="322" r="8" fill="hsl(var(--muted-foreground))"/>
<circle cx="360" cy="392" r="8" fill="hsl(var(--chart-2))"/>
<circle cx="510" cy="398" r="8" fill="hsl(var(--chart-2))"/>
<circle cx="650" cy="382" r="8" fill="hsl(var(--chart-2))"/>
<text x="200" y="424" text-anchor="middle" font-size="11" fill="hsl(var(--muted-foreground))">Install to trial</text>
<text x="360" y="424" text-anchor="middle" font-size="11" font-weight="700" fill="hsl(var(--foreground))">Trial to paid</text>
<text x="510" y="424" text-anchor="middle" font-size="11" font-weight="700" fill="hsl(var(--foreground))">Renewals</text>
<text x="650" y="424" text-anchor="middle" font-size="11" font-weight="700" fill="hsl(var(--foreground))">Rev per payer</text>
The opposite shape, and the quarter it costs you
The mirror image shows up just as often. Strong install to trial, weak trial to paid, weak renewals.
That is a product-value problem. People are getting in easily and leaving anyway, which means the trial is not proving anything worth paying for. No paywall change is going to rescue it. I have watched teams spend a full quarter A/B testing a paywall that was converting fine, because the paywall is the surface everyone knows how to change and the product is the thing nobody wants to reopen.
The tell that separates the two shapes is what happens after the money. If renewals hold, the product works and your problem is upstream. If renewals sag, the problem is the product, and every hour spent on the purchase screen is an hour spent making a leaky bucket prettier.
Why a blended median hides both shapes
Here is what makes this hard in practice. Both shapes look identical when you compare against a blended cross-vertical median.
That median is freemium-weighted. It pools hard-paywalled apps with free-to-browse ones, weekly plans with annual ones, iOS with Android, AI products with utilities. Averaging across all of that produces a number that describes nothing in particular. It flatters some apps and punishes others, and you cannot tell from the number itself which one it is doing to you.
Install to trial is where this bites hardest. An app with a hard paywall at the end of onboarding and an app that lets you browse for a week are not measuring the same event, so comparing their install-to-trial rates is arithmetic without meaning.
Build the column, then read the shape
What you need is not a better median. It is your own column, cut on the handful of dimensions that actually change the numbers.
| Dimension | Why it moves the numbers |
|---|---|
| Access model | Hard paywall, soft paywall, and freemium produce completely different install-to-trial rates for identical products. |
| AI or not | AI products carry a different comprehension cost at first impression and a different expectation about what the trial proves. |
| Platform | iOS and Android differ on payer mix, price sensitivity and refund behaviour. A blended figure hides which one is dragging. |
| Paywall placement | Onboarding versus in-app changes both the rate and which population is even measured. |
| Vertical | Applied last, and it is the cut that most changes what "healthy" means for retention and renewal. |
Get those five right and the comparison starts telling you something. Get them wrong and you are measuring your app against a population it does not belong to, which is how a team ends up fixing a number that was never broken.
Then read the set as a shape rather than metric by metric. Metric by metric gives you a list of things that are slightly off, and every one of them looks like a project. The shape gives you one diagnosis and one place to start.
The takeaway
Pull the eight numbers. Build the column on access model, AI or not, platform, paywall placement, and vertical. Then look at which metrics sit above the line and which sit below, and stop reading them one at a time.
If the people who get past your paywall convert and stay, your problem is that not enough of them get there. If they get in easily and leave anyway, no amount of paywall work will help you. Those are two different quarters of work, and the numbers tell you which one you are in before you commit to either.
Common questions
How do I know if my problem is top of funnel, monetization, or retention?
Read the metrics as a pattern instead of individually. If install-to-trial is below benchmark while trial-to-paid and renewals are healthy, the problem is top of funnel, even when the revenue number is the one that hurts. If install-to-trial is strong but trial-to-paid and renewals are both weak, the problem is product value. Renewal rate is the tiebreaker: it holds when the product works and sags when it does not.
Why are cross-vertical subscription benchmarks misleading?
Because the blended median pools access models, platforms, price points and paywall placements that produce structurally different numbers for identical products. It is freemium-weighted, so it flatters apps with a low-friction entry point and punishes apps with a hard paywall, and the number itself gives you no way to tell which is happening to you.
What metrics do I need for a benchmark comparison?
Eight are usually enough: install to trial, trial to paid, install to paid, early retention at your category's day marker, first-period renewal rate, revenue per payer, monthly versus annual plan mix, and refund or cancellation rate. Each isolates a different stage, and together they form the pattern that identifies the failure shape.
We help consumer apps and products reach their next phase of growth.
Growth notes, in your inbox
New writing on subscription growth and product-led strategy when I have something worth saying. No spam.