> ## Documentation Index
> Fetch the complete documentation index at: https://docs.encorekit.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Reduce Churn

> Recover revenue from users about to walk away: a premium brand offer offsets their subscription cost, funded by the brand.

A churn intervention turns a leaving moment into a save. The user has decided your subscription no longer clears the bar (they declined your paywall, or they're walking through your cancel flow), and instead of letting them go your app presents a **premium brand offer**: a real perk a brand funds to acquire customers. Because the offer offsets the user's subscription cost, and the brand pays for it rather than you, staying subscribed suddenly costs the user less than leaving. This page is the canonical description of the use case; the integration walkthroughs are the SDK quickstarts in [Integration surfaces](#integration-surfaces).

## The paywall decline

The highest-intent moment. The user has seen your paywall, knows your pricing, and is about to leave without purchasing. They've already shown purchase intent by getting this far, so an offer that changes the math feels like a personalized win rather than an interruption. Present it as the last screen between them and the exit, triggered when the user:

* Taps "X" or swipes to dismiss the paywall.
* Taps "Not now" or "Maybe later".
* Navigates back from a pricing screen.

<Tip>
  This is the recommended starting point for a new integration: get this one moment working, measure, then expand to the cancel flow.
</Tip>

## The cancel flow

The user is an existing subscriber actively trying to cancel. They've already paid before, so the willingness to stay is high if the math changes before the cancellation completes. Trigger the offer when the user:

* Taps a cancel or unsubscribe button in your settings.
* Opens subscription management with cancel intent.
* Is about to be redirected to the store's subscription-management page.

<Warning>
  Never block the cancel flow. If the user dismisses the offer, your passthrough handler must let the cancellation proceed.
</Warning>

## The mechanic

The save is a premium brand offer, **paid for by the brand, never by you**. A brand funds the perk (a free trial, a discount) as its cost of acquiring a customer; your app supplies the moment and the audience. This use case is SDK-led: your code detects the moment and calls the SDK, Encore renders the offer sheet, and your existing subscription plumbing (native StoreKit or Play Billing, or your subscription manager) completes any subscription purchase the offer leads to. On iOS you can pair the moment with an App Store promotional offer so the save also carries a discounted or free period; see [Create a Promotional Offer](/publishers/ios/platform-setup/create-promotional-offer).

## The economics

Revenue from this use case lands in the **`paywallUplift`** metric: subscription revenue recovered from users who were about to leave. Two rules govern how it's counted:

* **The lift is measured, never assumed.** Encore compares exposed users against a holdout, so the subscription ARPU lift you see is incremental, not correlation.
* **The value compounds.** A saved subscriber keeps renewing, so each save pays out over the subscriber's remaining lifetime rather than once.

## Integration surfaces

| Surface                               | When to use it                                                                                                     | Start here                                                                                |
| ------------------------------------- | ------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------- |
| **iOS SDK** (recommended start)       | Native Swift apps; the SDK renders the offer and drives StoreKit or your subscription manager                      | [iOS quickstart](/publishers/ios/quickstart/install)                                      |
| **Android SDK**                       | Native Kotlin apps; the SDK renders the offer and drives Play Billing or your subscription manager                 | [Android quickstart](/publishers/android/quickstart/install)                              |
| **Web SDK**                           | Web paywalls and cancel flows, with the two-phase deferred claim                                                   | [Reduce Churn at the Paywall guide](/publishers/web/guides/intercept-paywall-abandonment) |
| **Neither: this isn't your use case** | The user just accomplished something (a purchase, a streak, a milestone) and you want to celebrate it, not save it | [Reward Users](/publishers/use-cases/post-action-reward)                                  |

React Native and Flutter apps use the bridge SDKs over the same native trees: start from the [React Native quickstart](/publishers/react-native/quickstart/install) or the [Flutter quickstart](/publishers/flutter/quickstart/install).

The SDK is the lead surface for this use case: the moments live inside your app's paywall and settings flows, and rendering the offer plus driving the subscription purchase is exactly what the SDK manages for you.

## Related

* [Create a Promotional Offer](/publishers/ios/platform-setup/create-promotional-offer): pair the save with a discounted or free period on iOS.
* [Reduce Churn at the Paywall](/publishers/web/guides/intercept-paywall-abandonment): the Web SDK flow end to end.
* [Integration Patterns](/publishers/ios/guides/integration-patterns): how to wire offer results into your paywall and cancel flows on iOS.
