Why failed payments matter
A failed payment is a subscriber who wanted to stay and lost the subscription to a card problem. Eightx, a subscription agency, reports that failed payments cause 30-40% of subscription churn, which makes them one of the biggest single causes of lost subscribers.
These subscribers already want the product, so the job is getting a working card on file. That makes payment recovery one of the first things we fix on a new subscription account, before any new flows.
Across the subscription brands we run on Loop, we saw at least 50,000 failed billing attempts in the last 90 days.
Not every failure is the same
Failures fall into 2 groups: soft failures that often clear on a later retry, and hard failures that only a new card will fix. Each needs a different number of retries and a different message.
In Loop, the General recovery strategy covers every failure by default. Advanced strategies let you set a separate ladder for specific reasons, including card expired, card retry declined and payment method revoked.
| Failure type | What it usually means | How we set it up |
|---|---|---|
| Insufficient funds (soft) | The money is not there today | More retries spread out, no discount, few messages |
| Card declined on retry (soft) | The bank declined again, for various reasons | A retry the next day, then wider gaps, a small incentive after the first retry |
| Card expired (hard) | Retries cannot work until the card is updated | Fewer retries, a card-update link from the first message, a small discount to update |
| Payment method revoked (hard) | The card was canceled or removed | The fewest retries, an early card-update message with an incentive to add a new card |
Retry timing
Retry soon after the first failure, then space the retries out, and stop sending a message on every one of them. A message every other day for a month reads like spam and makes the last-chance message easier to ignore.


Starting points we use, adjusted per brand:
- General strategy. One pet brand we run retries on day 1, then every 2 days up to day 27, with messages on only a few of those retries.
- Card expired. The setup we built for one skincare brand: 5 retries over 9 days (1, 2, 2, 2 and 2 days apart) with 10% off to update the card.
- Payment method revoked. For the same brand: 3 retries, 2 days apart, with 15% off to add a new card.
In our experience Loop needs at least 3 retries per strategy. Set the end action to pause instead of cancel, so a subscriber who updates their card later can restart without signing up again.

Card-update messages by SMS and email
The message has one job: get the subscriber to a working card-update page in 1 tap. Loop's quick actions create that link, and it can be used in Loop's own emails and in Klaviyo.

What we have learned building these:
- SMS first. Send the first SMS a few hours after the failure, then use email for detail.
- Quick action conditions are checked at the moment the subscriber clicks. If an offer depends on the retry count, an old email clicked late can show a different offer, so we split the retry range between quick actions and never link the biggest late offer in the early emails.
- One clear number, such as "Update your card and get 20% off your next order".
- No duplicate senders. Decide which messages come from Loop and which from Klaviyo, and turn off the overlap.
How to set it up in Loop and Klaviyo
Loop handles the retries and its own payment emails. Klaviyo adds SMS and extra emails, triggered by the events Loop sends. The setup we follow:
- In Loop, set the General strategy: retry count, spacing, which retries send an email, discounts and a pause at the end.
- Add Advanced strategies for card expired, card retry declined and payment method revoked.
- Create card-update quick actions, with any incentive tied to retry count.
- Restyle Loop's payment emails to match the brand.
- In Klaviyo, trigger an early-rescue flow on "Loop Billing Attempt Failed and will be Retried", with a filter so each subscriber enters once per failure, at the start of the ladder.
- Add a second flow on the last-retry event and a third on the final failure, pointing to the paused subscription and the restart offer.
- On every message, add a filter that stops it if "Loop Order Processed" or "Loop Subscription Cancelled" has happened since the flow started, and turn Smart Sending off so dunning messages are not skipped.
- Add a card-expiring flow on "Loop Payment Method Expiring" to catch cards before they fail.
Keep the Klaviyo delays anchored to the day of the first failure so they stay in step with Loop's fixed retry ladder.
What to measure
Measure recovery by failure type, revenue recovered, and how many failed subscriptions end paused. With one overall rate you cannot see which reason is pulling it down.
- Recovery rate per failure reason, per month.
- Revenue recovered per month.
- Share of failures that end paused, and how many of those restart.
- Discount cost per recovered subscription.
EK proof
We set up and run payment recovery in Loop for 6 subscription brands. Results from 3 of them, measured as Klaviyo's share of total store revenue:
- Kaori (women's health): Klaviyo went from 3.3% to 19% of store revenue. Flow revenue grew 17.7x.
- Penrose Skin (skincare): Klaviyo's share went from 15.2% to 23.2%. Email revenue grew 5.2x.
- KittySpout (pet): 46% of store revenue comes from Klaviyo.


