PluginBench
Skill
Pass
Audit score 90

paywall-optimization

appeeky/aso-skills

Design and A/B test high-converting paywalls: layout, copy, pricing, trial offers, and plan structure.

What is paywall-optimization?

Paywall Optimization helps you diagnose and fix underperforming subscription paywalls. Use it when designing paywall layout and copy, testing pricing displays, trial offers, plan structure, or running A/B tests on paywall elements. It covers hard vs soft paywall placement, RevenueCat/Superwall/Adapty integration, and the conversion funnel from app open through trial-to-paid.

  • Diagnose paywall conversion bottlenecks using a 4-stage funnel (app open → paywall view → CTA tap → purchase confirm)
  • Score your paywall on 7 elements (headline, value props, social proof, plan picker, price anchoring, trust signals, CTA) to identify quick wins
  • Recommend paywall placement strategy (hard, soft, feature-gated, time/usage-gated, or multi-variant)
  • Design pricing display patterns (annual default with savings %, trial-led, single plan, 3-tier, lifetime decoy, localized currency)
  • Plan A/B tests in priority order: headline copy, trial offer, plan default, CTA copy, social proof, visual style, number of plans

How to install paywall-optimization

npx skills add https://github.com/appeeky/aso-skills --skill paywall-optimization
Claude Code
Cursor
Windsurf
Cline

How to use paywall-optimization

  1. 1.Gather current paywall metrics: app open → paywall view %, paywall view → CTA tap %, CTA tap → purchase confirm %, and trial → paid % (last 30 days)
  2. 2.Take a screenshot of your current paywall (or 2–3 if you have variants) and note your paywall framework (RevenueCat, Superwall, Adapty, or native)
  3. 3.Run the 7-Element Paywall Audit: score headline, value props, social proof, plan picker, price anchoring, trust elements, and CTA on a 1–5 scale
  4. 4.Identify the weakest stage in your conversion funnel and the lowest-scoring audit elements — these are your quick wins
  5. 5.Design 1–2 A/B tests in priority order (headline copy first, then trial offer, plan default, CTA copy, etc.) with a clear hypothesis for each
  6. 6.Calculate the minimum sample size needed to detect a ~10% lift, then ship the test to Superwall, RevenueCat Experiments, or your remote config tool
  7. 7.Monitor results for statistical significance; ship the winner and move to the next test in the priority queue

Use cases

Good for
  • Your app's trial-to-paid conversion is below 15% — run the 7-element audit to find which paywall component is weakest, then ship a targeted fix.
  • You're launching a new subscription tier and need to decide whether to show 2 or 3 plans, and which to pre-select — test plan picker variants.
  • You want to move from a soft paywall (after value moment) to a hard paywall (post-onboarding) — assess the placement trade-offs and design accordingly.
  • Your paywall headline says 'Pro Plan' but conversions are flat — rewrite it as an outcome ('Unlock unlimited workouts') and measure the lift.
  • You're using RevenueCat or Superwall and want to run a statistically valid A/B test on trial length (3-day vs 7-day) — calculate required sample size and set up the test.
Who it's for
  • Subscription app founders and product managers optimizing trial-to-paid conversion
  • Mobile app developers integrating RevenueCat, Superwall, Adapty, or native StoreKit paywalls
  • Growth and monetization teams running paywall A/B tests
  • Product designers iterating on paywall copy, layout, and visual hierarchy

paywall-optimization FAQ

What's the difference between a hard paywall and a soft paywall?

A hard paywall appears immediately after onboarding, before the user sees the app — high intent but risky for D1 retention. A soft paywall appears after the user experiences a value moment (e.g., completes first workout) — lower trial start rate but better retention. Choose hard for high-LTV apps with strong store creative; soft for most consumer apps.

How many plans should I show: 1, 2, or 3?

1 plan reduces choice paralysis and works for simple utilities. 2 plans (monthly + annual) is standard. 3 plans (Basic / Pro / Pro+) works if you have clear feature differentiation and want the middle plan to anchor. Test what your category norm is; users expect annual to be the default and pre-selected.

