Churn & dormancy

Resellers pay per lead, not by subscription — so we lose them silently: they buy less, then stop, and drift out the back with no cancellation to count. This page is built around one decision: who do I intervene with now to protect revenue, is recovery working, and is there a cheaper way to hit the number by winning them back rather than buying new?

Big Value
error
Big Value
error
Big Value
error
Big Value
error

Fact · Cause · Action

AI-generated — stub. £4,740 of monthly revenue is at risk out the back, some of it high-value — and it's cheaper to win it back than to replace it. Two of this month's new-lapsers fell from the high-frequency band (£900 of the risk); recovery is running but the rate is slipping; and at £25 a save against £160 new CAC, the pool is a cheaper route to the revenue number than more acquisition — if it's big enough.

SectionFactCauseProposed action
Who to save now2 of 11 resellers newly lapsed this month fell from the High-frequency band and carry ~£900 of the £1,860 at risk — from just two accounts.A high-frequency reseller going quiet is abnormal — a service, satisfaction or competitor problem, not natural decay.Personally save the 2 ex-High lapsers this week; each is worth roughly fifteen once-a-month ones.
Are interventions workingRecovery rate on worked lapsers has slipped to 40%, below the 50% bar, even as we work more of them.The at-risk pool is growing faster than we can reach it, so we're catching resellers colder.Work the lapsed list earlier and faster, starting with the early-lapsed tier where saves are cheapest.
Reactivate vs acquireA reactivation costs ~£25 against ~£160 new CAC, and the pool holds £4,740 of recoverable monthly revenue.Winning back a warm, already-onboarded reseller is far cheaper than acquiring a cold new one.Divert budget from new acquisition into working the pool while it's this cheap and this full — if it can carry the revenue target.
Leading indicatorsThe share of active resellers with declining logins has risen from 10% to 22% — disengagement building before any purchase gap shows.Product usage falls before ordering does; the purchase-gap metric lags by weeks.Treat a login-decline flag as an early lapsing trigger — intervene before day 30, not after 90.

Who to save now — revenue at risk

This week. The money is at the top: High is 2 accounts worth £900, Medium 3 worth £600, Low 6 worth £360 (expected decay). The two ex-High accounts are still early-lapsed (34 and 41 days) — high-value and still warm. · AI stub

Loading...
Data Table
Catalog Error: Table with name base_churn_savelist does not exist!
Did you mean "information_schema.key_column_usage"?

LINE 3: from demo.base_churn_savelist order by band_order, resellers...
             ^

State movement — who moved where

This week. The machine runs the wrong way. ~4 active resellers slide to lapsed each week (the red) against ~2 recovered back (green); lapsed deepens into dormant faster than it recovers; hard cancels are the thin dark tail. Recovery is real but outpaced by the slide. · AI stub

Bar Chart
Catalog Error: Table with name base_churn_flow does not exist!
Did you mean "pg_catalog.pg_tables"?

LINE 2: ... FROM (select week_start::date as week_start, flow, value from demo.base_churn_flow where state = 'Active' order by flow_o...
                                                                          ^
Bar Chart
Catalog Error: Table with name base_churn_flow does not exist!
Did you mean "pg_catalog.pg_tables"?

LINE 2: ... FROM (select week_start::date as week_start, flow, value from demo.base_churn_flow where state = 'Lapsed' order by flow_o...
                                                                          ^
Bar Chart
Catalog Error: Table with name base_churn_flow does not exist!
Did you mean "pg_catalog.pg_tables"?

LINE 2: ... FROM (select week_start::date as week_start, flow, value from demo.base_churn_flow where state = 'Dormant' order by flow_...
                                                                          ^

The slide to dormant

This week. Active is up (42 → 54), but the at-risk pool has grown faster — lapsed + dormant from 22 to 40. A rising share of the base is drifting quiet while acquisition fills the front. · AI stub

Area Chart
Catalog Error: Table with name base_churn_states does not exist!
Did you mean "information_schema.key_column_usage"?

LINE 2: ... (select week_start::date as week_start, state, count from demo.base_churn_states order by state_order, week_start
                                                                      ^

Reactivation burndown — and the acquisition trade-off

This week. The pool holds £4,740 of recoverable monthly revenue across 40 resellers. Early and mid lapsed reactivate for ~£15–£30 — far under the £160 new CAC; dormant costs ~£180, above the CAC line. The pool is growing, not burning down. · AI stub

Area Chart
Catalog Error: Table with name base_churn_pool does not exist!
Did you mean "pg_catalog.pg_description"?

LINE 2: ... FROM (select week_start::date as week_start, tier, count from demo.base_churn_pool order by tier_order, week_start
                                                                          ^
Line Chart
Catalog Error: Table with name base_churn_tier_cost does not exist!
Did you mean "information_schema.character_sets"?

LINE 2: ...* FROM (select week_start::date as week_start, tier, cost from demo.base_churn_tier_cost order by tier, week_start
                                                                          ^

Where to invest — the pool by tier

This week. Early-lapsed resellers carry £1,920 of recoverable revenue at ~£15 a save — by far the best return — down to dormant at £180 a save. The churned tier is a hail-mary: 7 remain contactable within the GDPR window. · AI stub

Data Table
Catalog Error: Table with name base_churn_tiers does not exist!
Did you mean "information_schema.table_constraints"?

LINE 2: ..., resellers, recoverable_rev, cost_to_recover, verdict from demo.base_churn_tiers order by tier_order
                                                                       ^

Leading indicators — before the purchase gap

This week. 22% of active resellers show declining logins, up from 10% — a growing pool disengaging while still nominally active, before any purchase gap opens. · AI stub

Line Chart
Catalog Error: Table with name base_churn_leading does not exist!
Did you mean "information_schema.table_constraints"?

LINE 2: ... week_start::date as week_start, pct_active_at_risk from demo.base_churn_leading order by week_start
                                                                    ^

← Engagement & cadence  ·  Supply overview →