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

# A/B Testing Win-back Offers

> Test script-and-discount combinations against each other and promote the one that recovers the most revenue.

For any Stripe-managed win-back campaign, you can test a few different script-and-discount combinations against each other to see which recovers the most revenue, instead of relying on a single flat offer.

## Setting up a test

1. Open the campaign editor for the workflow you want to test and go to **Revenue Recovery settings → A/B testing**. This is available for Stripe-managed campaigns only, for now.
2. Turn on the **A/B testing** switch and configure **2–5 variants**. Each variant pairs an optional script tweak — a short instruction that shapes how the AI opens or frames the call — with its own win-back discount percentage, set independently of the others.
3. Save the campaign — that's what starts the test. From then on, every new recovery call is split evenly across the variants, automatically and consistently — retries always stay in the variant that was assigned on the first attempt.

<Note>
  Once a test starts, its variants lock — the scripts and discount
  percentages can't be edited until the test is closed. This is intentional:
  changing a variant mid-test would mean some calls used the old version and
  some the new, making it impossible to fairly compare results. If you want
  to adjust anything, close the current test first, then start a new one —
  or duplicate the closed test as a starting point.
</Note>

<Note>
  A 0% variant behaves like a 0% flat offer on a live call — a feedback-only
  conversation — but it can't extend an offer on [resubscribe-link
  recoveries](/docs/revenue-recovery/the-call/resubscribe-links), since there's
  no discount to attach to the link.
</Note>

## Reading results

While a test is running, and after it's closed, its results appear on the Revenue Recovery [Analytics](/docs/revenue-recovery/analytics/overview) page in the **Offer performance** card, broken down by variant: the traffic split, how many calls went out, how many were saved, how many converted, the save rate, the revenue retained per month, and the revenue collected from one-time win-back checkouts — side by side, so you can see at a glance which variant is performing better. The variant with the highest revenue retained per month is marked **Leading**, once it's unambiguously ahead (a tie shows no badge). When more than one test's results are in the window (a closed test alongside the one that replaced it, for example), each is grouped under its own label so results never blend together.

Click the **View results →** link in a running test's panel to jump straight to Analytics with that workflow's results already selected.

<Note>
  If you run recovery workflows for more than one trigger or provider (for
  example, a Stripe cancellation flow alongside a Stripe trial flow, or
  Stripe alongside RevenueCat), the Offer performance card shows a row of
  tabs above the table — **All**, plus one per workflow (labeled like
  **Cancellation — Stripe** or **RevenueCat**) — so you can focus on a
  single workflow's results instead of reading them all blended together.
  The tabs only appear once there's more than one workflow's worth of
  results to split; older results that predate this grouping fall under an
  **Earlier** tab.
</Note>

<Note>
  These are raw counts, not a statistical significance test — Atllas doesn't
  (yet) tell you whether a difference between variants is large enough to be
  meaningful versus just chance. At low call volumes especially, treat the
  numbers as a directional signal, not a verdict.
</Note>

## Deciding a test

Deciding a test, promoting a winner or relaunching with fewer variants, happens in one place: the **Offer performance** card on **Analytics**. Closing a test without deciding a winner is available in two places instead: **Close test** on that same Analytics card, or **Close test** in the campaign editor's A/B panel. Either one asks you to confirm, then recovery calls immediately go back to using the campaign's flat win-back discount, and the variants unlock, so you can start a fresh test or duplicate the closed one as a starting point.

### Promoting a winner

Once you know how a test should end, click **Promote winner** on the **Offer performance** card (Analytics page). It is available any time a test is running. The dialog lets you select variants, and what happens depends on how many you pick:

* **Select one variant** to promote it. The test ends immediately, that variant's discount (and its script, if it has a custom one) becomes the campaign's standing win-back offer, and the other variants stop being used.
* **Select two or more variants (but not all of them)** to keep them and relaunch. The current test closes, its results stay right where they are on Analytics, and a new test starts immediately with only the variants you kept, split evenly across them. For example, keeping 2 out of 5 variants puts each of the survivors at 50% of new calls.

Nothing is preselected, so you always choose deliberately, and selection is free: you can keep or drop any variant, including the original. The dialog shows exactly what will happen before you confirm.

<Note>
  If a promoted variant had a script tweak attached, promoting it does not
  copy that tweak into the campaign's base script automatically. The
  dialog calls this out, and you'll need to copy it over yourself if you
  want to keep it.
</Note>

<Note>
  Relaunching starts a fresh test rather than reallocating traffic within the
  current one, because changing a running test's split mid-stream would
  corrupt the comparison. A fresh test keeps every read on both tests honest.
</Note>

The campaign editor's A/B panel itself only shows **View results →** (which jumps to Analytics for that workflow) and **Close test** while a test is running. Use the Offer performance card on Analytics to promote a winner or relaunch with fewer variants.
