Cross-team delivery plan

Phased Implementation & Rollout Checklist

Sequencing rule

Do not enable client gates before backend enforcement, usage visibility, and legacy-user grandfathering are ready. The store can sell access only after webhook projection and entitlement recovery are proven end to end.

Phase 0 — Product lock

Release blocker
  • Approve the Master PRD and resolve all highlighted assumptions.
  • Record the confirmed weekly recurring-generation contract: Free 1, Plus trial 1 total, Plus 2, Pro 5.
  • Confirm 45 Free Explore minutes/week and one-week rollover cap.
  • Record the confirmed Free one-time reset of 3 credits per 3 days; confirm paid monthly and file weekly rollover caps.
  • Approve standard prices, discount reference price/duration, trial products, countries, and renewal terms.
  • Approve grandfather cohort, plan, start/end, permanent-access policy, and exclusions.
  • Approve nudge frequency caps and copy ownership.

Exit: signed monetization ADR/product contract.

Phase 1 — Foundation merge and environment readiness

  • Merge/rebase backend billing, iOS billing, and admin grant branches onto active integration branches.
  • Apply billing migrations in staging/dev through normal deployment, not hand-copy only.
  • Set separate RevenueCat webhook secrets and keys for dev/prod.
  • Verify bundle/build configurations cannot ship a dev API base URL to App Store.
  • Make new billing access canonical and inventory every legacy tier consumer.
  • Upload existing Beta build to TestFlight or cut a fresh build after branch integration.

Exit: all three apps build/deploy from reproducible branches and environments.

Phase 2 — App Store and RevenueCat catalog

  • Finalize products, service levels, localizations, pricing, 3-day trial, rescue products/offers, and win-back plan.
  • Import products to RevenueCat; attach Plus/Pro entitlements.
  • Create standard, 50%, and 65% offerings and paywalls.
  • Create placement mapping and eligibility-aware paywall rules.
  • Verify one App Store subscription group, Pro/Plus service levels, product-change paths, and the chosen native/RevenueCat management surface.
  • Enable webhook lifecycle and paywall UI events.
  • Verify one sandbox purchase reaches dev backend and unlocks access.

Exit: store catalog and RevenueCat dashboard are production-review ready.

Phase 3 — Backend database, quota, and enforcement

  • Add access phase/trial fields, plan versions, usage accounts/ledgers, offer state, exposure records, and grandfather batches.
  • Implement recurring, one-time, Explore-seconds, and file-upload meters with rollover.
  • Add reserve/finalize/release flows and structured denial responses.
  • Enforce generation, scheduling, files, transcript, remix, speed policy, soundscape catalogs, Pro sources/export, and Explore playback.
  • Run usage in observe-only mode and reconcile against real activity.
  • Add alerts, sweeper/reconciliation, and entitlement mismatch dashboards.

Exit: API clients cannot exceed any approved plan rule.

Phase 4 — iOS plan and placement completion

  • Update models/copy to approved Free/Plus/Pro plan definitions and trial profile.
  • Wire all full-page and sheet placements to live navigation, including ContentDetailView.
  • Add transcript, speed, soundscape, Explore-time, and file-size gates.
  • Implement offer-stage coordinator and one-exit-offer-per-presentation flow.
  • Implement pending-action resume and deduplicate simultaneous denials.
  • Implement trial reminder and the separate iOS Subscription Management IPRD: Plan & Billing status, change/manage, restore, pending changes, and post-sheet refresh.
  • Add jump-notification surfaces with server exposure commits/frequency caps.
  • Complete accessibility, localization, analytics, screenshot harness, and UI tests.

Exit: TestFlight build passes every tier/placement/offer state.

Phase 5 — Admin grandfathering and operations

  • Merge current single-user grant console.
  • Add backend-enforced billing roles and remove dependence on only shared admin secret.
  • Add cohort builder, dry-run, approval, batch apply, progress, export, and campaign revoke.
  • Run the approved legacy cohort dry run and get product/support approval.
  • Apply grants before enabling production gates; verify samples and audit totals.
  • Prepare support playbooks for restore, trial, offer, grant, refund, and entitlement mismatch.

Exit: eligible old users have verified access and operators can explain/manage it.

Phase 6 — QA and release

  • StoreKit local matrix for all products, trials, offers, renewals, expiries, refunds, upgrades, downgrades, crossgrades, cancellations, restores, and transfers.
  • RevenueCat sandbox and webhook replay/out-of-order/idempotency tests.
  • Backend concurrency, rollover boundary, timezone, and failure-release tests.
  • iOS device/locale/accessibility/offline/delayed-activation tests.
  • Internal TestFlight → staff cohort → 5% → 25% → 100% server-flag ramp.
  • Keep per-capability kill switches and the ability to suppress every paywall placement remotely.
  • Monitor activation latency, mismatch rate, crashes, refunds, conversion, nudge opt-outs, and support tickets.

Exit: stable full rollout with rollback path exercised.

Phase 7 — Experimentation after stability

  • Do not A/B trial length, price, and paywall design simultaneously.
  • Experiment first on standard paywall design/copy, then trial, then rescue eligibility/duration.
  • Use RevenueCat Experiments/Targeting only with identified users and current offerings.
  • Judge by realized LTV and refund/retention, not initial conversion alone.
  • Review the 65% stage after enough traffic; remove it if it trains users to dismiss or harms trust.

Suggested ownership matrix

WorkstreamDRIRequired reviewers
Plan contract/pricingProductFinance, Growth, Engineering
App Store/RevenueCatiOS/Billing ownerProduct, Backend, QA
Entitlements/quotasBackendiOS, Data, Security
Paywalls/gatesiOSDesign, Product, Accessibility
GrandfatheringAdmin/BackendProduct, Support, Security
Analytics/experimentsData/GrowthProduct, Engineering
Release decisionProduct + EngineeringSupport, QA, Finance

Go-live blockers