Skip to main content
Card class: HeroCategory: Ecommerce Platform
Sum of failed orders + suspended-listing potential + abandoned-checkout estimated value.

At a glance

A single live number that rolls up the money your store is currently at risk of losing. WooCommerce revenue leaks in three places at once: orders that hit failed at the gateway, products whose listings are suspended or at risk (out-of-stock with ad spend behind them, marketplace drift), and the estimated value of carts abandoned at checkout. This card sums those three components into one figure so the merchant has a single “how much is bleeding right now” pulse instead of three separate reads.
What it countsThe live sum of three components: (1) the value of orders currently in failed status, (2) the potential revenue tied to at-risk or suspended listings, and (3) the estimated value of abandoned checkouts. Components are added arithmetically into one currency figure.
REST API endpointComposite. Failed-order value is read from GET /wp-json/wc/v3/orders filtered to status=failed. At-risk listing value is derived from product and stock data (wc/v3/products) combined with any connected ad-spend or marketplace signals. Abandoned-checkout value is estimated from checkout / session data; WooCommerce does not store a first-party “abandoned cart” object out of the box, so this component depends on a cart-recovery plugin or estimation, described generally.
How the value is computedThe three component values are summed. Failed-order value uses each failed order’s order.total. At-risk listing value estimates lost sales from products that cannot sell. Abandoned-checkout value is an estimate, not a booked figure, and is the softest of the three. The card is a directional risk signal, not an accounting total.
Status / scope treatmentFailed-order component counts failed only, not pending, on-hold, cancelled, or refunded. The card is live (real-time), so it reflects the current at-risk position, not a windowed historical total.
Self-hosted vs managed-WooThe composite works on self-hosted, WordPress.com, and managed-Woo (Woo.com Cloud, WP Engine, Pressable, Kinsta). The abandoned-checkout component is the most environment-sensitive: its quality depends on which cart-recovery or analytics plugin the store runs, since WC has no native abandoned-cart store.
Time windowRT (real-time, reflects the current at-risk position)
Alert trigger>$0, driven by sentiment_key: wc_revenue_at_risk
Rolesowner, finance

Calculation

Calculated automatically from your WooCommerce data. See the At a glance summary above for what the metric tracks and the worked example below for a typical reading.

Worked example

A self-hosted WooCommerce store on WC 9.0 running the Stripe Gateway, a Google Ads integration, and a cart-recovery plugin. Snapshot taken live at 11:00 on 14 Jun 26.
ComponentSourceValue at risk
Failed orders (current failed status)38 orders x avg £74£2,812
At-risk / suspended listings12 out-of-stock SKUs with live ad spend behind them£4,300
Abandoned-checkout estimate210 abandoned carts x est. £19 recoverable£3,990
Revenue at Risk (this card)£11,102
Four things to notice:
  1. The three components sum to £11,102. No single card tells this story: £2,812 from gateway failures, £4,300 from products that cannot sell while ads still spend on them, and £3,990 of estimated cart recovery. The card’s job is to put one number on the merchant’s combined exposure right now.
  2. The failed-order slice is the most actionable. £2,812 across 38 failed orders points at a gateway or payment-friction problem. Drill into Failed Orders (Last 24h) and Checkout Error Rate (24h) to see whether a recent change caused it, and check Plugin Updates (Last 24h) for a culprit.
  3. The at-risk listing slice is real lost margin plus wasted ad spend. £4,300 of out-of-stock SKUs with live ads is a double loss: the sale you cannot make and the ad budget you are still spending. See Ad Spend on OOS Products to stop the bleed at source.
  4. The abandoned-checkout component is an estimate, not a booked number. £3,990 is “recoverable if recovery emails convert”, not money you have lost for certain. It is the softest of the three and depends on your cart-recovery plugin’s data. Read the total as a directional risk signal, not an accounting figure, the alert fires at >$0 precisely because any non-zero exposure is worth a look.

Sibling cards merchants should reference together

CardWhy pair it with Revenue at Risk (live)
WC Failed Orders (Last 24h)The failed-order component, broken out. The fastest-acting slice of the total and usually the first to investigate.
WC Failed Order RatePuts the failed-order slice in context as a percentage of all orders, so you can tell a spike from a steady baseline.
WC Ad Spend on OOS ProductsThe double-loss inside the at-risk listing component: budget spent on products that cannot sell.
WC Out of Stock ProductsThe inventory side of at-risk listings. Restocking these directly reduces the figure.
WC Pagespeed-Caused Cart Abandonment LossIsolates how much of the abandoned-checkout component is driven by site speed rather than price or intent.
WC Checkout Error Rate (24h)A rising checkout error rate feeds both the failed-order and abandoned-checkout components at once.
WC Total RevenueThe denominator for sizing the risk. Revenue at Risk as a percentage of Total Revenue tells you how serious the exposure is.

