TL;DR
-
Shopify calculates average order value as gross sales minus discounts, divided by orders. Shipping, taxes and fees are excluded, and refunds never reduce it.
-
That hides the cost of the two most popular levers. Absorbed shipping sits outside the metric, and so do returns on the items people add.
-
Split AOV into units per order and average unit price before picking a lever, because a quantity problem and a price-point problem need different work.
-
The minimum basket increase that makes a free shipping threshold pay is your shipping charge divided by your gross margin, which is why the published 10% to 15% rules lose money on a mid-margin store.
-
A gift with purchase buys more perceived value per dollar you give up than free shipping does, because you pay cost and the customer counts retail.
Average order value is what a single order brings in before costs. Shopify reports it as gross sales minus discounts divided by order count, so shipping, taxes and fees are left out, and so is every refund.
Below are nine ways to raise order value on Shopify, each with what it lifts, what it costs, and where your plan stops you. Which ones apply depends on the shape of your basket.
9 ways to increase AOV at a glance
|
# |
The method |
What it is called in Shopify |
Use it when |
What it costs |
|
1 |
Cross-sell related products |
Product recommendations, Search & Discovery |
Units per order sits near one |
Attention on the page that converts |
|
2 |
Add a cart upsell |
Cart drawer offers, theme or app |
You need low-price complements |
Friction at the point of purchase |
|
3 |
Build product bundles |
Shopify Bundles, fixed and multipack |
You sell packs or starter sets |
Margin on the bundle discount |
|
4 |
Set a free shipping threshold |
Free shipping discount, minimum purchase amount |
Your shipping charge is small against your margin |
Shipping revenue on every order over the bar |
|
5 |
Offer a gift with purchase |
Buy X get Y, set to Free |
You want the threshold effect for less |
Cost of the gift, not its retail price |
|
6 |
Add quantity breaks |
Buy X get Y, volume pricing in B2B |
One hero SKU gets bought in multiples |
Margin on customers who would have bought anyway |
|
7 |
Run a post-purchase upsell |
Post-purchase checkout extension |
Your payment mix is card-heavy |
Almost nothing, so it usually goes first |
|
8 |
Move buyers up a price tier |
Product boosts, collection sorting |
Baskets are already full |
Volume on the cheaper tier |
|
9 |
Offer financing on big orders |
Shop Pay Installments |
You sell considered, high-ticket items |
Provider fees, and your post-purchase offers |
What Shopify counts as average order value
Shopify's documented formula:
average order value = (gross sales − discounts) ÷ orders
Gross sales is top-line revenue before discounts and returns, and it excludes taxes, shipping, duties and fees. The number therefore sits between gross and net sales, since net sales also subtracts refunds and cancellations.
|
Component |
In Shopify's AOV? |
|
Product revenue |
Yes |
|
Discounts |
Yes, subtracted |
|
Shipping charged to the customer |
No |
|
Taxes and duties |
No |
|
Refunds, returns and cancellations |
No |
|
Order edits after creation |
No |
Absorbing shipping cannot show up as a cost. Give shipping away to push baskets higher and the added products raise the numerator, while the shipping revenue you stopped collecting was never in it.
Returns cannot show up either. If the item people add to clear a threshold comes back more often than the rest of the catalog, reported AOV holds and the money leaves anyway. It also means a return costs proportionally more on a small basket, because the cost of handling one barely shrinks with the price of the item.
The definition changed in January 2023. Shopify moved from total sales to gross sales minus discounts and applied it retroactively across the admin, so older documentation describes the previous version.
Where your number should land depends entirely on what you sell:

How to split average order value into units and unit price
AOV is a product of two numbers:
average order value = units per order × average unit price
Pull items ordered and order count for the same period and divide. An order count of 1,150 against 1,840 items ordered gives 1.6 units per order, and an $80 AOV at 1.6 units puts the average unit at $50.

Two stores with the same average order value and opposite basket shapes.
The two levers are not the same size either. From 1.6 units at $50, adding 0.2 units per order is a 12.5% lift, while lifting the average unit $5 is 10%.
Which levers each basket shape points to.
Contribution margin is revenue minus every variable cost tied to the order, and contribution per order is the number any of these should be measured against.
contribution per order = gross profit + shipping charged − shipping cost − fulfilment − payment fees

