Required Datapoints
- Total Revenue: The total amount of money generated from sales during the time period.
- Total Number of Orders: The total number of purchases made during the same period.
**Average Order Value (AOV) **refers to the average amount of money spent each time a customer places an order. It’s a key metric used to track customer purchasing behavior and assess the effectiveness of sales and marketing efforts.
Average Order Value (AOV) is a core metric for revenue optimization and purchasing behavior analysis, measuring the average amount spent per transaction. It’s a key lever for boosting revenue without acquiring more customers.
The relevance and interpretation of this metric shift depending on the model or product:
A high AOV often points to value perception, strategic bundling, or customer trust. A low AOV may signal discount-driven behavior or poor merchandising.
Segment by channel, product category, or customer cohort to tailor campaigns and pricing strategies.
Average Order Value (AOV) informs:
These are the main factors that directly impact the metric. Understanding these lets you know what levers you can pull to improve the outcome
Actionable ideas to optimize this KPI, from fast, low-effort wins to strategic initiatives that drive measurable impact.
Activities commonly tied to improving or operationalizing this KPI.
| Activity | Description |
|---|---|
| Upsell Strategy | Upsell Strategy involves the deliberate planning and execution of initiatives designed to increase value from existing customers by encouraging adoption of additional features, upgraded plans, or complementary products. It gives teams a clear plan for where to focus, how to sequence work, and what to measure. Relevant KPIs include Average Order Value. |
| Checkout Optimization | Checkout Optimization involves the strategic analysis, streamlining, and improvement of the final stages in the purchase or conversion journey within digital products or sales funnels. It improves performance by removing friction, testing changes, and scaling what works. Relevant KPIs include Average Order Value. |
| Bundle Testing | Bundle Testing is the systematic process of designing, deploying, and analyzing product or service bundles to understand their impact on key business metrics such as conversion rates, customer acquisition, retention, and average deal size. It improves performance by removing friction, testing changes, and scaling what works. Relevant KPIs include Average Order Value. |
An online fashion retailer tracks AOV for Q1:
This KPI is associated with the following stages in the AAARRR (Pirate Metrics) funnel:
This KPI is classified as a lagging Indicator. It reflects the results of past actions or behaviors and is used to validate performance or assess the impact of previous strategies.
This role is directly accountable for the KPI and is expected to drive progress and decisions around it.
These roles contribute directly to performance and typically partner on execution, reporting, or optimization.
These leading indicators influence this KPI and act as early signals that forecast future changes in this KPI.
These lagging indicators confirm, quantify, or amplify this KPI and help explain the broader business impact on this KPI after the fact.
How this KPI is structured in Cube.js, including its key measures, dimensions, and calculation logic for consistent reporting.
cube(`Orders`, { sql: `SELECT * FROM orders`,
measures: { totalRevenue: { sql: `total_revenue`, type: 'sum', title: 'Total Revenue', description: 'The total amount of money generated from sales during the time period.' }, totalNumberOfOrders: { sql: `order_id`, type: 'countDistinct', title: 'Total Number of Orders', description: 'The total number of purchases made during the same period.' }, averageOrderValue: { sql: `${totalRevenue} / NULLIF(${totalNumberOfOrders}, 0)` , type: 'number', title: 'Average Order Value', description: 'Average amount of money spent each time a customer places an order.' } },
dimensions: { orderId: { sql: `order_id`, type: 'string', primaryKey: true, title: 'Order ID', description: 'Unique identifier for each order.' }, orderDate: { sql: `order_date`, type: 'time', title: 'Order Date', description: 'The date when the order was placed.' } }})Note: This is a reference implementation and should be used as a starting point. You’ll need to adapt it to match your own data model and schema