Milo Advanced Analytics

Deep subscription analytics: MRR movement, churn breakdown, cohort retention, lifetime value, trial conversion, customer health, revenue forecasting, CSV exports, and scheduled email digests.

Installation

  1. Install and activate WooCommerce and the free Milo Subscriptions plugin (both are required).
  2. Upload and activate Milo Advanced Analytics (Plugins → Add New → Upload).
  3. Enter your license key under Subscriptions → Licenses to enable updates.

The add-on adds seven new tabs to Subscriptions → Analytics: MRR Movement, Churn, Cohorts, Lifetime Value, Trials, Health, and Forecast.

Configuration

Calculation settings (they affect MRR, churn, cohort, and LTV figures; changing one flushes the analytics cache):

Setting Description
Deduct taxes Exclude the tax portion from revenue figures. Off by default.
Deduct shipping Exclude the shipping portion from revenue figures. Off by default.
Count on-hold as churned Treat on-hold subscriptions as churned instead of excluding them. Off by default.

Email digest settings, under Subscriptions → Settings:

Setting Description
Weekly report On/off switch. Sends every Monday at 9:00.
Monthly report On/off switch. Sends on the first day of each month at 9:00.
Report email Recipient address. Defaults to the site admin email.

The digest email covers MRR, active subscribers, new subscribers, churned subscribers, renewal revenue, failed payments, and the churn rate for the period. A test send is available so you can preview it.

The reports

All amounts are normalized to monthly equivalents whatever the billing period (daily, weekly, monthly, yearly, with any interval), so a $120/year plan counts as $10 of MRR.

  • MRR Movement: the SaaS waterfall per month, New MRR, Expansion MRR, Churn MRR, and Net New MRR.
  • Churn: churn split into voluntary (customer-initiated) vs involuntary (payment failure), plus breakdowns by product and by billing period.
  • Cohorts: a signup-month × period retention matrix. Metric is subscriber count or MRR; display is % of original cohort, % of previous period, or absolute values; up to 24 months.
  • Lifetime Value: ARPU from normalized per-subscription MRR, average lifespan (1 divided by the monthly churn rate), and LTV (ARPU × lifespan).
  • Trials: trial starts, conversion rate, average trial duration, and outcomes (converted, cancelled, expired) over 30 days, 90 days, 6 months, or 12 months.
  • Health: at-risk subscribers with the reason for each (expiring soon, on hold, recent failed payment) plus summary counts including pending cancellations.
  • Forecast: projected MRR up to 24 months ahead, applying exponential decay from your historical monthly churn rate to current MRR.

CSV exports

Three downloadable reports (admin-only, manage_woocommerce capability):

  • Subscriptions: every subscription with status, customer, email, product, recurring total, billing period, start date, next payment, and payment method.
  • Revenue: revenue over a chosen period (30 days by default).
  • Customers: per-customer LTV data.

Performance

Report results are cached for one hour with a versioned cache. Any subscription status change bumps the version, so all reports refresh immediately after real activity; repeat page views add no query load.

Troubleshooting

  • A tab shows stale numbers. The cache invalidates on subscription status changes and settings saves. Waiting an hour (the cache TTL) always refreshes; saving the analytics settings flushes it instantly.
  • No digest emails arrive. Reports are sent through Action Scheduler, which needs site traffic or WP-Cron to run. Check that the toggle is on and the recipient address is valid, then use the test send.

Billing modes

Requires WooCommerce; this add-on reads WooCommerce subscription orders and does not run in standalone (Stripe-driven) mode.

Did this page miss something?

Tell us and we rewrite it, usually the same day.

Send a note