Where the dashboard's headline revenue number comes from
MRR at risk: tracking subscription revenue in WooCommerce
"Revenue at risk" shows up on a lot of dashboards as a rough estimate or a number from a report that ran last week — useful for a glance, not for deciding what to do today. Twenty subscriptions at risk sounds like one problem until you know whether that's $180 a month or $8,000 a month; the row count alone can't tell you which it is.
Every flagged row carries its own value
When Subscription Health Check's scanner scores a subscription, it stores that subscription's own recurring value — its MRR — alongside the risk classification, the severity, and how many days until the event. The revenue figure travels with the risk, row by row, which is what makes a real-time total possible instead of a stale export.

The dashboard total is just addition
"MRR at risk" is the sum of that value across every currently active, flagged subscription from the latest completed scan. There's no separate reporting job computing it on a schedule of its own and no cache that can drift out of sync — it's read straight from the same table the risk table itself is built from.
Why the number moves the way it does
A subscription that resolves — its retry finally succeeds, or the customer updates an expiring card before renewal — drops off the active list on the next scan, and its value leaves the total with it. A subscription that gets cancelled while at risk moves out the same way. The number reflects what's actually happening right now, not what was happening when a report was last generated.
What it's actually for
Row counts alone can be misleading — 20 subscriptions at $9/month and 3 at $400/month are very different problems wearing the same "23 at risk" badge. Sorting by MRR at risk lets a store owner or an agency managing several stores decide what to chase first by the dollar value actually on the line, not just by how many rows are in the table.
- ▸Every scan row carries the subscription's own MRR value
- ▸Dashboard total = sum across active, flagged rows from the latest scan
- ▸Resolved and cancelled rows drop out of the total on the next scan
- ▸Recalculated on every scan — no separate reporting step
How is MRR at risk calculated in WooCommerce?
It's a direct sum of the recurring value (MRR) of every subscription currently flagged as failed payment, grace period, or expiring card from the most recent scan — not a rough estimate or a separately scheduled report.
Does MRR at risk update in real time?
It updates on every scan. There's no separate reporting job running on its own schedule and no cache that can drift out of sync — the number is read straight from the same table the risk table itself is built from.
Why sort by MRR at risk instead of just counting flagged subscriptions?
Row counts can be misleading — 20 subscriptions at $9/month and 3 at $400/month look identical as "23 at risk," but they're very different problems. Sorting by MRR at risk lets you chase what's actually worth the most first.
See it flag your own subscriptions.
$129 per site, billed annually. Run the first scan on your own store's data, not a demo.
Buy now — $129/yr