robertguss/paywall-pricing-optimizer
Design effective paywalls, structure subscription tiers, and optimize pricing for mobile apps. Covers monetization model selection, paywall screen design, pricing psychology, A/B testing strategy, and RevenueCat/StoreKit/Google Billing integration. Use when the user wants to monetize an app, design a paywall, choose between subscription vs one-time purchase, set pricing tiers, improve conversion rates, plan pricing experiments, or integrate in-app purchases. Triggers on "design my paywall", "how should I price my app", "subscription tiers", "monetization strategy", "paywall copy", "free trial length", "RevenueCat setup", "improve paywall conversion".
npx skills add https://github.com/robertguss/claude-code-toolkit --skill paywall-pricing-optimizer
1. Assess the App
2. Choose Monetization Model
3. Design Subscription Tiers
4. Set Pricing
5. Design the Paywall Screen
6. Plan Pricing Experiments
Gather these inputs before making any monetization decisions:
Questions to ask:
utility)
content creation)
Usage frequency determines model viability:
| Frequency | Best Models | Why |
| --------------- | -------------------------------- | ---------------------------------------- |
| Daily | Subscription | High engagement justifies recurring cost |
| 2-3x per week | Subscription or freemium | Moderate engagement, needs strong value |
| Weekly or less | One-time purchase or consumable | Hard to justify subscription |
| Sporadic/urgent | One-time purchase or pay-per-use | Users pay when they need it |
Does the app provide ongoing, evolving value?
├── YES → Does it have significant per-use costs (AI, API)?
│ ├── YES → Freemium with consumables (credits/tokens)
│ └── NO → Subscription
└── NO → Is it a tool with finite, clear value?
├── YES → One-time purchase (or lifetime unlock)
└── NO → Freemium with ads + optional ad removal
Subscription (~70% of top-grossing apps)
One-Time Purchase
Freemium with Consumables
Ads + Ad Removal
The free tier must deliver enough value to hook users, but leave them wanting
more. Apply the "taste, not feast" principle.
What goes in Free:
What goes in Premium:
Choose names that communicate value, not hierarchy:
| Pattern | Free Tier | Paid Tier | Best For |
| ---------------- | --------- | --------- | ------------------ |
| Status-based | Basic | Pro | Productivity tools |
| Capability-based | Starter | Unlimited | Usage-limited apps |
| Experience-based | Free | Premium | Content/media apps |
| Playful | Explorer | Champion | Gamified/wellness |
Avoid: "Lite" (implies inferior), numbered tiers (confusing), more than 2 tiers
for indie apps (3+ tiers create decision paralysis).
Two tiers (recommended for most indie apps):
Three tiers (only if justified):
| App Type | Monthly | Annual | One-Time |
| ------------------ | ----------- | ------------ | ------------ |
| Simple utility | $2.99-4.99 | $19.99-29.99 | $4.99-9.99 |
| Habit/tracker | $4.99-6.99 | $29.99-44.99 | $9.99-14.99 |
| Productivity | $5.99-9.99 | $39.99-59.99 | $14.99-29.99 |
| Health/fitness | $6.99-12.99 | $39.99-79.99 | - |
| AI-powered tool | $9.99-19.99 | $59.99-99.99 | - |
| Education/learning | $6.99-14.99 | $49.99-99.99 | - |
| Creative tool | $4.99-9.99 | $29.99-59.99 | $14.99-29.99 |
| Tier | Monthly | Annual | Best For |
| ------------ | ----------------- | ------------------- | ------------------------ |
| Impulse buy | $2.99-4.99/mo | $19.99-29.99/yr | Simple utilities |
| Standard | $5.99-6.99/mo | $34.99-44.99/yr | Most indie apps |
| Premium | $9.99-14.99/mo | $59.99-99.99/yr | AI-heavy or professional |
per-month equivalent, cross out the monthly price to show savings
obvious best value (price it closer to the cheap option, feature-set closer
to the expensive one)
| Length | Best For | Conversion Impact |
| ------- | ------------------------------ | ------------------------------------- |
| 3 days | Apps with immediate value | Higher conversion, lower trial starts |
| 7 days | Standard choice for most apps | Balanced conversion and adoption |
| 14 days | Apps requiring habit formation | Higher trial starts, lower conversion |
| 30 days | B2B or complex tools | Very low conversion, use sparingly |
Introductory offers:
Hard paywall (before any use):
Soft paywall (after value demonstration):
Design the paywall screen with these sections in order:
1. Hero Section
2. Feature/Benefit List
3. Social Proof
4. Pricing Cards
5. Call-to-Action
6. Trust Signals
See references/paywall-copy-formulas.md
for headline templates, CTA variations, and feature list copy patterns.
10. Same paywall everywhere — contextualize based on what triggered it.
Before committing to a pricing strategy, plan what to test.
See references/pricing-experiments.md for
detailed A/B testing methodology, sample size calculators, and experiment
prioritization.
| Metric | Formula | Target |
| ------------------------ | ---------------------------------- | -------- |
| Trial start rate | Trials / paywall views | 15-30% |
| Trial-to-paid conversion | Paid / trial starts | 40-60% |
| Paywall conversion rate | Purchases / paywall views | 5-15% |
| ARPU (avg revenue/user) | Total revenue / total users | Varies |
| LTV (lifetime value) | ARPU \* avg subscription length | > 3x CAC |
| Monthly churn rate | Cancellations / active subscribers | < 10% |
RevenueCat abstracts StoreKit and Google Billing into a single SDK. Free up to
$2,500/mo MTR.
Setup pattern:
expo install react-native-purchasesKey concepts:
Use StoreKit 2 for Swift/SwiftUI apps without RevenueCat:
Product.products(for:) to fetch productsproduct.purchase() to initiate purchaseTransaction.currentEntitlements to check active subscriptionsTransaction.updates to listen for transaction changesTransaction.unverified casesUse Billing Library 6+ for Kotlin/Java apps:
BillingClient.queryProductDetailsAsync() to fetch productsBillingClient.launchBillingFlow() to initiate purchaseBillingClient.queryPurchasesAsync() to check active subscriptionsFor Expo apps, RevenueCat is the standard approach:
expo install react-native-purchasesapp.json with eas.build for native module supportexpo-dev-client for development builds (Expo Go does not support IAP)At the end of this workflow, deliver:
Take robertguss/paywall-pricing-optimizer from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.