What an $80 order leaves once its variable costs come out.

Shopify's Finances summary, annotated with the costs its margin figure leaves out. From our LTV to CAC ratio guide.
This is contribution before ad spend. Plenty of DTC teams run contribution with marketing already deducted, and mixing the two definitions inside one calculation double-counts.
1. Cross-sell related products on the product page
Start here when most orders hold a single item. The customer is already deciding, and the page is already doing the work.
Shopify Search & Discovery is free and first-party. It does two jobs here:
-
Related products on product pages, alongside the automatically generated recommendations
-
Product boosts that push particular items up in search results
Before you install it: Shopify Network Intelligence has to be on in your privacy settings, staff need Products permissions to edit recommendations, and the app has been rated poorly for a first-party tool. Check its current reviews, because the complaints move around between releases.

A complete-the-look block pairing a product with coordinating items.
Two rules keep this from backfiring:
-
Complements, not alternatives. A second product at a similar price point is a competing decision, and it slows the page down instead of adding to the basket.
-
Price well below the hero item. The cross-sell should read as an easy yes.
Cross-sells are a merchandising decision before they are an app decision, so they belong with the rest of the product page work.
2. Add a cart upsell before checkout
The cart is the last point where a customer can change the order before paying.
Works on every plan, through the theme or an app. Low-price complements do the most here, along with a progress indicator if you run a free shipping threshold (way 4).

Free shipping progress bar used to upsell
Price the add-on well under the hero item here too. Anything approaching the main product's price turns the cart into a second decision, which slows the last step before checkout.
If you run a progress bar, show the gap and not the rule. "You're $12 away from free shipping" does the work. "Free shipping over $85" asks the customer to do arithmetic at the worst possible moment.
For cart-stage work the question is usually tooling, and Rebuy is the engine most of our clients end up on.
Watch revenue per session here, not AOV alone. A lift that arrives with a drop in completed orders is a loss.
3. Build product bundles with the Shopify Bundles app
Shopify Bundles is free and available on every plan. It builds fixed bundles and multipacks, and nothing else.
Mix-and-match needs either a third-party app, which works on any plan, or a custom build with the Bundles APIs, which needs Plus.
Its limits decide whether native is enough:
|
Limit |
Native Shopify Bundles |
|
Components per fixed bundle |
30 |
|
Mix-and-match |
Not supported |
|
Subscriptions, pre-orders, try-before-you-buy |
Not compatible |
|
Inventory |
Tracked on overall stock, not by location |
Behaviours that catch people out in production:
-
Bundles are created in Draft status and have to be published.
-
Bundle price does not follow component price changes, so a cost increase upstream leaves the bundle underpriced until someone edits it.
-
Orders list component SKUs, which changes how fulfilment and reporting read.
-
Discounts must target the parent bundle product. Select only the component products and the discount does not apply. This is the one that produces the "works in the admin, fails at checkout" report.
-
A store that becomes ineligible sees its fixed bundles drop back to Draft without warning.
For fixed packs, multipacks and starter sets, native is enough. Reach for a paid app when you need mix-and-match, bundles alongside subscriptions, or per-location inventory.
Here is where the discount stops paying. A three-item bundle listed at $120 raises reported AOV at every discount level, but not contribution:
|
Discount on a $120 bundle |
Reported AOV |
Change vs $80 |
Contribution |
Change |
|
10% |
$108.00 |
+35.0% |
$46.34 |
+$9.19 |
|
15% |
$102.00 |
+27.5% |
$40.51 |
+$3.36 |
|
20% |
$96.00 |
+20.0% |
$34.68 |
−$2.47 |
|
25% |
$90.00 |
+12.5% |
$28.86 |
−$8.29 |
Illustrative figures throughout. Baseline is the $80 order above: 55% gross margin, $8 shipping charged against a $9.50 carrier cost, $2.50 pick and pack, and 2.9% + $0.30 payment fees.
At 20% off, reported AOV is still 20% above baseline and the order contributes less than the $80 order it replaced.

