Skip to main content
Analytics is Revenue Recovery’s home page and its report. Before you are connected, the page shows how the product works and what is left to set up. Once recovery is running, it reports:
  • Revenue recovered, in two tiers. Verified is money that was actually charged: a checkout completed, or a renewal or redemption charge collected. Pending is money the member agreed to but that has not landed yet, either because they said yes or because they redeemed their code. Pending shows the date it collects, and it graduates to verified automatically when the charge happens. A secondary ”≈ $X/mo ongoing” line shows the monthly run rate of the saves that are still active. That line is kept separate from the dollar totals and is never added into them.
  • A members-recovered tile, split by who gets the credit: said yes on a call, came back after our text, or came back on their own. A note appears when earlier wins re-cancelled. Those are not counted.
  • A plain-word recovery funnel of three stages. Members cancelled. Then we reached them, by an answered call or our offer text. Then they came back after we reached them. A member with no touch at all still counts in the members tile, just not in the funnel. On apps that show the Money won back report below, a Revenue recovered over time chart takes this slot instead. The funnel’s numbers are already on the cards above it.
  • Why members leave, drawn from what members actually say on calls. Click any reason to see the members and call recordings behind it. Each reason’s percentage is its share of the members who actually told you something, not of every cancellation. The reasons therefore stay readable however many people left without saying why.
  • The members recovered list, with the proof behind each save.
A date-window selector scopes everything: This week, Last week, Month to date, Last 30 days, or All time. The window you choose also shows the exact dates it covers. When an A/B test is running or recently closed, an Offer performance card compares the variants here too. That card sits in the Cancellation recovery view described below. See A/B Testing.
The cancellation reasons are built from what your members actually said on their recovery calls. There is no fixed list of reasons. The categories are named from your own members’ words. A dating club sees something like “No matches nearby”. A fitness app sees something else entirely. They are refreshed automatically. New reasons are filed into your existing categories as they come in. The full set is reconsidered weekly, so categories can merge or split as the picture becomes clearer.Members who never gave a reason get no bar of their own. They are never grouped under “unknown” or “other”, because only what was actually said is counted as a reason. The totals here can therefore be smaller than your total cancellations. They are not hidden either. The line above the bars states both numbers: “8 of 60 cancellations shared a reason”. The count underneath it, “52 never told us why”, clicks through to exactly those members.

Choose a workflow

Revenue Recovery runs two workflows, and Analytics reports one of them at a time. Cancellation recovery covers members who had a subscription and lost it. Signup recovery covers people who signed up and never paid. See Signup Recovery for the workflow itself. A switcher at the top of the page names both workflows. It appears once more than one workflow is available. A workflow is available when you have turned it on, even with no data yet, or when it already has data. Signup recovery leads as the default. The page opens on it whenever it is available, and on cancellation otherwise. With one workflow available, there is no switch to make. Your choice then holds while you change the date window, unless that workflow has nothing in the window you moved to. The numbers, the funnel, and the member table you see all belong to the workflow you are on. Everything under the workflow view covers both: where the recovered revenue came from, your commission breakdown, and the continuous lift card. A Pipeline health panel sits above the switcher whenever a workflow has an integration problem, so you see it on either tab. Collapsed, it is a one-line summary of how many issues there are. Open, it lists them, grouped by workflow. It opens itself when something is blocking, because that is when nobody is being called.

Cancellation recovery

This view is the report described above: the recovery funnel, the money and members tiles, why members leave, and the members recovered list. The Offer performance card sits here too, for every account. See A/B Testing.

Signup recovery

Choose Signup recovery for the funnel and the member table. The pipeline warnings that used to lead this view now sit in the Pipeline health panel above the switcher. See If it is not working. The signup funnel reads like the cancellation funnel above, the same descending bars stage by stage. Its five stages are Signed up, Unpaid, Reached, Paid, and Billable. Billable is the subset you are invoiced for. Under it sits the same row of summary cards the cancellation view shows. The Signup recovery table lists everyone the workflow has touched, newest first. Four columns: Member, What happened, Outcome, and When. Member is the name your signup event carried, with the phone number under it. What happened is one plain sentence. Click a row to open that person’s profile, with the call recording and the transcript. The Outcome badge is one of six. Waiting is still inside your wait time, or still waiting on a phone number. Due to be contacted means the wait is over and nothing has gone out yet. Not contacted means we never called, and the sentence beside it names the reason. Reached means we reached them and there is no purchase yet. Paid means they bought after we reached them, and it carries the amount when a store demonstrably charged it. Paid on their own means they paid during the wait, so we stopped, and it is never counted or charged. A search box above the table covers the name, the phone number, and the What happened sentence. Sort by clicking the When header. The Rows menu underneath pages the table: 10 signups per page by default, or 25 or 50.
Signup recovery keeps its own table rather than joining the cancellation one. These people never had a subscription, so the plan, billing, and cancellation columns would be empty for every one of them.
While the page refetches, the signup view says Refreshing… and keeps the funnel and table in place. It never shows you an empty result mid-fetch. If the data cannot load at all, the view says so and offers Retry.