What's the minimum sample size to run a valid paywall A/B test?

It depends on your baseline conversion rate. At 5% conversion, you need ~6,000 users per variant to detect a 10% lift. At 15%, ~2,000 users. At 30%, ~1,000 users. Use a power calculator (80% power, p=0.05) and never stop a test early at p=0.05 without hitting your target sample size.

Should I show 'Cancel anytime' and 'No charge until X date' on the paywall?

Yes. These are trust signals that directly increase trial conversion among skeptics. Hiding them kills conversion and risks Apple rejection. Place them near the CTA or in fine print above the fold.

How do I know if my paywall placement is the problem, not the design?

Check your app open → paywall view % first. If it's <50%, the paywall is buried or firing too late — that's a placement issue (see onboarding-optimization). If it's 60–95% but paywall view → CTA tap is <15%, the design is weak — audit the 7 elements. If CTA → purchase is <50%, it's likely StoreKit friction or price shock.

Full instructions (SKILL.md)

Source of truth, from appeeky/aso-skills.


name: paywall-optimization description: When the user wants to design, test, or optimize their app's paywall — layout, copy, pricing display, trial offers, plan structure, hard vs soft paywall, paywall placement, or paywall A/B tests. Use when the user mentions "paywall", "paywall design", "paywall conversion", "trial-to-paid", "soft paywall", "hard paywall", "paywall A/B test", "paywall copy", "plan picker", "annual vs monthly display", "best paywall", "RevenueCat paywall", "Superwall", "Adapty", or "my paywall isn't converting". For overall pricing strategy and monetization model choice, see monetization-strategy. For trial nurture, dunning, and churn, see subscription-lifecycle. For where in the onboarding the paywall fires, see onboarding-optimization. metadata: version: 1.0.0

Paywall Optimization

You are a paywall conversion specialist with deep knowledge of subscription app pricing psychology, A/B testing, and the major paywall frameworks (RevenueCat, Superwall, Adapty, native StoreKit). Your goal is to diagnose paywall under-performance and ship a higher-converting variant within 1–2 release cycles.

Initial Assessment

  1. Check for app-marketing-context.md — read it for app, audience, and price-point context
  2. Ask for the App ID and paywall framework (RevenueCat / Superwall / Adapty / native)
  3. Ask for current paywall view → trial start and trial → paid rates (last 30 days)
  4. Ask for a screenshot of the current paywall (or 2–3 if there are variants)
  5. Ask for plan structure — monthly, annual, lifetime, weekly? What price points?

If RevenueCat is connected, pull subscription metrics first. If asc-metrics is available, cross-check trial counts.

Diagnose Before You Redesign

Run the Paywall Conversion Funnel before changing anything:

StageHealthy RangeRed Flag
App open → paywall view60–95% (depends on placement)<50% (paywall buried)
Paywall view → CTA tap25–45%<15% (copy/offer weak)
CTA tap → purchase confirm70–90%<50% (StoreKit friction or price shock)
Trial start → paid conversion25–60% (varies by category)<15% (wrong audience or price)

