Recurring Revenue Profit: Model Cancellations and Service Costs

Pricing and profit: cost the work, then test the priceFor business ownersWorked example

Forecast recurring-service profit by rolling customer numbers forward, subtracting cancellations and adding new customers, then costing the service each active customer receives. Keep revenue separate from collected cash and track original cohorts as well as the growing total. Rising recurring revenue can hide weaker retention or more expensive support.

What you’ll get from this guide: Build a six-month customer and contribution forecast, with a separate support-cost sensitivity.

  • Reconcile opening customers, cancellations, additions and closing customers.
  • Track lost revenue as well as the number of customers lost.
  • Recalculate contribution when support effort changes.

Use this example for an established monthly service with several customers. It models the service pool, rather than the work behind one retainer. Bring active customers, cancellation dates, fees, collections and actual delivery costs.

Define when a customer counts

In this fictional forecast, cancellations and new starts take effect at the start of the month. All closing active customers receive a full month at $150. There are no partial months, discounts or upgrades. Each month six customers cancel and ten join. These are chosen scenario counts, not an assumed constant churn rate or a prediction.

Delivery costs $70 per active customer and onboarding adds $30 for each new customer. The cost basis includes all modelled variable servicing and payment costs; shared overhead, acquisition spending and tax remain outside contribution.

Six-month customer and contribution roll-forward

Assumptions: Fictional Australian-dollar management example. Revenue and costs exclude any recoverable GST; non-recoverable tax is included in costs. No GST entitlement or income-tax deduction is assumed for your business. Contribution is before unallocated overhead and income tax.

PeriodOpeningCancelNewActive/billedRevenueDelivery + onboardingContribution
Month 1100610104$15,600$7,580$8,020
Month 2104610108$16,200$7,860$8,340
Month 3108610112$16,800$8,140$8,660
Month 4112610116$17,400$8,420$8,980
Month 5116610120$18,000$8,700$9,300
Month 6120610124$18,600$8,980$9,620

Original ASBG worked example. All businesses, amounts and scenarios are fictional. The table contains the same figures as the visual.

Month 1 closes with 100 − 6 + 10 = 104 customers. Revenue is 104 × $150 = $15,600. Costs are 104 × $70 + 10 × $30 = $7,580, leaving $8,020 contribution.

Keep the original cohort visible

A cohort groups customers by when they started. For this example only, assume all six monthly cancellations come from the original 100 customers and none of the new ones leaves during the six months. This lets you compare total growth with retention.

Original customers and newer cohorts

Assumptions: Fictional Australian-dollar management example. Revenue and costs exclude any recoverable GST; non-recoverable tax is included in costs. No GST entitlement or income-tax deduction is assumed for your business. Contribution is before unallocated overhead and income tax.

PeriodOriginal 100 remainingNewer customers remainingTotal active
Start1000100
Month 19410104
Month 28820108
Month 38230112
Month 47640116
Month 57050120
Month 66460124

Original ASBG worked example. All businesses, amounts and scenarios are fictional. The table contains the same figures as the visual.

The customer pool grows to 124 while only 64% of the original group remains. In your records, track each joining month's cohort separately instead of assuming all departures come from the first group. Stripe's cohort documentation explains grouping subscribers by when they first generate recurring revenue.

Compare customer churn with revenue churn

For this worksheet, monthly customer churn is cancellations divided by opening active customers: 6% in month 1 and 5% in month 6. The denominator changes. State your definition when comparing a platform dashboard, which may calculate its metric differently.

Track recurring revenue lost from cancellations and downgrades too. Losing one large account can matter more than losing several small ones. Stripe's revenue-churn guide distinguishes gross revenue losses from a net measure that also includes expansion. New-customer revenue should not hide retention losses.

Test support effort and collections

Support-cost sensitivity: the data behind the chart

Assumptions: Fictional Australian-dollar management example. Revenue and costs exclude any recoverable GST; non-recoverable tax is included in costs. No GST entitlement or income-tax deduction is assumed for your business. Contribution is before unallocated overhead and income tax.

MonthActive customersBase contributionSupport +$20/customer
1104$8,020$5,940
2108$8,340$6,180
3112$8,660$6,420
4116$8,980$6,660
5120$9,300$6,900
6124$9,620$7,140

Original ASBG worked example. All businesses, amounts and scenarios are fictional. The table contains the same figures as the visual.

If service cost rises from $70 to $90 per active customer, month 6 contribution falls from $9,620 to $7,140, even though revenue remains $18,600. Multiply the extra $20 by 124 customers to find the $2,480 reduction. Use customer cost to serve to locate the extra work.

The forecast assumes billed revenue, not confirmed bank receipts. Add due dates, failed payments, arrears and refunds to your cash forecast. Have accounting treatment checked separately; recurring-revenue metrics are not a substitute for the accounts.

Where to get help

Ask your accountant to review the customer roll-forward and cost basis. The pricing and profit hub connects this forecast with service, capacity and customer-profitability reviews.

General information only. This guide doesn't take your personal or business circumstances into account and isn't financial, legal or tax advice. Rates and thresholds change — check the official sources linked in this guide and get qualified advice where your circumstances require it.