Monetization & Entitlements Master PRD
Prepared 18 July 2026 · product requirements normalized from the placement artifact, current implementation status, and founder requirements
Lissin launches with Free, Plus, and Pro. Free users retain discovery and a useful creation loop; Plus unlocks a larger weekly creation allowance, transcript, remix, files, and faster playback; Pro raises quotas and unlocks the complete creation/source toolset. A 3-day restricted Plus trial is the acquisition trial. Paywalls are contextual, server-authoritative, and use a two-stage rescue ladder: main → 50% exit offer; a later eligible paywall starts at 50% → 65% exit offer.
The spoken “14-5 minutes” requirement is normalized as 45 Explore playback minutes per week. Pro files are normalized as 25 uploads/week at 25 MB each. Rollover is capped at one additional allowance window to avoid unlimited liabilities. The recurring-show weekly limits (shows/week: Free 1, Plus 2, Pro 5; trial 1 total) and the one-time episode limits (episodes/week: Free 2, Plus 10, Pro 50; trial 4 total) are now confirmed. Confirm or replace the remaining assumptions before implementation.
Problem and objective
The app has billing transport, access projection, and several paywall surfaces, but plan limits remain provisional, backend enforcement is absent, legacy and new tier stores overlap, and the requested offers/trial/grandfathering are not implemented. The objective is one auditable entitlement system shared by App Store Connect, RevenueCat, backend, iOS, and admin.
Product principles
- Backend access and quota decisions are authoritative; iOS explains and resumes intent.
- Explore remains discoverable to Free users; limits affect playback time, not catalog visibility.
- A paywall appears at a clear value moment, never randomly over playback or another modal.
- Displayed discounts must map to a real store product/offer and actual eligibility.
- Grandfathered access is independent from App Store purchase state.
- No user can lose paid Pro because a lower complimentary grant is applied.
- Every quota has a named window, rollover rule, cap, and immutable usage ledger.
Plan contract
| Rule | Free | Plus trial (3 days) | Plus | Pro |
|---|---|---|---|---|
| Recurring-show generation | 1 show/week | 1 show/week; max 1 during trial | 2 shows/week | 5 shows/week |
| Recurring episode max | 5 min | 15 min | 15 min | 25 min |
| One-time episode generation | 2 episodes/week | 4 total during trial | 10 episodes/week | 50 episodes/week |
| One-time max | 5 min | 15 min | 15 min | 25 min |
| Explore catalog | All catalog visible; 45 playback min/week | Unlimited | Unlimited | Unlimited |
| Playback speed | 1× only | Up to 1.5× | Up to 1.5× | Up to 2× |
| Transcript | Hidden | Included | Included | Included + advanced tools |
| Remix | No | Yes | Yes | Yes |
| Files | 0 | 3/week, 20 MB/file | 3/week, 20 MB/file | 25/week, 25 MB/file |
| Soundscapes | Basic catalog | Extended catalog | Extended catalog | Complete catalog |
| Sound effects | Included | Included | Included | Included |
| Pro sources/export | No | No | No | Source monitoring, advanced transcript, creator export |
Rollover normalization
| Meter | Window | Rollover rule | Recommended cap |
|---|---|---|---|
| Recurring-show generation | Weekly (UTC week; signup-anchored is a future refinement) | Unused weekly shows roll one next weekly window | Free 2; Plus 4; Pro 10. Trial receives 1 total and does not roll. |
| Free Explore playback | Weekly | Unused minutes roll one week | 90 minutes total |
| One-time episode generation | Weekly (all tiers) | Unused episodes roll one week | Free 4; Plus 20; Pro 100. Trial 4 total with no rollover. |
| File uploads | Weekly | Unused upload credits roll one week | Plus 6; Pro 50 |
Recurring-show values are shows generated per week (not per day, not a count of active schedule slots): Free 1, Plus trial 1 total, Plus 2, Pro 5. One-time values are one-off episodes per week: Free 2, Plus trial 4 total in trial, Plus 10, Pro 50.
Three-day Plus trial
- Trial attaches to selected Plus subscription products as an Apple introductory free trial.
- Trial begins only after the user confirms the App Store purchase sheet; merely viewing a paywall never starts it.
- Backend detects RevenueCat
period_type=TRIAL, sets access phasetrial, trial start/end, and the restricted trial limit profile. - Trial receives Plus capabilities, but recurring-show generation is capped at one show for the weekly window and one total during the three-day trial, and one-time episodes are capped at four total during the trial.
- Renewal price, billing cadence, and exact trial end are displayed beside the CTA.
- Trial reminder is opt-in, scheduled after notification permission, and canceled/rescheduled if the entitlement changes.
- Apple permits only one introductory offer per subscription group; a user who consumes this trial cannot receive another intro offer in that group.
Offer ladder and state machine
| User state | Primary paywall | On close | Next eligible high-intent event |
|---|---|---|---|
standard | Normal plan/trial paywall | Show one 50% exit offer | Persist stage rescue50 |
rescue50 | Start directly with 50% offering | Show one 65% exit offer | Persist stage rescue65 |
rescue65 | 65% only when campaign and store eligibility permit | Dismiss completely; no fourth wall | Cooldown or campaign expiry |
| Active paid/trial/grant | No acquisition paywall | — | Plan management only |
| Lapsed subscriber | Apple/RevenueCat win-back if eligible | Dismiss | Respect win-back eligibility and cooldown |
RevenueCat supports one exit offer from a presented paywall, not an unlimited stack. The requested behavior is therefore implemented across two sessions: standard→50%, then later 50%→65%. RevenueCat notes that aggressive exit offers can face App Review scrutiny as manipulative. Use one rescue per presentation, a visible close, truthful renewal terms, and a server cooldown.
Recommended offer mechanics
For never-subscribed users, promotional offers are not the right primitive because Apple limits them to current or previous subscribers. Use App Store introductory pricing on dedicated rescue products/packages, or approved offer codes. Attach every rescue product to the same Plus entitlement and show only through its RevenueCat offering. For lapsed subscribers, use promotional or win-back offers instead. Discount means 50%/65% off the first paid billing period unless product signs off on another duration; renewal returns to the standard price.
Paywall placements
| Placement | Surface | Trigger | Resume after purchase |
|---|---|---|---|
| Onboarding | Full page | Final onboarding step | Enter app with correct access |
| Second/extra generation | Full page | Recurring or one-time credit unavailable | Submit generation |
| Plan & billing | Full page | Profile → Plan & Billing | Return to plan management |
| Locked personal episode | Full page | Free user taps generated episode requiring paid playback | Play tapped episode |
| Generation allowance | Bottom sheet | Credit/length limit reached | Submit valid creation |
| Higher recurring allowance | Bottom sheet | User requests a schedule or generation beyond the current weekly credits | Save or retry after valid access |
| Document attach | Bottom sheet | File upload unavailable/exhausted/oversize | Open picker |
| Remix | Bottom sheet | Free user taps Remix | Open Remix |
| Pro sources | Bottom sheet, violet | Non-Pro user taps Pro source/export tool | Open tool |
| Transcript | Bottom sheet | Free user opens transcript | Open transcript |
| Speed | Inline lock/sheet | User selects > plan maximum | Apply chosen speed |
| Soundscape catalog | Inline locked row/sheet | User selects catalog item above tier | Select soundscape |
| Explore weekly time | Bottom sheet | Free playback ledger reaches limit | Resume selected catalog item |
Subscription management
Profile/Settings → Plan & Billing becomes the permanent self-service entry point. It shows the effective plan, trial/paid/complimentary state, renewal or expiry date, current weekly and one-time balances, pending plan changes, Restore Purchases, and a Change or Manage Subscription action. Free and grandfathered-only users open the plan comparison flow; App Store subscribers open Apple’s native management sheet or RevenueCat Customer Center. Upgrades, downgrades, cadence changes, cancellation, and restore must refresh the server-authoritative access snapshot. The complete iOS build specification is in the separate iOS Subscription Management IPRD.
In-app jump notifications / monetization nudges
A jump notification is defined here as an in-app banner, card, coachmark, or inbox item that opens a paywall after an explicit tap. It must not automatically interrupt active playback.
- Eligible moments: 80% allowance used, weekly credit available, trial ending in 24 hours, locked feature discovery, newly available rollover credit, and a campaign-qualified 50%/65% offer.
- Maximum one monetization nudge per session, one push per 72 hours, and no nudge within 24 hours of a paywall dismissal.
- Suppress during playback, creation submission, onboarding before the offer step, another sheet, reauthentication, or a purchase in progress.
- Stop all acquisition nudges for active trial, paid, or grandfathered users.
- Persist exposures server-side for cross-device frequency caps.
Grandfathering
Admin selects a cohort using signup cutoff plus optional filters, chooses Plus or Pro, start/end time, campaign, reason, and whether the grant is revocable. The backend creates idempotent grants in bulk after a dry run. A grant overlays store access but never lowers a paid tier. Expiry reveals the underlying store tier. Lifetime access requires a nullable expiry or explicit permanent-grant type; do not fake lifetime with a distant date.
Analytics and success metrics
- Events: gate evaluated, paywall impression/close, exit offer impression, CTA, purchase started/completed/failed, restore, activation latency, trial started/converted/canceled, quota reserved/finalized/released, nudge impression/tap/dismiss, grant created/revoked/expired.
- Dimensions: placement, offer stage, offering/product, tier, access phase, quota type, remaining allowance, app build, environment, cohort, experiment.
- Primary metrics: paid conversion, trial start, trial-to-paid conversion, realized LTV, restore success, entitlement mismatch, gate-to-purchase conversion, refund rate, and negative UX signals.
Master acceptance criteria
- One canonical Free/Plus/Pro access snapshot is used by backend, iOS, and admin.
- Every paid capability is blocked by the backend as well as explained by iOS.
- Every quota returns remaining, reset time, rollover balance, and authoritative denial reason.
- A sandbox purchase projects through RevenueCat webhook and unlocks within the agreed latency.
- Trial users receive the trial-specific limit profile and convert/expire correctly.
- Offer-stage state survives reinstall and works across devices.
- Grandfathering dry-run, apply, revoke, expire, and paid-tier overlay are audited.
- No paywall appears over another sheet or active purchase; every successful purchase resumes the initiating action exactly once.