The checklist

The whole playbook as numbered, terse lines — each with the metric it moves and the Broctic event or report that measures it. Written to be read in one pass by a person or an agent.

Every line below is justified on the pages of this playbook and traced to a figure on the sources page. Lines with no published figure say so. The same text is served in /llms.txt so an agent can fetch it directly.

Onboarding

  1. 1. Build and verify the core app first, then design the shortest useful route to first value; defer nonessential questions.

    Moves
    onboarding completion
    Measure
    onboarding_started → onboarding_completed in the Funnel report
    Evidence
    Practitioner consensus — no published figure.
  2. 2. Use honest progress when a bounded sequence benefits from it; test against a simpler flow.

    Moves
    first-step drop-off
    Measure
    onboarding_step with step=1 → step=2
    Evidence
    Practitioner consensus — no published figure.
  3. 3. Request only essential account information; allow guest use when possible and meet Apple login requirements.

    Moves
    sign-up completion
    Measure
    signup_started → signup_completed
    Evidence
    Practitioner consensus — no published figure.
  4. 4. Use question screens to personalise the outcome you will promise on the paywall, not to collect data you will not use.

    Moves
    paywall conversion (the answers feed the headline)
    Measure
    onboarding_step props name=…; paywall_viewed → trial_started
    Evidence
    Practitioner consensus — no published figure.
  5. 5. Ask for notifications and tracking permission after a moment that explains why, never on first launch. Expect about a third to allow tracking.

    Moves
    permission opt-in
    Measure
    feature_used with feature=notifications_prompt / att_prompt (custom)
    Evidence
    35% Adjust 2025

Paywall

  1. 1. Test a relevant offer after demonstrated value or at a premium feature; choose early hard gates only with a product-specific rationale.

    Moves
    download → trial
    Measure
    onboarding_completed → paywall_viewed; store: Downloads that start a trial
    Evidence
    82% RevenueCat 2025 · 4.3% RevenueCat 2025 · 9.8% RevenueCat 2025
  2. 2. Decide hard gate or freemium deliberately: a hard paywall converts about five times more installs to payers by day 35, at a higher refund rate.

    Moves
    download → paid; refund rate
    Measure
    store: Downloads that pay; Refund rate
    Evidence
    12.1% RevenueCat 2025 · 2.2% RevenueCat 2025 · 5.8% RevenueCat 2025 · 3.4% RevenueCat 2025
  3. 3. Consider a multi-page paywall — a short value walk-through before the offer — and measure it against a single page; the published gap is 37% relative, observational.

    Moves
    paywall → trial
    Measure
    paywall_viewed → trial_started
    Evidence
    12.41% vs 9.07% Superwall 2026 · 24% Superwall 2026
  4. 4. Test a small understandable set of plans; do not infer a universal winner from cross-app comparisons.

    Moves
    paywall → trial/purchase
    Measure
    paywall_viewed → trial_started / purchase_completed
    Evidence
    +61% Superwall 2022 · +44% Superwall 2022
  5. 5. State the trial length, the price after it and the charge date on the paywall itself; put restore, terms and privacy on it (App Review requires them).

    Moves
    purchase sheet completion; refunds
    Measure
    purchase_started → purchase_completed; store: Refund rate
    Evidence
    5.8% RevenueCat 2025
  6. 6. Show a follow-up offer to people who open the purchase sheet and back out — about a fifth of paywalled users do.

    Moves
    recovered purchases
    Measure
    purchase_failed → purchase_completed (custom funnel)
    Evidence
    ~20% Superwall 2024 · 17% Superwall 2024
  7. 7. Keep the buy button on screen without scrolling, and make the content fill the viewport. A paywall composed against a short device leaves a dead band on a tall one, which reads as a page that failed to load rather than as a layout.

    Moves
    paywall → trial (nothing converts on a screen that looks broken)
    Measure
    paywall_viewed → trial_started, split by device via the context on each event
    Evidence
    Practitioner consensus — no published figure.
  8. 8. Give the paywall a real state for when the store does not answer: what happened, a retry, and restore. On a hard gate this is the state that locks somebody out of the whole app, so it must offer a way forward rather than an explanation.

    Moves
    recovered sessions; refunds and one-star reviews avoided
    Measure
    error_shown where=paywall; paywall_viewed with no purchase_started after it
    Evidence
    Practitioner consensus — no published figure.

