Total revenue / order count. Rising AOV often beats acquisition spend.
At a glance
Average value of an order placed in the period. The arithmetic mean of totalPrice across every order, regardless of fulfilment or refund status.
| What it counts | SUM(totalPrice) ÷ COUNT(orders), every order created in the window contributes equally, weighted by the customer-paid total. |
| VAT / tax treatment | Depends on Order.taxesIncluded. UK / EU stores typically have taxesIncluded = true, so AOV is VAT-inclusive (matches what the customer paid). US stores typically have taxesIncluded = false, so AOV is exclusive of sales tax (tax sits in totalTax separately). The card sums totalPrice blindly, it does not normalise across the two modes. |
| Shipping | Included. totalPrice already contains totalShippingPrice. |
| Discounts | Already deducted (totalPrice is the post-discount figure). |
| Refunds | NOT deducted. A refunded £100 order contributes £100 to AOV. To see AOV net of refunds, divide Net Revenue by Total Orders. |
| Cancelled / voided orders | Included if Shopify indexed them (displayFinancialStatus = VOIDED rows still count). |
| Currency | Multi-currency arithmetic mean WITHOUT FX conversion. A store taking GBP and EUR orders gets a meaningless single number; use a currency-filtered view for stores transacting in more than one currency. |
| Channels / sources | Not filtered. POS, online store, marketplace-app orders, and orders with B2B / Debenhams tags all contribute. Same gap as total_revenue. Shopify Order index doesn’t yet expose tags / sourceName. |
| Time window | 30D vsP (default 30D vs the prior 30D) |
| Alert trigger | drop >10% vsP, driven by sentiment_key: aov_trend |
| Roles | owner, marketing |
Calculation
Worked example
Imagine your store has 5 orders this week:| Order | Items | Value (incl. VAT) |
|---|---|---|
| #1001 | One t-shirt | £45 |
| #1002 | Jumper + scarf bundle | £120 |
| #1003 | Single accessory | £35 |
| #1004 | Jacket + two shirts (10% discount applied) | £210 |
| #1005 | Returning customer, two items | £80 |
Sibling cards merchants should reference together
AOV is rarely useful on its own. Pair it with these to make decisions:| Card | Why it matters next to AOV | What the combination tells you |
|---|---|---|
| Total Revenue | AOV × Order Count = Revenue. AOV without revenue context is misleading. | High AOV + low revenue = small audience of premium buyers; low AOV + high revenue = mass-market volume. Each calls for a different growth play. |
| Total Orders | The denominator. Rising AOV with falling orders means you’re selling more to fewer people. | If revenue is flat but orders dropped and AOV rose, you didn’t grow, you just lost low-value customers. |
| Conversion Rate | Trades off with AOV. Free-shipping thresholds raise AOV but slightly hurt conversion. | The right balance is whichever moves total revenue. Track both before changing thresholds. |
| Repeat Customer Rate | Repeat buyers usually spend more per order than first-timers. | Rising AOV often correlates with rising repeat rate, proof your retention program is working. |
| Discount % of Revenue | Heavy discounting suppresses AOV mechanically. | If AOV dropped sharply this period, check discount % first, a 25% sale lowers AOV by ~25% even if behaviour didn’t change. |
| Top Products by Revenue | Tells you which items move AOV up or down. | If your top-3 SKUs are accessories, AOV will be low; if they’re bundles or premium items, AOV will be high. Mix-shift drives most AOV changes. |
Reconciling against the vendor’s own dashboard
Where to look in Shopify’s own dashboard: The closest Shopify-native view is:Shopify Admin → Analytics → Reports → “Average order value over time” (Under the Sales category. If you don’t see it, click View all reports.)Pick the same date range you’ve selected here, and you should see a near-identical figure. For a quick sanity check, Analytics → Dashboards → Overview shows a headline AOV tile for the last 30 days. If you run multiple sales channels (Online Store, POS, marketplaces), use the Sales channel filter at the top of the report to compare your dashboard against ours apples-to-apples. Why our number may legitimately differ from Shopify’s: A small gap is normal. The usual suspects:
| Reason | Direction | Why |
|---|---|---|
| Refunds | Theirs lower (some views) | Some Shopify reports show “net” AOV that subtracts refunds. We show gross AOV, every order at its original total. Use Refund Value / Net Revenue if you want the netted view. |
| Tax inclusion | Either | If your store toggles between VAT-inclusive and VAT-exclusive pricing on different channels (e.g. wholesale vs retail), your Shopify report and our card may pick different rows. UK-only stores rarely see this. |
| Time zone | Boundary days off | Shopify uses your store’s time zone (set in Settings → General). We use UTC for period boundaries. For a 30-day window the gap averages out; for “today” or “yesterday” it can shift the number meaningfully. |
| Cancelled orders | Ours higher | If displayFinancialStatus = VOIDED rows are in the index, we count them. Shopify’s “Average order value” report typically excludes cancelled orders. |
| Multi-currency | Ours is the wrong shape | If you take orders in more than one currency, our card produces an arithmetic mean with no FX conversion, i.e. a meaningless single number. Shopify’s report converts everything to your store currency. Use the currency-filtered view for accuracy. |
| Sync lag | Ours lower for “today” | Our index is updated by Shopify webhooks; the most recent 5-15 minutes of orders may not be in yet. Yesterday and earlier are fully caught up. |
shopify.aov = shopify.total_revenue ÷ shopify.order_count
These three cards are mathematical siblings, if they don’t match, it’s a sampling or rounding artefact, not a real disagreement.
Cross-connector reconciliation. Google Analytics 4 vs Shopify:
If you have GA4 connected and tagged correctly, ga4.ga_aov should be within roughly ±5% of this card. They view the same purchases through different lenses. Shopify sees the orders that completed checkout; GA4 sees the purchase events that fired in the browser.
A larger gap is normal, not an error. The usual reasons:
- Ad blockers. 10-25% of UK shoppers run uBlock Origin or similar; their
purchaseevents never reach GA4, so GA4’s order count is lower (which makes its AOV calculation jumpy). Shopify, by contrast, sees every paid order regardless. - Cookie consent. Customers who reject analytics cookies are invisible to GA4. Shopify still sees the order.
- Session vs order. GA4 attributes purchases to a session; Shopify counts an order. A customer who returns three times before buying is one Shopify order but one GA4 purchase event tied to the latest session, the AOVs end up close but the underlying populations differ.
- Attribution windows. GA4’s default is last-non-direct-click, with conversion windows that can be days long. A purchase in Shopify on Tuesday may be attributed in GA4 to Monday’s ad click. Time alignment isn’t perfect.
- Tag-fire delay or failure. If the customer closes the tab before GA4 fires, the event is lost. Shopify still records the order (the payment processor confirms before the page even tries to load).
Known limitations / merchant FAQs
Why is my AOV dropping? Three usual culprits, in order of likelihood:- Discounting. A 20% sale or coupon-heavy week mechanically lowers AOV by ~20% even if customer behaviour is unchanged. Check Discount % of Revenue alongside this card.
- Product mix shift. If lower-priced items moved to the top of your top-sellers (e.g. a sock pack went viral), AOV drops because more orders are for cheaper SKUs. Check Top Products by Revenue.
- New-customer surge. First-time buyers typically spend less than returning customers. A successful ad campaign or PR moment that brought in lots of new shoppers will pull AOV down. Check New vs Returning.
- Free-shipping threshold, set it £10-15 above your current AOV (e.g. AOV £45 → threshold £60). Easiest single change; usually adds 5-15% to AOV with a small (1-2%) hit to conversion rate.
- Bundles, pair complementary items at a small discount (e.g. shirt + matching scarf at 10% off). Lifts AOV more than either item alone.
- Cart upsells, “frequently bought together” or “complete the look” widgets in the cart. Apps like Bold, ReConvert, or native Shopify Functions.
- Tiered discount ladders, “spend £100 save £15, spend £200 save £40”. Pushes shoppers up to the next tier.
- Premium tier or larger sizes, if you only sell single-units, add a “5-pack” or “subscribe & save” option. New higher price points pull AOV up.