Skip to main content
Metrics type: Key MetricsCategory: Ecommerce Platform
Sum of order.total where status in [completed, processing]. The morning question every WP merchant opens with.

At a glance

Headline gross revenue across every WooCommerce order placed in the period. The arithmetic sum of order.total for orders whose status is completed or processing, fetched from GET /wp-json/wc/v3/orders and indexed nightly.

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 UK fashion brand running on self-hosted WooCommerce 8.6 with the Stripe Gateway plugin and a small marketplace integration via WooCommerce Amazon Connector. The 30-day window covers 14 Mar 26 to 12 Apr 26. Five things to notice:
  1. The order.total column for refunded is non-zero. WC does not zero out the order total when a refund is processed. The original total stays in place; refund objects are stored separately under /orders/{id}/refunds. This card excludes refunded orders from the sum (because of the status filter), but if the merchant changes the status filter to “all paid” they will inadvertently include refunded order totals at their original gross value. This is the most common Woo accounting confusion.
  2. on-hold is £8,140 of revenue limbo. On-hold typically means BACS / direct-bank-transfer or a manual gateway awaiting confirmation. It is the Woo equivalent of BigCommerce’s Incomplete status. If the merchant ships before the bank transfer clears, that £8,140 is risk. The card does not include it; track it via On-Hold Orders.
  3. Self-hosted server uptime matters. This brand’s host had a 4-hour outage on 2 Apr 26 between 03:00 and 07:00 UTC. The Vortex IQ indexer could not reach the WC REST API during that window, so 14 orders worth £1,820 only appeared in the index 6 hours late. For a 30-day window this is noise, but for a daily figure the gap is visible. Managed-Woo hosts (Woo.com Cloud, WP Engine) rarely show this pattern.
  4. The Amazon Connector adds 92 orders worth £6,440. These orders enter WC with created_via = "amazon" (custom plugin meta). They are summed here without distinction. To slice marketplace from web revenue, use Marketplace Drift, which compares Woo-stored marketplace revenue against the marketplace’s own dashboard.
  5. The 30-day prior window was £208,540. Total Revenue is down 3.05% vsP, well below the drop >15% vsP alert threshold. Vortex IQ Nerve Centre stays quiet, but the card itself shows the trend and the merchant can drill into Revenue Trend for the daily curve.

Sibling cards merchants should reference together

Reconciling against the vendor’s own dashboard

Where to look in WooCommerce Admin: WP Admin → WooCommerce → Reports → Orders → Sales by date. Set the same window (default 30D), and look at Gross sales for the closest match to this card. WC’s “Net sales” column subtracts refunds so it reads lower. Other WP Admin views that look like the same number but are not:
  • WP Admin → WooCommerce → Home → Stats overview: shows a 7D / 30D figure but uses the WC Analytics module (a separate engine introduced in WC 4.0 with different status filtering). It typically matches this card on stores running WC 4.0+ but can diverge on legacy reports.
  • WP Admin → Analytics → Revenue (WC 4.0+): this matches Net revenue, post-refund. Lower than this card.
  • Stats widget on the WP Admin dashboard: today only, in WP site timezone (wp_timezone_string()).
  • Any WC reports plugin (WPDataTables, Metorik, Putler): each plugin defines status filters differently. Verify the filter set.
Why our number may legitimately differ from WooCommerce Admin: Cross-connector reconciliation (when the merchant has connected payment processors): When the WooCommerce Stripe Gateway plugin is in use, Stripe sees the same charges this card sees, minus on-hold orders (no Stripe charge) and minus any PayPal / manual / COD payments. Net of all processors: Stripe + PayPal + manual + COD should sit within 2% of this card. A persistent gap > 2% means a payment processor is missing from your Vortex IQ workspace, or one is double-counting refunds.

Known limitations / merchant FAQs