Reconciling against WooCommerce

Where to look in WooCommerce Admin: There is no single WP Admin screen that shows this composite, because the card combines three different leaks. Reconcile each component separately:
  • Failed orders: WP Admin → WooCommerce → Orders filtered to Failed. Summing the totals of these orders gives the failed-order component.
  • At-risk listings: WP Admin → Products filtered to out-of-stock, cross-referenced against your ad platform’s active campaigns for the spend-behind-them figure.
  • Abandoned checkouts: your cart-recovery plugin’s own dashboard (CartFlows, Abandoned Cart Lite, FunnelKit). WooCommerce core does not store abandoned carts, so this number lives in the plugin, not WP Admin.
Why our number may legitimately differ from WP Admin:
ReasonDirection of divergence
Abandoned-checkout component is an estimate. WC has no native abandoned-cart object. The estimate depends on your recovery plugin’s definition of “abandoned” and its recoverable-value assumption, which will rarely match a manual tally.Variable; this is the softest component
Time-zone. The failed-order component is read in UTC; WP Admin filters orders in the WP site timezone (Settings → General → Timezone). Orders near midnight can land on different sides of “today”.Marginal at day boundaries
Self-hosted uptime / sync lag. A live card depends on fresh data. If the host was unreachable, the most recent failed orders or stock changes may not yet be reflected, so the figure can lag the true live position.Ours temporarily lower; self-resolves at next sync
At-risk listing valuation method. Estimating lost sales from an out-of-stock SKU requires a sales-velocity assumption. A manual reconciliation using a different velocity assumption will land on a different number.Variable; both are estimates
HPOS vs legacy storage. On High-Performance Order Storage the failed-order data lives in the orders table; a store mid-migration can have orders split across stores. Reconcile against the live WooCommerce → Orders screen.Either; investigate per-merchant

Known limitations / merchant FAQs

Is this an accounting figure I can put in a report? No. Revenue at Risk is a directional risk signal, not a booked total. The failed-order slice is concrete (real orders that failed), but the at-risk listing and abandoned-checkout slices are estimates of money you might lose, not money you have lost. Use it to prioritise where to act, not to reconcile your books. Why does the abandoned-checkout part change so much? WooCommerce does not store abandoned carts natively, so that component comes from your cart-recovery plugin and its definition of “abandoned” and “recoverable value”. Different plugins use different windows and assumptions, so the number moves with the plugin’s logic. If you do not run a cart-recovery plugin, this component may be absent or estimated more coarsely. **The card says 0,doesthatmeannothingisatrisk?Itmeansnoneofthethreetrackedcomponentscurrentlyshowexposure:noordersinfailedstatus,noflaggedatrisklistings,andnoestimatedabandonedcheckoutvalue.Becausethealertfiresat>0, does that mean nothing is at risk?** It means none of the three tracked components currently show exposure: no orders in `failed` status, no flagged at-risk listings, and no estimated abandoned-checkout value. Because the alert fires at `>0`, a genuine zero is the quiet state you want. Confirm the underlying components are actually reporting (for example that your cart-recovery plugin is connected) before treating a flat zero as all-clear. How is this different from just looking at failed orders? Failed orders are one of three components. A store can have low failed orders but high at-risk listing value (out-of-stock SKUs still drawing ad spend) or a large abandoned-checkout estimate. Revenue at Risk exists to combine all three so a single number reflects total live exposure rather than just the gateway slice. How current is the figure? It is a live (real-time) card, refreshed on the standard sync, typically hourly on a self-hosted store. The failed-order and stock components are as fresh as the last sync; the abandoned-checkout estimate is as fresh as your recovery plugin’s data. On a self-hosted store, host downtime can briefly understate the live position until the next clean poll. Why did it jump after a plugin update? A plugin update that breaks checkout pushes orders into failed and increases abandoned checkouts at the same time, which inflates two components at once. If the figure spikes right after an update, check Plugin Updates (Last 24h) and roll back the suspect plugin on staging.

Tracked live in Vortex IQ Nerve Centre

Revenue at Risk (live) is one of hundreds of KPI pulses Vortex IQ tracks across WooCommerce and 70+ other ecommerce connectors. Nerve Centre runs the detection layer; Vortex Mind investigates the cause when something moves; Ask Viq lets you interrogate any number in plain English. Start for free or book a demo to see this metric running on your own data.