Hard paywall vs freemium for a subscription app
A hard paywall asks for a subscription or a trial before the app does anything useful. Freemium gives everyone a permanent free tier and sells an upgrade on top of it. On RevenueCat's data, hard paywall apps earn about eight times more per install by day 60, and the share of yearly subscribers still paying a year later is almost the same for both. In two of my own subscription apps I chose differently: VitaCal is freemium, VitaMood shows its paywall first. The product decided it, not the benchmark.
What the RevenueCat data says
RevenueCat's State of Subscription Apps summary draws on over 115,000 apps representing more than $16 billion in revenue. On paywall type it reports four figures:
- Conversion. A median day-35 conversion of 10.7% for hard paywall apps against 2.1% for freemium, roughly five times higher. The text calls this trial-to-paid; the chart beneath it is labelled download-to-paid.
- Revenue per install. $3.09 for hard paywall apps against $0.38 for freemium at day 60.
- Retention. Freemium apps keep 28% of yearly subscribers after one year and hard paywall apps keep 27%, a difference the report calls statistically negligible.
- Trend. Against the previous year, freemium conversion held at 2.1%, while hard paywall conversion fell from 12.1%.
Two limits matter before you copy the conclusion. The summary does not say how many apps sit in each group or how it classified them, so a paywall with a close button may or may not count as hard. And revenue per install at day 60 measures how fast money arrives, not how much a subscriber is worth over two years.
Hard paywall vs freemium side by side
| Hard paywall | Freemium | |
|---|---|---|
| When the user commits | Before first use, through a purchase or a trial | Whenever a limit or a locked feature prompts it |
| What a non-payer gets | Nothing, or a preview | A permanent, limited product |
| Median day-35 conversion (RevenueCat) | 10.7% | 2.1% |
| Revenue per install at day 60 | $3.09 | $0.38 |
| Yearly subscribers retained after one year | 27% | 28% |
| Cost of a non-paying user | Little or nothing to serve | Whatever the free tier costs to serve |
| Fits best when | The value needs time or setup before it shows | A free user gets real value at little cost to you |
Why VitaCal stays freemium
VitaCal is an AI calorie tracker for iOS and Android: photograph a meal and it estimates the calories and macros. The Free plan includes 5 AI meal analyses a week plus unlimited manual logging, calorie and macro tracking and water tracking. Pro raises the AI allowance to 30 a week at $0.99 a week, $2.99 a month or $29.99 a year, and the monthly plan starts with a 7-day free trial.
The limit sits on the AI analyses, which run a model on my server every time. Manual logging stays unlimited. A free user can run the whole daily habit of tracking food without paying, and the upgrade prompt appears when they want more of the AI. That is the case freemium is built for: a free tier that is useful on its own, with the expensive part metered.
Two details came out of running it. The trial is on the monthly plan only, because a $0.99 weekly plan is too cheap to give away. And the weekly plan did not retain, which shaped the next app.
Why VitaMood puts the paywall first
VitaMood is a voice journal: you talk for up to a minute each evening and it puts your mood next to your sleep, heart rate variability, resting heart rate and activity from Apple Health or Health Connect. Its value builds over days. The first check-in compares today with your usual range, and the links between mood and health readings appear from day 8, only when the two clearly rise and fall together.
The RevenueCat remote paywall shows after sign-in, before the first check-in, offering monthly, annual or the 7-day trial. The reason I recorded for putting it there is the RevenueCat data above. It is not a strictly hard paywall: a close button continues without Pro. The free tier keeps voice check-ins, on-device transcription, the entry history and 5 AI summaries a week. The health insights show as a preview built on fixed sample data, every tap on it opens the paywall, and free users are never asked for Health access.
Pro costs $6.99 a month or $49.99 a year in the US, which puts the annual plan at about 7.2 months of monthly. There are only those two plans, because VitaCal's weekly plan did not retain. Seven days is also longer than the trials of under four days that 46.5% of apps run, according to the same RevenueCat report, which found trials of 17 to 32 days convert at a median 42.5% against 25.5% for trials under four days.
How to choose for your app
- Can a new user get the value in the first session? If yes, freemium can show it and sell the upgrade later. If the value needs days of data, a free tier mostly shows an empty screen.
- What does a free user cost you? If every use calls a paid model or API, meter that feature and leave the cheap parts free.
- Do you need the cash early? Revenue per install at day 60 is what funds paid acquisition. A hard paywall brings it forward.
- Can you change the paywall without a release? Both my apps use a RevenueCat remote paywall edited in the dashboard, so the plans on offer, the copy and the layout change with no app release. Build it that way from the first version.
- Which plans will you offer? Fewer is easier to read on a small screen. In my case weekly was the plan I left out of the second app.
What I would do again
I would still decide per product. A benchmark is a median across very different apps, and the retention figure says the paywall choice mostly changes when money arrives, not whether subscribers stay. Pick the model that matches when your app delivers its value, keep the paywall remote so you can test it, and read the conversion in your own store dashboards rather than in someone else's report. Both apps are built in Flutter. If you are still choosing a framework, read Flutter vs React Native, and my homepage lists the rest of my work.
I take on fractional CTO and senior architecture contracts through Apex Technology, working remotely. Email info@zayinkrige.com or read the full CV.