Money won back

Analytics leads with a Money won back report. It is computed directly from your billing provider’s own records rather than our internal tracking. The headline is therefore what your store actually charged, verified purchase by purchase. The report covers both billing rails. One is subscriptions billed through RevenueCat: App Store, Play Store, or RevenueCat-managed web billing. The other is subscriptions billed directly through your connected Stripe account. If you use both, the headline is one combined total with a per-rail split underneath. The member table also gains a Billing column. You never see two competing numbers. A member counts as won back only when both of these are true:
  1. We actually reached out. They got a call or a text from your win-back workflow. Members we never contacted are never counted, and never billed, whatever they later bought.
  2. They came back and paid. A paid subscription started after they entered recovery, within the attribution window, which is 21 days by default. Purchases from before the cancellation never count, so a member’s original purchase can never be claimed as a recovery. For Stripe-billed members whose cancellation we reversed, meaning they kept their existing subscription, the recovery is counted from the moment the cancellation was reversed. Only the money paid after that moment counts. Earlier payments on the same subscription are never claimed.
Recovered money is split by what the member came back on. The two groups never overlap and always add up to the total:
  • Win-back plan. They came back on your designated win-back plan, the plan offered only through win-back outreach. These are proven recoveries.
  • Other plan. They came back on any other paid plan inside the window. These are real recoveries. The plan itself just does not prove that the outreach caused them.
The report leads with four numbers: Revenue recovered, Members reached, Won back, and your Recovery rate. Members reached counts the members we actually contacted, by an offer or pre-call text, or by at least one dial. Being enrolled is not being contacted. Recovery rate is won back divided by reached. Hover any of those titles for its definition. On the This week window they also show how they moved against last week, whenever there is a real prior week to compare with. Under them, a Revenue recovered over time chart plots the same money by the day it came back. The chart rolls up to weeks once the range gets long. hyzl’s fee is 20% of what is recovered. Every number is auditable. The table below lists each recovered member: what they bought, when, and for how much. It has its own search box and an Export button that saves exactly the rows you are looking at. Click a row to open that member’s full record: calls, texts, recording, and transcript. The report is computed from a snapshot of your billing records. The stamp under the headline says exactly when. Refresh recomputes it on demand. If one of your billing connections is down at compute time, the report says which side is not measured. It never presents a partial number as complete.
Your win-back can send a one-tap apply link. hyzl texts it when a member cancels while their plan is still active and the recovery call goes unanswered. Analytics then adds a separate One-tap apply link funnel. It shows links sent, then tapped “Keep my plan”, then kept their plan, with the tap and save rates.It counts only real button taps and the saves that follow, never link opens. A page view is not counted as a person, because a link can be fetched by a preview or security scanner before anyone taps it. The section appears only once you have actually sent apply links.

Needs attention

Sometimes something needs your attention. Your App Store offer-code pool can run empty, for example, so members who say yes cannot get their discount. One small banner then appears at the top of Analytics. It says what happened, how many members it affects, and what to do. The banner is dismissible. A new outage always reappears, even if you dismissed an earlier one. Calls that would waste a member’s yes pause automatically until you add codes, and resume on their own the moment you upload more. Members whose save needs a manual step, for example because they asked to speak to a person, appear as flagged rows on the Activity log.

Where you are losing people

Before any win-back campaign is running, the main Dashboard (home) estimates where members leave: never paid, free trial never converted, and paid then left. It also estimates how many of those people have a phone we can call or text, and it links you into win-back setup. Those are high-level estimates from your billing connections. Campaign performance and recovered dollars live here, on Recovery Analytics. See Dashboard.