Pricing and plans

  1. 1. Lead with an annual plan outside gaming; weekly plans renew at 3.4% after a year, monthly at 17%.

    Moves
    year-1 retention; LTV
    Measure
    subscription_renewed per product; store: paid units per SKU
    Evidence
    3.4% RevenueCat 2025 · 17.0% RevenueCat 2025 · 67% RevenueCat 2025 · 65% RevenueCat 2025 · 78% RevenueCat 2025
  2. 2. Do not price low to convert: high-priced apps start more trials, convert more installs to payers and earn ~7× the year-1 LTV per subscriber.

    Moves
    download → trial; download → paid; LTV
    Measure
    store: Downloads that start a trial; Downloads that pay; proceeds per download
    Evidence
    9.8% RevenueCat 2025 · 4.3% RevenueCat 2025 · 2.66% RevenueCat 2025 · 1.49% RevenueCat 2025 · $55.21 RevenueCat 2025 · $8.08 RevenueCat 2025
  3. 3. Offer a trial of 17–32 days if the product can prove itself in that time; most apps offer 5–9 and convert worse.

    Moves
    trial → paid
    Measure
    trial_started → subscription_started; store: Trials that pay
    Evidence
    45.7% RevenueCat 2025 · 52% RevenueCat 2025
  4. 4. Add a weekly plan for India, South-East Asia and the Middle East; those regions rely on weekly plans far more than others.

    Moves
    download → paid by storefront
    Measure
    Analytics → Places; store rows by country
    Evidence
    36% · 35% RevenueCat 2025
  5. 5. Check the ladder is arithmetically defensible before shipping it: no plan may cost less than a shorter one over the same period, and a one-time tier priced near the annual one cannibalises it. A customer who does the sums and finds a cheaper route was penalised for not checking, which is the version of a pricing page nobody defends out loud.

    Moves
    plan mix; the share of revenue that lands on the plan you intended
    Measure
    store: proceeds and paid units per SKU — the per-product breakdown, not the total
    Evidence
    Practitioner consensus — no published figure.
  6. 6. Judge a plan on the revenue it produces per SKU, not on how many transactions it shows. A weekly plan bills thirteen times a quarter and an annual plan once, so transaction counts flatter short billing periods and say nothing about how many people are actually subscribed.

    Moves
    nothing directly — it stops you drawing the wrong conclusion from the right data
    Measure
    store: proceeds per SKU alongside paid units per SKU
    Evidence
    Practitioner consensus — no published figure.

Trials, renewals, refunds

  1. 1. Send a reminder before the trial charges and make cancellation obvious; hidden cancels become refunds, and refunds are netted out of proceeds.

    Moves
    refund rate
    Measure
    store: Refund rate; subscription_cancelled
    Evidence
    5.8% RevenueCat 2025 · 3.4% RevenueCat 2025 · 4.71% RevenueCat 2025
  2. 2. Treat the first month of an annual plan as the retention problem: about 30% cancel in it. Deliver the core outcome in the first two sessions.

    Moves
    first-month cancellation
    Measure
    subscription_started → subscription_cancelled (custom funnel, 30-day window)
    Evidence
    ~30% RevenueCat 2025
  3. 3. Judge trial → paid against 30–50%, not 100%: the published medians sit in the mid-forties for the best categories.

    Moves
    trial → paid
    Measure
    store: Trials that pay (provisional until the window ages)
    Evidence
    48.7% RevenueCat 2025 · 43.8% RevenueCat 2025

As plain text

For an agent, or a pull request description

funnel-checklist.md
### Onboarding
1. Build and verify the core app first, then design the shortest useful route to first value; defer nonessential questions.
   Moves: onboarding completion. Measure: onboarding_started → onboarding_completed in the Funnel report. (Practitioner consensus — no published figure.)
2. Use honest progress when a bounded sequence benefits from it; test against a simpler flow.
   Moves: first-step drop-off. Measure: onboarding_step with step=1 → step=2. (Practitioner consensus — no published figure.)
3. Request only essential account information; allow guest use when possible and meet Apple login requirements.
   Moves: sign-up completion. Measure: signup_started → signup_completed. (Practitioner consensus — no published figure.)
4. Use question screens to personalise the outcome you will promise on the paywall, not to collect data you will not use.
   Moves: paywall conversion (the answers feed the headline). Measure: onboarding_step props name=…; paywall_viewed → trial_started. (Practitioner consensus — no published figure.)
5. Ask for notifications and tracking permission after a moment that explains why, never on first launch. Expect about a third to allow tracking.
   Moves: permission opt-in. Measure: feature_used with feature=notifications_prompt / att_prompt (custom).

