The revenue Post · Cluster

Failed Payment Recovery — what actually works at $5K-$500K ARR.

Failed payment recovery is the highest-leverage revenue surface for solo SaaS founders. 5–10% of MRR fails every month. Stripe Smart Retries handle the retry attempts; the email layer is what actually recovers the customer. The recovery rate that's realistic at our scale is 35–55% — not the 30%-flat number some vendors promise. This piece breaks the surface down by decline-code bucket, retry cadence, and email tactic.

Failed Payment Recovery — the wedge expanded

This is a cluster page on the Revenue Post — the deeper read for the failed-payment-recovery wedge specifically. If you haven't read the Revenue pillar yet, start there.

Decline codes are the input. Stripe returns one of roughly 30 codes when a payment fails; for the email layer, four buckets matter. Hard decline (card closed, fraud, lost or stolen) is non-recoverable through retries — the customer has to update their card or the relationship ends. Soft decline (insufficient funds, do_not_honor, processor temporarily down) is highly recoverable via retry plus a friendly email a few hours later. Expired card is the most-recoverable bucket: a clear walkthrough of how to update without canceling the subscription works in 70%+ of cases. Generic decline (unknown reason) gets the lowest-pressure email — "something happened with your card, here's a payment-update link" — because guessing wrong can damage the relationship.

Retry cadence matters less than founders think. Stripe Smart Retries is the optimal layer here — it reads decline codes and retries on optimal cadences (immediate, 24-hour, 72-hour, 7-day) based on what's worked across the Stripe network. Rolling your own retry logic almost never beats Stripe's, and it costs you the time you should be spending on the email layer instead.

The email layer is the leverage point. Empirically, the sweet spot is one email after the second failed retry (around 24-48 hours after the initial failure) and a follow-up after the fourth (around 7 days). Sending more than two emails per failure damages the relationship; sending zero leaves recovery on the table. The first email establishes the failure context ("hey, your card got declined — here's why and how to fix it"); the second is a final nudge before the subscription pauses.

Auto-send vs manual review depends on customer size. For recoveries under $500 with established customers (3+ months tenure, no recent escalations), auto-send is reasonable and saves the founder time. Above $500, or for customers with active support tickets, manual review is the safer default — a single misfire can damage a high-value relationship more than ten manually-sent emails save in time.

The audit trail is what compounds. Six weeks in, the audit log tells you which decline codes recover at what rate, which email tactics work better than others, and which customer segments need different copy. Without an audit trail, you're optimizing by feel; with one, you're optimizing by data. Lou logs every recovery — the email drafted, the founder edits, the send timestamp, the recovery outcome — so the data is there from day one.

Realistic expectations: 35–55% recovery rate at our scale, depending on customer mix and email quality. Expired-card recoveries cluster around 70%; soft declines around 50%; hard declines around 15% (mostly customers who update their card later, not who respond to the email). Don't believe vendor claims of 30%+ flat recovery rates without breakdowns by decline code — the numbers don't generalize.

Common questions

Common questions.

  • How many recovery emails should I send per failure?

    Two. First email at 24-48 hours after the initial failure (after Stripe's second retry), second at ~7 days. More than two damages the relationship; fewer leaves recovery on the table. The two-email sequence is the empirical sweet spot at our scale.

  • What's a safe auto-send threshold?

    Under $500 with 3+ months of tenure and no active escalations is a reasonable starting point. Above $500 or for new customers, manual review is safer — a single misfire on a high-value account can damage the relationship more than the time saved by auto-sending.

  • Should I use dunning vendors alongside porchops?

    Yes if you've already invested in one. Stripe Smart Retries handle retries; Lou handles the email layer; Churnkey or Stunning can handle in-product cancel flows. They're complementary. The point is to have all three working — most founders have one or two and miss the third.

Read more

Back to the revenue Post.

Read the revenue pillar →