Does it matter whether my Woo store is self-hosted or on WordPress.com / managed Woo? For the number itself, no, the REST API is the same and this card pulls order.total regardless. For data freshness, yes. Self-hosted Woo on shared hosting can suffer 99.5% uptime (~3.6 hours of downtime a month), and during those gaps the indexer cannot reach the API. Managed Woo (Woo.com Cloud, WP Engine, Pressable, Kinsta) typically runs 99.95%+ uptime. WordPress.com Business and Commerce plans are equally steady. If you see periodic gaps in Revenue Trend, check your host status page first. Why does this card exclude on-hold? On-hold means the customer has placed the order but the payment has not been captured: BACS, direct bank transfer, cheque, or a manual gateway awaiting confirmation. Including it would inflate revenue with money that may never arrive. The Woo standard for “real” revenue is completed + processing. Track on-hold separately via On-Hold Orders, it is the Woo equivalent of BC’s Incomplete status. A persistent on-hold pile above 5% of orders signals a payment-method UX problem (BACS friction, gateway timeout). My WooCommerce refunds page shows different numbers, why? Because Woo stores refunds as separate child posts under the parent order, not as a deduction from order.total. WC’s Refunds report sums refund objects; this card sums original order totals. To get a “post-refund” view, subtract Refund Value Trend from this card. The most common merchant accounting confusion is treating order.total as net of refunds, it is not, ever, on Woo. My Woo Analytics module shows a different total, what should I trust? WC 4.0+ ships with the Analytics module which uses a separate wc_order_stats table and can apply different status filters and date logic (it can also include on-hold in some report views). For the canonical “money the customer was billed” figure, this card is the reference. For a “money realised” figure, look at WC Analytics → Revenue, which is post-refund. A plugin is changing the data shape on my orders, what do I do? Woo’s plugin ecosystem is its biggest strength and biggest weakness for analytics. Subscriptions plugins, multi-currency plugins, points-and-rewards plugins, B2B plugins, and tax plugins all add custom meta and sometimes overload order.total semantics. The Vortex IQ Woo engine reads the canonical order.total field. If your store uses a plugin that stores the “true” total in custom meta (e.g. WooCommerce Subscriptions stores recurring totals in _subscription_recurring_total), reach out to support@vortexiq.ai so the engine can be extended for your shape. Why is my Stripe number different from this card? The WooCommerce Stripe Gateway plugin sees only Stripe-routed charges, not PayPal, not BACS, not COD, not manual offline payments, not gift cards. Stripe will always be <= WC Total Revenue. Typical splits: Stripe ~70-85%, PayPal ~10-20%, BACS / manual ~5-10%. If Stripe reads ~50% of WC, you have a substantial off-Stripe payment mix and should connect PayPal too. Why does today’s number jump up and down so much? Today is incomplete data. Orders add into the bucket as the day progresses, and as midnight rolls past some orders flip date because of WP-site-timezone-vs-UTC effects. Use the rolling 7-day or 30-day view for stable numbers, that is why the alert window is 30D vsP and not 1D. If you need a daily-only view, Revenue Trend gives the daily curve. Self-hosted server slowness made yesterday’s number lower, when does it catch up? The Vortex IQ Woo indexer polls hourly by default. If the WP host was slow or unreachable, missing orders are picked up on the next successful poll, usually within 1 to 3 hours. Persistent gaps (multi-day) suggest the indexer credentials have expired (consumer key/secret rotated by the merchant) or the host has IP-blocked the indexer. Check WooCommerce → Settings → Advanced → REST API and verify the Vortex IQ key is still listed. My WP Admin shows a different number from this card, debug playbook:
  1. Confirm the same date window in both views, WC reports default to “this month” while this card defaults to rolling 30D.
  2. Confirm the status filter, change WC reports to include only completed + processing to match this card.
  3. Confirm the timezone, this card runs on UTC, WC reports run on WP-site timezone. For a 30-day window the gap should be < 1%.
  4. Confirm the refund treatment, WC’s Net sales subtracts refunds, this card does not. Use Gross sales for the apples-to-apples view.
  5. If gap > 2% after all four checks, contact support, likely a plugin overloading order.total or a sync gap.

Tracked live in Vortex IQ Nerve Centre

Total Revenue 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.