The Paywall Structure That Prints $$$ (And the Pricing Psychology Behind It)

Most indie devs build a paywall, pick a price that feels "fair," and wonder why nobody converts.
I did the same thing for months. Underpriced, badly structured, no anchor. The result: people looked at my paywall and left.
Here's the structure I use now — the exact layout, the exact price ranges, and the psychology behind every single element. Copy it.
The pricing structure
Two plans. That's it.
- Yearly: $29.99 – $39.99
- Weekly: $9.99 – $14.99
- No trial.
Both ranges matter, and both need to be tested. More on that below.
Why weekly exists (it's not what you think)
The weekly plan is not really there to make you weekly money.
It has two jobs:
Job 1: catch the people who just want to try it. Some users won't commit to a year, but they'll pay $9.99 to test something. And a lot of them stick around 2–3 weeks — which already produces a solid LTV. That's not a loss, that's revenue you'd otherwise never see.
Job 2 — the real one: make the yearly look like a no-brainer. This is the whole game. When someone sees $9.99/week sitting right next to $39.99/year, the math does the selling for you. Suddenly the yearly plan doesn't feel expensive. It feels free.
That's anchor pricing. The weekly price isn't competing with the yearly — it's selling it.
The exact paywall layout

This is where most people leave money on the table. The structure matters as much as the numbers.
1. Mark the yearly as "MOST POPULAR"
Slap the badge on it. Pre-select it. Make it the visual default with the highlighted border. You're not tricking anyone — you're removing a decision. Most people don't want to choose; they want to be told what the right choice is.
2. Show BOTH prices as a weekly rate
This is the detail that does the heavy lifting:
- Yearly: $1.35 /week (with "$34.99 per year" underneath)
- Weekly: $9.99 /week
Now the comparison is apples to apples, and the gap is brutal. $1.35 vs $9.99. Nobody has to do mental math — the difference is right there, in the same unit, impossible to miss.
If you show "$34.99/year" next to "$9.99/week," people have to calculate to understand the value. Never make your user do math. Do it for them.
3. Show what weekly actually costs per year
Under the weekly option, add the line: "$519/year if billed weekly."
This is the killer. It takes the "cheap" option and reveals its true cost. $519 vs $34.99. The weekly plan just went from "affordable" to "insane" — and it did it without you saying a single word.
4. Add the strikethrough
Show the yearly as $69.99 $34.99. Discount anchoring on top of the weekly anchor. Two layers of "this is a deal" working at the same time.
Test your prices. Actually test them.
Don't just pick a number and pray.
Yearly: test between $29.99 and $39.99. Use RevenueCat Experiments. You're not just looking at conversion rate — you're looking at LTV. A price that converts 20% worse but makes 40% more per user is a win. Don't optimize for the vanity metric.
Weekly: test $9.99 vs $12.99 vs $14.99. Here's the counterintuitive part — raising the weekly price often increases yearly conversions, because the anchor gets stronger. A more expensive weekly plan makes the yearly look even better. You might make more money by pricing your "cheap" option higher.
What works depends on your app, your market, your users. There's no universal number. But there is a universal method: test it.
The mistake almost everyone makes
Charging too little because it feels uncomfortable to charge more.
"$34.99/year for a simple app? I can't ask for that."
Yes. You can.
A fair price isn't what feels comfortable to you. It's what the buyer is actually willing to pay. If your app saves someone time, stress, or money — you're not overcharging at $34.99. You're leaving money on the table at $9.99.
Stop pricing based on your own fear.
The short version
- Two plans only: Yearly ($29.99–$39.99) and Weekly ($9.99–$14.99). No trial.
- Weekly exists to anchor the yearly, not to be the main seller.
- Mark yearly as "MOST POPULAR" and pre-select it.
- Display BOTH prices as a weekly rate so the gap is instantly visible.
- Show what weekly costs per year ($519) — it makes the "cheap" option look absurd.
- Add a strikethrough on the yearly for a second layer of anchoring.
- Test everything with RevenueCat Experiments. Optimize for LTV, not conversion rate.
The paywall isn't a price list. It's a decision you're designing for someone else.
I'm building in public — sharing every setup, every number, every fail. More coming. Follow along. 🚐
Related articles

34 Truths Nobody Tells You About Scaling a Consumer App
I ran marketing and day-to-day operations for Cal AI as we scaled from nothing to $50M ARR in roughly 18 months.

How to turn attention into consumer-app customers who don’t churn
That playbook worked when building the product was hard and distribution was cheap, but the opposite is true in 2026.

I studied 30,600 apps making $20k-100k/mo+, the method is stupidly easy
only 1.7% of apps in the iOS App Store make $20k/mo+ that's over 30,000 apps (i researched all manually, no ai)