---
title: How many plans to show and how to display prices
slug: paywall-price-display-and-plan-count
summary: Show 2–3 plans so the main one has an anchor (removing a monthly decoy tanked sales), and break prices down per period — a per-month/per-week display lifted conversion 38%.
domain: mobile-apps
tags: [monetization, pricing, paywall, anchoring]
related: [weekly-vs-yearly-plans-and-trial-placement, paywall-cta-copy, paid-intro-offers, web2app-paywall-best-practices, paywall-design-learnings-at-scale, setting-initial-subscription-price]
sources: [yt:vZXn_BSi5AE, yt:2soA7LyyQ64, yt:FWF_AbsR0qc, yt:m5xmwkV4HgM, yt:lkwX_kc0NS8, yt:24QMRDXck70]
updated: 2026-10-24
---

# Plan count and price display

## TL;DR
- Show **2–3 plans**; three usually converts best. A lone plan has no anchor and looks expensive.
- Client test: removing an unsold $1.99/month option and showing only the $10/year plan made sales **tank**.
- Do the math for the user: show the yearly price as per-month or per-week — **+38% conversions** in Steve's test.
- On web checkouts, per-day pricing performs best.
- Naming: "Pay as you go" instead of "Weekly" works better for Steve's team.
- Superwall (Jonathan Parra): keep plan names short ("Annual plan"), **order plans by length** (never weekly/annual/monthly), highlight annual, compare savings to the cheapest plan, and hide extra plans behind **"View all plans"** — a cleanup like this won +10%.
- Odd prices like **$3.33/month** can feel more authentic than $2.99 and yield ~$40/yr (Vahe Bagdasarian).

## Details
**Anchoring.** A client paywall showed yearly ($10) and monthly ($1.99). Nobody bought monthly, so they cleaned it up to show only the yearly — and sales tanked. Next to $1.99/month, $10/year looks cheap; alone, it looks expensive.[^1] Steve's default: two or three options, three typically best.[^2]

**Per-period breakdown.** Wanting the $60/year plan to look cheap, Steve displayed each plan's price divided down (yearly ÷12 or ÷52) instead of only the total; conversions rose **38%**.[^3][^4] On web2app checkouts he finds per-day pricing best, though per-month/per-year can work as well — the key is doing the math for the user.[^5]

**Naming.** Momingo and Steve's team label the weekly plan "Pay as you go"; it performs better than "Weekly". Momingo offers yearly with 7-day trial, weekly and lifetime.[^6]

**Price points.** Steve likes $1.99 as an entry price: when he raised a paid kids app from $0.99 to $1.99 he got fewer customers but more money — it signals premium without scaring people off.[^7]

**Plan selector hygiene (Superwall).** Parra calls price-and-packaging design one of the biggest paywall levers: repetitive names ("AI Assistant Weekly"), mixed order and small badges cost conversions; cleaning them up won +10%.[^8] Order plans ascending or descending by length; with many options, show annual + one alternative and tuck the rest behind "View all plans" to avoid decision fatigue.[^9][^10] Annual + weekly sometimes beats annual + monthly — test packaging pairs.[^11] Even with two plans, Quitter shows no prices on the main paywall: "Start my journey today" opens a sheet with annual ($3.33/mo) vs monthly ($12.99/mo), a "60% off" badge computed vs monthly, and limited-spots urgency borrowed from e-commerce.[^12][^13]

## Disagreements / caveats
- Steve finds 3 plans usually best; Parra often wins by showing fewer up front — plans can still exist behind "View all plans" to serve as anchors.
- Store guidelines require the actual billed amount to be the most prominent price; per-period breakdowns must be secondary (Apple has rejected paywalls for this — check current rules).

## See also
- [[weekly-vs-yearly-plans-and-trial-placement]]
- [[paid-intro-offers]]

[^1]: yt:vZXn_BSi5AE @ 11:45 — Steve P. Young
[^2]: yt:vZXn_BSi5AE @ 12:39 — Steve P. Young
[^3]: yt:2soA7LyyQ64 @ 16:29 — Steve P. Young
[^4]: yt:2soA7LyyQ64 @ 18:00 — Steve P. Young
[^5]: yt:m5xmwkV4HgM @ 14:57 — Steve P. Young
[^6]: yt:FWF_AbsR0qc @ 09:44 — Steve P. Young
[^7]: yt:FWF_AbsR0qc @ 05:45 — Steve P. Young
[^8]: yt:lkwX_kc0NS8 @ 06:35 — Jonathan Parra
[^9]: yt:lkwX_kc0NS8 @ 10:08 — Jonathan Parra
[^10]: yt:lkwX_kc0NS8 @ 13:12 — Jonathan Parra
[^11]: yt:lkwX_kc0NS8 @ 13:12 — Jonathan Parra
[^12]: yt:24QMRDXck70 @ 27:46 — Vahe Bagdasarian
[^13]: yt:24QMRDXck70 @ 29:36 — Vahe Bagdasarian