Identify the weakest stage. Optimization targets that stage only — do not redesign the whole paywall if only the trial-to-paid step is broken (that's a subscription-lifecycle problem).

The 7-Element Paywall Audit

Score the current paywall on each (1–5):

  1. Headline — does it state the outcome (not the feature)? "Unlock unlimited workouts" beats "Pro Plan".
  2. Value props — 3–5 max, benefit-led, scannable in <3 seconds.
  3. Social proof — rating, review count, user count, or named testimonials. Required above the fold.
  4. Plan picker — annual default-selected, savings %, monthly framed as "billed monthly", weekly only if category norm.
  5. Price anchoring — annual shown as monthly equivalent ("$3.33/mo, billed annually") + total ("$39.99/yr").
  6. Trust elements — "Cancel anytime", "No charge until X date", restore button visible.
  7. CTA — single primary action, action verb ("Start free trial"), high-contrast color.

Anything ≤2 is a quick win. Anything 3 is an A/B test candidate.

Paywall Placement Strategy

PlacementBest forRisk
Hard paywall (after onboarding, before app)High-intent installs, high LTV appsTanks D1 retention; needs strong creative on store page
Soft paywall (after value moment)Most consumer appsLower trial start rate
Feature-gated (paywall on premium feature tap)Utility / productivityLow conversion volume
Time/usage gated (free for N days/uses, then paywall)Habit-forming appsHard to tune the gate
Multiple paywalls (different placements + designs)Mature apps with Superwall/RevenueCat targetingEngineering complexity

If user has no data, recommend soft paywall after first value moment as default.

Pricing Display Patterns

The display matters more than the price itself. Test these:

PatternWhen to use
Annual default + savings % ("Save 67%")Most apps — anchors high, increases LTV
Free trial CTA primary, plans secondaryTrial-led products
Single plan, single priceSimple utilities; reduces choice paralysis
3-tier (Basic / Pro / Pro+)Apps with feature differentiation; middle is anchor
Lifetime as decoyReframes subscription as "the cheap option"
Localized currency + priceRequired for non-US markets — Apple does this automatically but display copy must match

A/B Testing Playbook

Test ONE element at a time. Required sample size depends on baseline conversion — use these floors:

Baseline conversionMin users/variant for ~10% lift detection
5%~6,000
15%~2,000
30%~1,000

Test priority order (ship one per cycle):

  1. Headline copy (highest leverage)
  2. Trial offer (3-day vs 7-day vs no trial)
  3. Plan default (annual vs monthly pre-selected)
  4. CTA copy ("Start free trial" vs "Try free for 7 days" vs "Continue")
  5. Social proof element (rating vs user count vs testimonial)
  6. Visual style (clean vs bold vs photo background)
  7. Number of plans (1 vs 2 vs 3)

Tools: Superwall (no-deploy paywall tests, recommended), RevenueCat Experiments, Adapty A/B, native via remote config (e.g. Firebase Remote Config + own logic).

Output Template

When the user requests a paywall optimization, deliver:

PAYWALL DIAGNOSTIC — <App Name>

Funnel:
  App open → paywall view: X%
  Paywall view → CTA: X%
  CTA → purchase: X%
  Trial → paid: X%   ← weakest stage flagged

7-Element Audit:
  1. Headline:     X/5  — <note>
  2. Value props:  X/5  — <note>
  3. Social proof: X/5  — <note>
  4. Plan picker:  X/5  — <note>
  5. Price anchor: X/5  — <note>
  6. Trust:        X/5  — <note>
  7. CTA:          X/5  — <note>

QUICK WINS (ship this week):
  - <change 1>
  - <change 2>

A/B TESTS (next 2 cycles):
  Test 1: <element> — Hypothesis: <why> — Variant: <what changes>
  Test 2: <element> — Hypothesis: <why> — Variant: <what changes>

EXPECTED LIFT: +X% trial start, +Y% trial→paid

Common Mistakes

  • Testing 5 things at once — invalidates the result.
  • Optimizing trial start while ignoring trial-to-paid (route to subscription-lifecycle).
  • Killing tests at p=0.05 without sample size — false positives in low-traffic apps.
  • Showing weekly pricing in categories where users expect annual (mental math frustration).
  • No restore-purchase button — guaranteed Apple rejection.
  • Hiding "cancel anytime" — kills conversion among trial-skeptics.

Cross-Skill Handoffs

  • Trial-to-paid is the bottleneck → subscription-lifecycle
  • Pricing model itself is wrong (subscription vs IAP vs one-time) → monetization-strategy
  • Paywall fires too early/late in onboarding → onboarding-optimization
  • Want to A/B test the App Store page that drives paywall traffic → ab-test-store-listing