EnableYourData.com

KPI · Subscriptions and SaaS

Failed payment recovery rate: formula and example.

Failed payment recovery rate is the number (or value) of failed subscription payments you still collect within a set period, divided by all failed payments. Payments fail because of an expired card, insufficient funds or a reversed direct debit, for example. Every unrecovered payment risks becoming an involuntary cancellation.

Failed payment recovery rate formula

Recovered failed payments ÷ all failed payments × 100%

Worked example

In August, 80 payments worth €7,600 in total fail at Acme's subscription service. Within thirty days, 52 are paid after all, worth €5,320. Recovery rate by count is 52 ÷ 80 × 100% = 65%, and by value €5,320 ÷ €7,600 × 100% = 70%.

Fictitious figures for Acme Groothandel, a sample wholesaler.

How to read this KPI

A higher recovery rate means fewer customers leave unintentionally because a payment went wrong. Compare it by payment method and failure reason, and track it after changes to your reminder emails or retry schedule. A gap between count and value shows whether you mainly win back large or small payments.

Pitfalls with failed payment recovery rate

  • Including recent failed payments while the recovery process is still running.
  • Counting a customer who cancels after a failed payment and later signs up again as a recovery.
  • Not linking failed payments to churn, so involuntary cancellations are treated as ordinary ones.

SQL & DAX

Calculating failed payment recovery rate in SQL and DAX

Two examples on a fictitious data warehouse for Acme Groothandel: a PostgreSQL query and a measure for a Power BI model. Adjust table and column names to your own model.

SQL · PostgreSQL
SELECT date_trunc('month', failed_at) AS month,
       COUNT(*) AS failed_invoices,
       COUNT(*) FILTER (WHERE recovered_at IS NOT NULL) AS recovered,
       ROUND(100.0 * COUNT(*) FILTER (WHERE recovered_at IS NOT NULL)
             / NULLIF(COUNT(*), 0), 1) AS recovery_rate_count_pct,
       ROUND(100.0 * SUM(amount) FILTER (WHERE recovered_at IS NOT NULL)
             / NULLIF(SUM(amount), 0), 1) AS recovery_rate_value_pct
FROM invoices_failed
WHERE failed_at < current_date - interval '30 days'
GROUP BY 1
ORDER BY 1;
DAX · Power BI
Recovery Rate (count) =
DIVIDE(
    CALCULATE(COUNTROWS(FailedInvoices), NOT ISBLANK(FailedInvoices[recovered_at])),
    COUNTROWS(FailedInvoices)
)

Recovery Rate (value) =
DIVIDE(
    CALCULATE(SUM(FailedInvoices[amount]), NOT ISBLANK(FailedInvoices[recovered_at])),
    SUM(FailedInvoices[amount])
)

In ENABLE

Tracking this KPI in ENABLE

Plain-language questions

Ask for failed payment recovery rate per month, customer or product in the SQL Explorer with AI. The AI writes the SQL, you see the query and run it yourself; the AI only receives metadata.

Read more →

In your Power BI dashboard

Define the KPI as a measure in your Power BI model and show it in the portal, with "Last refreshed" next to it. Access profiles and optional row-level security decide who sees which figures.

Read more →

Custom dashboards (pilot)

Add the KPI as a tile to a custom dashboard, compared with last year. The Dashboard Builder is a pilot and can be switched on per client.

Read more →

Monthly targets

With the built-in Targets app you set a target for the KPI per month, so you see actuals and target side by side.

Read more →

FAQ

Frequently asked questions

How do you calculate failed payment recovery rate?

Divide the number of failed payments collected within a set period by the total number of failed payments in the same period. With 120 failed and 84 recovered payments, recovery rate is 70%. Calculate it by value as well.

What is involuntary churn?

Involuntary churn is the loss of customers who did not cancel themselves, but whose payment failed and was not recovered. Think of an expired credit card or a blocked direct debit. A higher recovery rate directly reduces involuntary churn.

How can you recover more failed payments?

Common measures are automatic retries at different times, reminder emails with a direct payment link, warning customers before their card expires and offering an alternative payment method. Measure how many extra payments each measure recovers. Many payment providers and subscription billing systems have settings for this.

Use AI on your own data. Securely, and without the headache.

In an online demo we show how ENABLE makes your data securely available and how you build on it: describing an app in the AI Builder, plain-language questions, dashboards and APIs. And how we set it up and manage it for you.