Contribution per order against the discount on a $120 bundle.
On a $100 bundle at the same margin, break-even drops to 10.7%. On a $150 bundle it rises to 25%.
So there is no general bundle discount band. The number moves with your margin and your basket size, which is why the 10% to 18% ranges published as best practice land anywhere from conservative to loss-making.
4. Set a free shipping threshold from your gross margin
Published advice sets the threshold as a multiple of your current AOV, and the published multiples run from 10% above it to one and a half times it. Top Growth Marketing calls 1.3x to 1.5x the DTC sweet spot. Mida says 10% to 20%.
The break-even formula is not a secret. Several threshold calculators publish it, including Top Growth's. What the guides that rank for this topic do is quote the multiple and skip the formula, and none of them count the orders that would have cleared the bar anyway. That second omission is the expensive one.
Start with what the threshold changes. You pay the carrier either way, so the carrier bill is identical before and after and drops out of the comparison. What you give up is the shipping revenue you were collecting.
minimum basket increase = shipping charge ÷ gross margin
|
Shipping charge |
40% margin |
55% margin |
70% margin |
|
$5.00 |
$12.50 |
$9.09 |
$7.14 |
|
$8.00 |
$20.00 |
$14.55 |
$11.43 |
|
$12.00 |
$30.00 |
$21.82 |
$17.14 |
|
$15.00 |
$37.50 |
$27.27 |
$21.43 |
Add payment fees on the extra revenue and each figure rises a few percent.
Run an $80 AOV store at 55% margin and an $8 shipping charge against the published rules and the spread resolves:
|
Published rule |
Threshold |
Required add |
Net per lifted order |
|
10% above AOV |
$88.00 |
$8.00 |
−$3.60 |
|
20% above AOV |
$96.00 |
$16.00 |
+$0.57 |
|
1.3x AOV |
$104.00 |
$24.00 |
+$4.74 |
|
1.5x AOV |
$120.00 |
$40.00 |
+$13.07 |
The 10% rule loses money on the orders it succeeds in lifting. The right multiple depends on margin, so a 70% margin store and a 40% margin store should never use the same one.
Then there is a second cost, and on most stores it is the larger one. Every order that would have cleared the threshold anyway now ships free, with no basket increase attached.
Contribution change on a lifted order against one that would have cleared the bar anyway.
|
Share of orders already above the threshold |
Share of all orders that must be lifted to break even |
|
10% |
29.3% |
|
20% |
58.6% |
|
30% |
Not reachable |
Put the threshold where a large share of your orders already land and the arithmetic cannot close, whatever the creative does. So check your order value distribution first, and put the bar above the point where your orders cluster.
A store is better off charging for shipping than running a threshold set from a percentage rule it has never checked against its own margin. The percentage rules are the most repeated advice in this topic and the least defensible.
Shopify gives you two native routes once you have the number:
-
As a discount. Discounts > Create discount > Free shipping, with a minimum purchase amount. The minimum counts product prices only and never taxes.
-
As a shipping rate condition. Settings > Shipping and delivery, inside a shipping profile, where you tick free shipping over a minimum order amount. Leave the top rate tier's maximum empty or orders above it get a shipping error at checkout.
Choosing the free shipping discount type in the Shopify admin.
Shipping profiles in Settings, where the same threshold can run as a rate condition.
5. Offer a gift with purchase instead of free shipping
A gift at a minimum spend does the same job as a threshold, and for the same cost it buys more perceived value. The reason is the gap between what the customer counts and what you pay.
Give away shipping and you surrender revenue at face value, dollar for dollar. Give away a product and you surrender its cost, while the customer values it at retail.