### Paywall
1. Test a relevant offer after demonstrated value or at a premium feature; choose early hard gates only with a product-specific rationale.
   Moves: download → trial. Measure: onboarding_completed → paywall_viewed; store: Downloads that start a trial.
2. Decide hard gate or freemium deliberately: a hard paywall converts about five times more installs to payers by day 35, at a higher refund rate.
   Moves: download → paid; refund rate. Measure: store: Downloads that pay; Refund rate.
3. Consider a multi-page paywall — a short value walk-through before the offer — and measure it against a single page; the published gap is 37% relative, observational.
   Moves: paywall → trial. Measure: paywall_viewed → trial_started.
4. Test a small understandable set of plans; do not infer a universal winner from cross-app comparisons.
   Moves: paywall → trial/purchase. Measure: paywall_viewed → trial_started / purchase_completed.
5. State the trial length, the price after it and the charge date on the paywall itself; put restore, terms and privacy on it (App Review requires them).
   Moves: purchase sheet completion; refunds. Measure: purchase_started → purchase_completed; store: Refund rate.
6. Show a follow-up offer to people who open the purchase sheet and back out — about a fifth of paywalled users do.
   Moves: recovered purchases. Measure: purchase_failed → purchase_completed (custom funnel).
7. Keep the buy button on screen without scrolling, and make the content fill the viewport. A paywall composed against a short device leaves a dead band on a tall one, which reads as a page that failed to load rather than as a layout.
   Moves: paywall → trial (nothing converts on a screen that looks broken). Measure: paywall_viewed → trial_started, split by device via the context on each event. (Practitioner consensus — no published figure.)
8. Give the paywall a real state for when the store does not answer: what happened, a retry, and restore. On a hard gate this is the state that locks somebody out of the whole app, so it must offer a way forward rather than an explanation.
   Moves: recovered sessions; refunds and one-star reviews avoided. Measure: error_shown where=paywall; paywall_viewed with no purchase_started after it. (Practitioner consensus — no published figure.)

### Pricing and plans
1. Lead with an annual plan outside gaming; weekly plans renew at 3.4% after a year, monthly at 17%.
   Moves: year-1 retention; LTV. Measure: subscription_renewed per product; store: paid units per SKU.
2. Do not price low to convert: high-priced apps start more trials, convert more installs to payers and earn ~7× the year-1 LTV per subscriber.
   Moves: download → trial; download → paid; LTV. Measure: store: Downloads that start a trial; Downloads that pay; proceeds per download.
3. Offer a trial of 17–32 days if the product can prove itself in that time; most apps offer 5–9 and convert worse.
   Moves: trial → paid. Measure: trial_started → subscription_started; store: Trials that pay.
4. Add a weekly plan for India, South-East Asia and the Middle East; those regions rely on weekly plans far more than others.
   Moves: download → paid by storefront. Measure: Analytics → Places; store rows by country.
5. Check the ladder is arithmetically defensible before shipping it: no plan may cost less than a shorter one over the same period, and a one-time tier priced near the annual one cannibalises it. A customer who does the sums and finds a cheaper route was penalised for not checking, which is the version of a pricing page nobody defends out loud.
   Moves: plan mix; the share of revenue that lands on the plan you intended. Measure: store: proceeds and paid units per SKU — the per-product breakdown, not the total. (Practitioner consensus — no published figure.)
6. Judge a plan on the revenue it produces per SKU, not on how many transactions it shows. A weekly plan bills thirteen times a quarter and an annual plan once, so transaction counts flatter short billing periods and say nothing about how many people are actually subscribed.
   Moves: nothing directly — it stops you drawing the wrong conclusion from the right data. Measure: store: proceeds per SKU alongside paid units per SKU. (Practitioner consensus — no published figure.)

### Trials, renewals, refunds
1. Send a reminder before the trial charges and make cancellation obvious; hidden cancels become refunds, and refunds are netted out of proceeds.
   Moves: refund rate. Measure: store: Refund rate; subscription_cancelled.
2. Treat the first month of an annual plan as the retention problem: about 30% cancel in it. Deliver the core outcome in the first two sessions.
   Moves: first-month cancellation. Measure: subscription_started → subscription_cancelled (custom funnel, 30-day window).
3. Judge trial → paid against 30–50%, not 100%: the published medians sit in the mid-forties for the best categories.
   Moves: trial → paid. Measure: store: Trials that pay (provisional until the window ages).