← Monetization hub

Offer-stage rescue ladder

Verified handoff · updated 21 July 2026

Code state: original ladder work is integrated in iOS develop through PR #317. The dismissal/presentation correction is pushed on fix/offer-ladder-dismiss-pop at c6305160 and still needs review/merge.

Expected customer flow

  1. Original/default paywall appears.
  2. User taps the explicit Close button without purchasing.
  3. The same presentation replaces its content with the exact RevenueCat save50 offering.
  4. Close again → exact save65 offering.
  5. Close again → the paywall dismisses.
  6. A purchase at any stage resets the ladder to standard.

Why the discount screen was not appearing

What commit c6305160 changes

Important: merging the code fix alone will not make discounted prices appear. The exact RevenueCat offerings and App Store products must exist and return eligible packages.

External setup remaining

  1. Approve the 50% and 65% price points, eligible plans, eligibility rules, and discount duration.
  2. Create the required subscription products/offers in App Store Connect.
  3. Import and attach them in RevenueCat.
  4. Create offerings named exactly save50 and save65.
  5. Attach at least one valid package/product to each offering.
  6. Create and attach the RevenueCat paywall design for each offering, with correct renewal disclosure and localized prices.
  7. Verify the production RevenueCat SDK key, entitlement mapping, App Store credentials, and webhook.

Release acceptance

Validation note

The correction passes source/diff checks and is pushed. A clean Xcode 26.5 targeted build was attempted on 21 July 2026, but the machine exhausted local disk space while compiling dependencies; this is an environment failure, not a reported Swift compiler failure in the changed files. The targeted test and live RevenueCat sandbox sequence remain release gates.