Perceived value against what each giveaway costs you.
That gives a sister rule to the threshold formula:
maximum gift retail price = shipping charge ÷ (1 − gross margin)
|
Gross margin |
Most you can give away for the cost of $8 shipping |
|
40% |
$13.33 |
|
55% |
$17.78 |
|
70% |
$26.67 |
So a 70% margin store can hang a $26 gift off the same spend threshold that an $8 shipping giveaway would have cost it. The higher your margin, the further the gift stretches.
Two things the swap does not fix:
-
The subsidy problem carries over. The gift still goes to every order over the bar, including the ones that would have cleared it anyway.
-
Customers still pay for shipping. Some will mind that more than they want a free item.
So run it as a test against the threshold rather than a replacement for it.
Native route: Discounts > Create discount > Buy X get Y, with "Customer buys" set to a minimum purchase amount and "Customer gets" set to Free.
Two traps. The free item is never added to the cart automatically, so the offer has to be visible on the product and cart pages or it goes unclaimed. And if the gift runs out of stock, the discount stops working.
Pick a gift people want, with a high retail price against its cost. Slow-moving stock you are trying to clear will not do the job.
6. Add quantity breaks and volume discounts
For the store with one hero SKU that gets bought in twos and threes, a price break at quantity moves units per order without touching the rest of the catalog.
Tiered discounts, multi-step logic and custom eligibility are not native for DTC stores. Shopify's own documentation sends you to a discount app from the App Store, or to Checkout Blocks on Plus. What is native is the Buy X get Y discount, which covers a single break cleanly:
The Buy X get Y discount form, with the quantity condition and percentage set.
Two rules decide whether a break can sit alongside your other offers:
-
An item already carrying a combinable product discount does not count toward the Buy X get Y minimum at all. A running promotion can stop the break from triggering without anyone noticing.
-
Stacking two product discounts on the same line item is Plus only. Product plus free shipping works on every plan.
Genuine volume pricing, with several breaks on one product, exists only inside B2B catalogs, at Markets > Catalogs > Products and pricing, capped at 10 price breaks per product.
Volume price breaks in a B2B catalog, the one place Shopify does tiered pricing natively.
If your breaks used to run on Shopify Scripts, they have moved. Scripts stopped running on 30 June 2026 and only ever ran on Plus.
7. Run a post-purchase one-click upsell
The offer that appears after payment, where the customer adds an item without re-entering card details. Least friction of any position on this list, because the order is already placed and nothing about the purchase can be lost. On most stores it is the first thing we turn on.
A post-purchase offer screen with the discounted add-on and its countdown timer from OrderEditing.
It does not require Plus. Shopify's documentation states that all merchants can install App Store apps using post-purchase checkout extensions, and that only Plus merchants can install custom apps that use them. Plus is needed for offers inside checkout itself, which is a different position.
What limits it is the payment method on the original order. No offer shows when the customer paid with:
-
A wallet, which covers Apple Pay, Google Pay and Amazon Pay
-
An installment service, which covers Klarna, Affirm, Afterpay and Shop Pay Installments
-
A gift card, or any manual or offsite method that never charges a card
-
A third-party gateway that requires the customer's CVV to be retained, such as Braintree, Payflow Pro, PayPal Payments Pro and Eway
The test is whether a card was charged and can be charged again. Shop Pay stores a card and is not on the exclusion list, so those orders qualify. Shop Pay Installments is a different product and is excluded as an installment service, which is the tension in way 9.
So audit your payment mix before you budget for this. A store running heavily on wallets will find a large share of orders ineligible before any creative decision gets made.
You need an App Store app for this, and the category moves fast. Check the listing is live and the reviews are recent before you install anything, because apps in this space get acquired, rebranded and delisted more often than most.
Which parts of checkout are Plus-only and which are open to every plan. Image from our guide on
one click upsell without Plus.
One build caveat. Native Buy X get Y discounts do not apply on the post-purchase page, so an offer built on that discount type will not behave there, and that rules out running your way 5 gift as the post-purchase offer.
8. Move buyers to a higher price tier
For stores that already fill baskets, another slot adds friction. Average unit price is the only number left to move.
This is merchandising work, and no app will do it for you:
-
Boost the higher tier in search results and collection sorting through Search & Discovery.
-
Make the good-better-best gap legible on the product page, so the step up reads as a decision the customer makes for themselves.
-
Check which tier your bestsellers sit in before assuming the top one needs promoting.
A product page from Magic Spoon making the step up to the better-value option the obvious choice.
Take the $80 store from earlier, at 1.6 units and a $50 average unit. Shift a share of buyers up a tier so the average unit reaches $55, and order value goes to $88.
That is a 10% lift with no extra items in the basket and no discount given away. It's the cheapest 10% in this guide, so check it before anything that costs margin.
Mix can shift the wrong way too: moving volume upward lifts AOV while unit volume falls, and both show up the same way on a revenue chart.
9. Offer financing on high-ticket orders
On considered purchases the limit on basket size is often cash flow rather than intent. Splitting the payment moves that ceiling.
Shop Pay Installments is the native option. Shopify says it "can improve conversion rates and average order value", without publishing a figure. The constraints are specific:
|
Requirement |
Detail |
|
Payments setup |
Shopify Payments and Shop Pay both activated |
|
Business location |
United States, Canada or United Kingdom |
|
Order range |
$35 to $30,000 USD or CAD, £50 to £30,000 GBP |
|
What counts |
The range includes discounts, shipping and taxes |
An order paid through Shop Pay Installments cannot receive a post-purchase offer, so financing and your cheapest upsell position compete for the same orders.
-
High-ticket catalog: financing usually wins. The basket it unlocks is worth more than the add-on it blocks.
-
Mid-ticket catalog: it often does not.
Check what share of your orders clear the $35 floor before assuming financing applies to your catalog at all.
How to tell a real AOV lift from a mix shift
AOV is a mean over a skewed distribution. It is unstable on low order volume and a few large orders will move it without anything changing in the business. Two explanations look identical in the dashboard, and both have to be ruled out before you credit any of the nine.
Mix shift. A campaign that brought in buyers of a higher-priced category raises AOV with no change in behaviour on any product page. Check AOV by product category and by channel for the same period before you read the store-level number.
Discount-pulled baskets. Shopify subtracts discounts from AOV, so a discount-driven lift shows up smaller than the basket was, and the gross profit you gave away is not in the metric at all. Put the campaign's orders through the contribution formula above before you credit the lift.
A moving mean on a still median. Read both. A mean that climbs while the median sits still is a large-order story, not a behaviour change.
Revenue per session catches the other direction, where AOV rose because a threshold or an aggressive upsell pushed some buyers out entirely.
How to test a lever properly
Four metrics, and the last one is the guardrail:
|
Metric |
What it tells you |
|
Attach rate |
Share of orders that took the offer |
|
Take rate |
Share of people shown the offer who accepted |
|
Revenue per session |
Whether the lift survived any drop in conversion |
|
Contribution per order |
Whether the lift was worth having |
Then run it like this:
-
Hold something back. Split traffic, or exclude one collection or one market, so you have a comparison that is not last month.
-
Size the run on orders, not days. You need enough orders for the mean to settle. On 200 orders a month, a fortnight tells you nothing.
-
Set the kill threshold before you start. If contribution per order sits below baseline once the run has enough orders behind it, switch the offer off. AOV being up is not a reason to keep it.
-
Change one position at a time. A cart upsell and a threshold launched in the same week cannot be separated afterwards.
Levers we left out, and why
Four tactics appear on nearly every list of this kind. They are missing here on purpose:
-
Loyalty tiers and spend-tier discounts. They work on repeat rate and lifetime value more than on the current basket, so they belong with retention work.
-
Shipping protection add-ons. They raise the order total without raising what you sell, so the AOV line moves while the merchandising problem stays exactly where it was.
-
In-checkout order bumps. Plus only, as way 7 sets out, which puts them out of reach for most stores reading this.
-
Page speed. Slow pages cost you browsing, and browsing is where second items enter the basket. Our Shopify speed benchmark of 1000 Shopify stores found that less that half of stores passed core web vitals on mobile. Meaning that there's much opportunity to get head of your competitors.
Where to start raising average order value
-
Pull items ordered and orders for 90 days, divide, and write down units per order and average unit price.
-
Build the contribution-per-order baseline with your real shipping charge, carrier cost, fulfilment and payment fees.
-
Start with way 7 if your payment mix is card-heavy, since it costs the least and risks nothing on the original order.
-
Then pick from ways 1, 2, 3 and 6 if units per order sits near one, or way 8 if baskets are already full.
-
Leave ways 4 and 5 until you have calculated the minimum add and the maximum gift cost from your own margin, and run one against the other.
-
If you sell high-ticket items, weigh way 9 against way 7 using your payment mix, since financing and post-purchase offers compete for the same orders.
-
Test each change with a holdout and a kill threshold, using the four metrics above.
-
Re-measure on contribution per order, and treat AOV as a readout, not the target.
Talk to us about your order value
We work on this with Shopify merchants every week. If you want someone to check your threshold, your bundle pricing or your upsell stack against your own margin, talk to our strategists.