> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vortexiq.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Average Order Value, WooCommerce

> revenue / orders. AOV slipping while orders climb usually = overly aggressive coupon stack, pair with discount_pct. How to read it, why it matters, and ho...

**Metrics type:** [Key Metrics](/nerve-centre/overview#metrics-types-explained)  •  **Category:** [Ecommerce Platform](/nerve-centre/connectors#connectors-by-type)

> revenue / orders. AOV slipping while orders climb usually = overly aggressive coupon stack, pair with discount\_pct.

## At a glance

> Average value of an order placed in the period. The arithmetic mean of `order.total` for orders whose status is `completed` or `processing`.

|                                |                                                                                                                                                                                                                                   |
| ------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **What it counts**             | `SUM(order.total) / COUNT(orders) WHERE status IN ('completed', 'processing')`. Each qualifying order contributes equally, weighted by its customer-billed total.                                                                 |
| **REST API endpoint**          | `GET /wp-json/wc/v3/orders` (orders list, filter by status + date). Field: `total`.                                                                                                                                               |
| **VAT / tax treatment**        | **Always tax-inclusive on the wire.** `order.total` is the post-tax customer-billed figure. Stores configured with `woocommerce_prices_include_tax = no` (US-style) still see `total` populated as the tax-inclusive grand total. |
| **Status filter**              | Includes `completed + processing`. Excludes `pending`, `on-hold`, `failed`, `cancelled`, `refunded`. Same as [Total Revenue](/nerve-centre/kpi-cards/woocommerce/total-revenue).                                                  |
| **Shipping**                   | Included. `order.total` already contains `total_shipping`.                                                                                                                                                                        |
| **Discounts**                  | Already deducted. `order.total` is the post-discount figure.                                                                                                                                                                      |
| **Refunds**                    | **NOT deducted.** Refund objects are separate; `order.total` does not change after a refund. To see post-refund AOV, divide \[Net Revenue] by \[Total Orders].                                                                    |
| **Cancelled / failed orders**  | Excluded (status filter).                                                                                                                                                                                                         |
| **Currency**                   | **Multi-currency arithmetic mean WITHOUT FX conversion.** Stores using CURCY / Aelia / WMC will mix currencies into a meaningless single number. Filter by `currency` for accuracy.                                               |
| **Channels / sources**         | Not filtered. Web checkout, marketplace plugin orders, REST-API-created orders, and POS plugin orders all contribute. POS orders typically pull AOV down (impulse buys); B2B plugin orders pull it up.                            |
| **Self-hosted vs managed-Woo** | No difference in definition; managed hosts produce steadier sync.                                                                                                                                                                 |
| **Time window**                | `30D vsP`                                                                                                                                                                                                                         |
| **Alert trigger**              | `drop >10% vsP`, driven by `sentiment_key: aov_trend`                                                                                                                                                                             |
| **Roles**                      | owner, marketing, 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 B2B-leaning Woo store on managed-Woo (WP Engine), running WooCommerce Wholesale Prices plugin alongside DTC. The 30-day window covers 14 Mar 26 to 12 Apr 26.

| Customer segment                          | Orders    | Sum of `order.total` | Segment AOV |
| ----------------------------------------- | --------- | -------------------- | ----------- |
| DTC web checkout                          | 1,420     | \$128,400            | \$90        |
| Wholesale (`wholesale_customer` role)     | 84        | \$84,720             | \$1,008     |
| POS plugin orders (in-person trade shows) | 36        | \$1,440              | \$40        |
| Marketplace (Amazon Connector)            | 92        | \$6,440              | \$70        |
| **Blended AOV (this card)**               | **1,632** | **\$221,000**        | **\$135**   |

Three things to notice:

1. **Wholesale dominates AOV without dominating volume.** 84 wholesale orders (5.1% of count) contribute $84,720 (38.3% of revenue). The blended AOV of $135 is meaningless to either segment, the DTC merchant cares about $90, the wholesale ops team cares about $1,008. Use [Top Customers](/nerve-centre/kpi-cards/woocommerce/top-customers-by-ltv) to spot the segments.
2. **Plugin-induced data shape variance.** Wholesale Prices plugin stores wholesale-specific totals in custom meta (`_wholesale_priced_total`) and updates `order.total` to the wholesale figure. The Vortex IQ Woo engine reads `order.total` as-is, no normalisation needed. But if the merchant later swaps to a different B2B plugin (e.g. WooCommerce B2B), the meta key changes and historical comparisons may shift.
3. **POS pulls AOV down.** \$40 average from in-person trade-show sales is structurally lower than DTC. A heavy POS month compresses blended AOV without anyone "doing anything wrong". This is a Woo-specific gotcha because POS plugins are bolt-ons, not a first-class Woo channel.

## Sibling cards merchants should reference together

| Card                                                                         | Why pair it with AOV                                                                        |
| ---------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- |
| [WC Total Revenue](/nerve-centre/kpi-cards/woocommerce/total-revenue)        | AOV times Orders is Revenue. Without revenue context AOV is misleading.                     |
| [WC Total Orders](/nerve-centre/kpi-cards/woocommerce/total-orders)          | The denominator. Rising AOV with falling orders means you are selling more to fewer people. |
| [WC Conversion Rate](/nerve-centre/kpi-cards/woocommerce/conversion-rate)    | Trades off with AOV. Free-shipping thresholds raise AOV but slightly hurt conversion.       |
| [WC Top Customers](/nerve-centre/kpi-cards/woocommerce/top-customers-by-ltv) | B2B / wholesale customers pull AOV up. Pair to see segment-driven AOV moves.                |
| [BC AOV](/nerve-centre/kpi-cards/bigcommerce/average-order-value)            | Same tax-inclusive `total` semantics. Useful peer for agencies.                             |
| [Shopify AOV](/nerve-centre/kpi-cards/shopify/average-order-value)           | SaaS-platform peer.                                                                         |

## Reconciling against the vendor's own dashboard

**Where to look in WooCommerce Admin:**

[WP Admin → WooCommerce → Reports → Orders → Sales by date](/wp-admin/admin.php?page=wc-reports\&tab=orders\&report=sales_by_date) shows **Average gross daily sales** and **Average net daily sales**. For order-level AOV, compute *Gross sales / Number of orders* manually for the same period; that should match this card to within 1-2%.

Other WP Admin views that look like AOV but are not:

* **Analytics → Revenue → Average order value (WC 4.0+)**: this is post-refund (net) AOV. Reads lower than this card.
* **Stats overview widget**: today only, in WP-site timezone.

**Why our number may legitimately differ from WooCommerce Admin:**

| Reason                                                                                                                               | Direction of divergence                     |
| ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------- |
| **Time-zone**. WC reports run on WP-site timezone; Vortex IQ on UTC.                                                                 | Boundary-day effects                        |
| **Self-hosted server uptime**. Sync gaps push AOV either direction depending on which orders are missed.                             | Either                                      |
| **Plugin-version compatibility**. B2B plugins overload `order.total`; subscription plugins create renewal orders at recurring price. | Material on subscription / wholesale stores |
| **Refund-object aggregation**. WC's "Net AOV" subtracts refunds; this card does not.                                                 | This card higher than WC Net AOV            |
| **Currency plugin behaviour**. Multi-currency stores see arithmetic mean across currencies; meaningless without filtering.           | Material for international stores           |

**Cross-connector reconciliation (when a payment processor is connected):**

| Card                                                                                      | Expected relationship                                                                                  |
| ----------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------ |
| [`stripe.stripe_aov`](/nerve-centre/stripe/stripe_aov)                                    | Stripe AOV \~= WC AOV for stores using only the WC Stripe Gateway. Gap grows with PayPal / BACS share. |
| [`google_analytics.ga_aov`](/nerve-centre/kpi-cards/google-analytics/average-order-value) | Within \~5% on healthy tagging. Larger gaps mean ad-blocker / cookie-rejection erosion.                |

***

<details>
  <summary><em>Same-metric documentation cross-reference (for agencies running multiple platforms)</em></summary>

  * [`shopify.aov`](/nerve-centre/kpi-cards/shopify/average-order-value)
  * [`bigcommerce.aov`](/nerve-centre/kpi-cards/bigcommerce/average-order-value)
  * [`adobe_commerce.aov`](/nerve-centre/kpi-cards/adobe-commerce/average-order-value)
</details>

## Known limitations / merchant FAQs

**Hosted-vs-self-hosted, does it affect AOV?**
The number is the same definition. Self-hosted Woo on flaky shared hosting may produce slightly noisier daily AOVs because some boundary-day orders sync late.

**Why does WC Analytics show a lower AOV than this card?**
WC Analytics → Revenue uses post-refund (net) AOV. This card is gross. The two should converge as refunds settle.

**Refund-object accounting, what does it mean for AOV?**
Refunds do not change `order.total`, so a partially refunded $200 order still contributes $200 to AOV here. WC's Analytics module subtracts refunds from a separate Net AOV figure. Use whichever matches your accounting view.

**Plugin-induced data shape variance, how does it affect AOV?**
Subscriptions plugins create renewal orders at recurring (often lower) totals, this pulls AOV down on subscription-heavy stores. B2B / Wholesale plugins push AOV up via large basket sizes. Neither is wrong; they reflect the channel mix.

**Multi-currency, how should I read AOV?**
If your store sells in more than one currency, this card's blended AOV is a mathematical average without FX conversion, treat it as a coarse signal only. Filter by `currency` for per-currency AOV (per-currency cards on the roadmap).

**Why does Woo and Stripe disagree on AOV?**
Stripe-routed payments only. PayPal and BACS orders bypass Stripe. Stripe AOV will track Stripe-paying customer behaviour, this card tracks all paying customers.

**Today is jumpy, why?**
Small samples are noisy. A single \$1,500 wholesale order on a 50-order day moves AOV by 30%+ on its own. Use rolling 7D / 30D for stable reads.

**Self-hosted server slowness, will I see weird AOVs?**
If the indexer caught only half a day's orders before an outage, the AOV for that half-day skews toward whichever orders did sync. Self-resolves at the next clean poll.

**My WP Admin shows a different AOV, debug:**

1. Match the date range exactly.
2. Match the status filter (`completed + processing`).
3. Distinguish Gross AOV vs Net AOV (this card is Gross).
4. If the gap remains, check whether a B2B / subscription plugin overloads `order.total` shape.

***

### Tracked live in Vortex IQ Nerve Centre

*Average Order Value* 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](https://app.vortexiq.ai/login) or [book a demo](https://www.vortexiq.ai/contact-us) to see this metric running on your own data.
