Recurring revenue health
Recurring arrangements decay quietly. Nobody sends a cancellation; runs get paused, quantities get trimmed, suggestions stop being accepted. This is the monthly read that catches it while it is still a conversation.
The four numbers worth reporting
Everything else is diagnostic detail. These four are the report.
| Number | How to read it | What a bad value means |
|---|---|---|
| Recurring share of revenue | Revenue from scheduled runs, subscriptions and accepted suggestions, over total revenue, per period | It is not growing: the mechanism is not spreading beyond the pilot accounts |
| Active / paused / ended | The count of arrangements in each state, and the movement between them since last month | Paused is growing faster than active: silent churn |
| Run success rate | Runs that produced an order, over runs due | Below 95 percent: something structural, not bad luck |
| Accounts with at least one arrangement | Count, against total trading accounts | Flat: your team stopped setting them up |
The fourth is the one that predicts the other three. Recurring revenue is mostly a sales-motion question, not a software question: arrangements exist because somebody sat with a customer and set one up.
The states, and what movement between them means
| Movement | Reading |
|---|---|
| New → Active | Your team is selling it. The number to grow |
| Active → Paused | Fine once. A pattern across an account is a signal |
| Paused → Active | The mechanism is trusted enough to be resumed |
| Paused → (nothing, 60+ days) | This is churn. It has not been recorded as such |
| Active → Ended, with a reason | Healthy. You can learn from it |
| Active → Ended, no reason | A gap in your process, not in the data |
The fourth row deserves the emphasis. A paused arrangement counts as active in most naive reports, so a business can lose a third of its recurring base and show a flat number. Put an age on every pause and treat anything over sixty days as ended until somebody proves otherwise.
Churn signals that arrive early
B2B customers do not cancel. They go quiet, and in a recurring context they go quiet in a specific, detectable order:
- Quantities drift down on the underlying order list. The arrangement is still active; it is carrying less each run.
- Skips increase. Two skips in a quarter is a conversation.
- Suggestions stop being accepted. The acceptance rate for the account falls before anything else moves.
- The interval between manual orders lengthens, even while the recurring part looks stable. They are buying the ad-hoc half somewhere else.
- Then a pause. By this point the decision was made weeks ago.
The account-level signal for the last two is already maintained for you. On
every organization in CRM, the Orders tab shows Last order,
Orders 30 d, Orders 90 d, Revenue 30 d and Revenue 90 d;
underneath, organization_metrics also holds the 365-day figures and the
average order value. Together they tell you whether an account is slower than
its own normal rhythm, which is the only churn definition that works when every
account has a different interval. See
The metrics that matter in B2B.
Hold the result as a segment with a rule on days since last order, so it is a list of company names somebody works through, not a percentage on a slide.
Forecast accuracy
The point of recurring revenue is that it is predictable. Test that claim rather than assuming it.
Once a month, take last month's forecast, the runs that were scheduled and the subscription amounts that were due, and compare it with what was invoiced. Then split the gap:
| Gap source | Fixable by |
|---|---|
| Runs that did not fire | Common problems |
| Runs that fired at a different price | Price mode and expiring contract prices |
| Quantities changed before the run | Nothing. This is normal, but it should be in the forecast as a variance band |
| Orders held for approval and never released | Stuck approvals |
| Suggestions forecast as revenue but never accepted | Do not forecast suggestions as revenue |
The last row is a common self-inflicted wound. A suggestion is a proposal. Put accepted suggestions in the actuals and leave unaccepted ones out of the forecast entirely, or your recurring number is a wish.
Three months of this tells you your real variance band. A forecast quoted without one is a single number pretending to be a fact.
Where the numbers come from
- Order-list conversions are the reorder metric. Every time a saved list becomes an order, the order exists with its position count and value. That count over time is the cleanest measure of whether reordering is being used. Until the planned run report exists, filter the order list by organization and count. See Order lists and recurring carts.
- Per-account rhythm comes from the Customers app's per-organization metrics, visible as the Order history block on the organization's Orders tab and usable as segment rules.
- Everything else is an export today: the order list in Commerce Studio as CSV, or an export profile in Integration Studio. When Analytics Studio ships, the same questions become a report over the datasets your apps publish. See Reports and exports.
The monthly loop
- Read the four numbers. Note the direction, not the value.
- Work the paused-over-sixty-days list. Each one is a call.
- Work the quiet-account segment. Each one is a call.
- Compare last month's forecast with actuals and attribute the gap.
- Check that the number of accounts with an arrangement went up.
Twenty minutes, once a month, with names attached. That is the whole discipline.
Next
- Common problems — fixing the run failures this surfaces.
- Build recurring revenue — the wider scenario this sits inside.