Every number in the Subscription Report is defined here, with the formula it is actually calculated from. If a figure looks wrong, or two tabs disagree, start on this page.
MRR and ARR
Both come from a single annual run-rate. For every active subscription, the recurring total is converted to an annual figure according to its billing period, then divided by its billing interval:
| Billing period | Multiplier |
|---|---|
| Year | × 1 |
| Quarter | × 4 |
| Month | × 12 |
| Week | × 52 |
| Day | × 365 |
A subscription billed every 3 months is therefore counted as total × 4 ÷ 1; one billed every 2 months as total × 12 ÷ 2.
- MRR = annual run-rate ÷ 12
- ARR = MRR × 12 — which is exactly the annual run-rate again
The annual run-rate is calculated first, so ARR and MRR can never drift apart by rounding.
Recurring totals are order totals, so they include tax and shipping where your store charges them.
Active Subscriptions — two definitions
This is intentional, but it means the two tabs will not match on a store with subscriptions awaiting cancellation.
| Where | Counts | Note |
|---|---|---|
| Overview report | Status active only | The stricter figure. A subscription set to cancel at period end is not counted. |
| Customers report | Status active and pending-cancel | The customer still has access until the period ends, so they are counted as a current subscriber. |
The Customers report’s list is filterable by developers through wcs_reports_active_statuses, which receives array( 'active', 'pending-cancel' ).
Churn Rate (Last 30 Days)
A standard subscriber churn rate, measured against the base you started the window with:
- Numerator — subscriptions that moved to cancelled or expired within the last 30 days.
- Denominator — subscriptions that existed 30 days ago and had not already been cancelled or ended at that point.
- This is subscriber churn, not revenue churn. A cancelled $200/mo subscription and a cancelled $5/mo subscription count the same.
- The card always uses a rolling 30-day window and ignores the date-range picker.
Renewal Success Rate — two definitions
The Overview card and the Upcoming Revenue forecast both publish a renewal success rate, and they count differently. Expect them to differ on any store that has cancelled or pending renewal orders.
| Where | Counted as success | Counted in the total |
|---|---|---|
| Overview card | WooCommerce’s paid statuses, plus completed | Success, plus failed, cancelled and pending |
| Upcoming Revenue forecast | completed and processing only | Success, plus failed only |
Net Subscription Growth
"Ended" means cancelled or expired within the period. The Over Time report describes the same figure as the net change in active subscriptions across the period — it is the same calculation, worded differently.
Lifetime Value
Per customer, lifetime value is the sum of their initial subscription order total plus all their renewal and switch order totals. These are order totals, so tax and shipping are included.
The Average Lifetime Value summary card is the customer-weighted mean of that figure across the customers included in the report under your current filters — not a store-wide, all-time average. Change the filters and the average changes with them.
Revenue Recognition
Recognition amortises each paid subscription order across the days of the period it covers. Full detail, including refunds, trials and the treatment of tax, is on Revenue Recognition and Deferred Revenue.
Which subscription and order statuses count
| Report | Statuses in scope |
|---|---|
| MRR / ARR | Subscriptions with status active, excluding trialing and lifetime |
| Active Subscriptions (Overview) | active |
| Active Subscriptions (Customers) | active, pending-cancel |
| Churn Risk scoring | active, on-hold, pending-cancel |
| Upcoming Revenue forecast | The same open set, minus pending-cancel — so on-hold subscriptions are included in the forecast |
| Revenue Recognition | Orders with status completed or processing |
| Churn Rate | Subscriptions moving to cancelled or expired |
Churn Risk scores on-hold and pending-cancellation subscriptions because both are at risk of ending. The forecast excludes pending-cancellation because that revenue is not expected to arrive. This is why the two tabs can show different subscription counts for the same store.
Dates and time zones
| Surface | Time zone |
|---|---|
| Daily rollup table (Over Time, Products, Customers) | Your store’s local time zone, from Settings → General |
| Revenue Recognition months | Your store’s local time zone |
| Overview cards and weekly groupings | UTC |
Weeks start on Monday. The default date range when a report is first opened is the trailing 12 months.
Multi-currency stores
Who can see the reports
Every tab, and the settings screen, requires the manage_woocommerce capability — in practice an Administrator or Shop manager. There is no separate, lower-privilege view. If someone reports an empty report or a permissions error, this is the first thing to check.
Why a figure might not match WooCommerce’s own reports
| Symptom | Most likely cause |
|---|---|
| MRR is 0 or far lower than expected | Free trials and lifetime subscriptions are excluded, and only active subscriptions count. |
| Two tabs disagree on active subscriptions | Expected — see the two definitions above. |
| Everything is zero on a store with history | The historical import has not been run. See Importing Historical Data. |
| Revenue Recognition does not tie to WooCommerce’s revenue report | Expected. WooCommerce reports cash when it is collected; recognition spreads it over the period it is earned. They agree only over the full life of a subscription. |
| Money figures look inflated | Check whether your store takes more than one currency — see the multi-currency warning above. |
| A day’s figures moved after midnight | Overview uses UTC while the daily rollup uses store local time. See the time zone table. |