Skip to main content
Card class: Non-HeroCategory: Ecommerce Platform

At a glance

AOV split into two cohorts: orders with at least one applied discount (coupon_discount > 0 OR discount_amount > 0) vs orders with none. The gap between the two reveals the dollar cost of the merchant’s promo strategy: discounted AOV minus discounted-away spend tells you whether discounts grow basket size or shrink it. BigCommerce’s Promotions API gives merchants more flexible cart-level discount logic than Shopify’s basic codes, which makes this card especially useful for diagnosing whether complex BOGO and tier-based promos are pulling AOV up or merely cannibalising full-price.
What it countsTwo AOV figures over the trailing 30 days: (a) SUM(total_inc_tax) / COUNT(orders) WHERE coupon_discount > 0 OR discount_amount > 0, and (b) the same but for orders with zero discount. Plus the gap (discounted - non-discounted) and the gap-as-percentage.
API endpointGET /stores/{store_hash}/v2/orders exposing coupon_discount, discount_amount, gift_certificate_amount, total_inc_tax. The OpenSearch index materialises a boolean had_discount flag plus the discount-amount fields.
VAT / tax treatmentTax-inclusive on both sides.
ShippingIncluded on both.
DiscountsThe split criterion. Orders with any discount (coupon, automatic promotion, customer-group price-list adjustment, gift certificate) are in the discounted bucket.
RefundsNot deducted.
Cancelled ordersExcluded.
Incomplete ordersExcluded.
CurrencyMulti-currency aggregated; configure per-currency view under Settings if needed.
ChannelsAll channels included. POS sales with discounts (employee discounts, in-store promos) appear in the discounted bucket.
B2B Edition behaviourB2B price-list adjustments count as “discounts” by default, which makes B2B-heavy stores show a misleading 100% discount rate. Toggle “exclude B2B price-list orders from discount cohort” under Settings → B2B handling for an accurate DTC-only read.
Gift certificatesTreated as discount; counted in the discounted bucket. Some merchants prefer to exclude gift certificates (since they were paid for upstream); configure under Settings → Discount attribution.
Free shippingFree-shipping promotions count as discount if they reduced shipping cost; otherwise not.
Time window30D rolling.
Alert triggerNone (pattern card).
Rolesowner, marketing

Calculation

Calculated automatically from your BigCommerce 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 US footwear brand on BigCommerce Pro. Snapshot for 1 Apr to 30 Apr 26.
CohortOrdersTotal revenueAOVAvg discount per order
With discount applied2,180$282,440$129.56$24.30
Full price1,820$191,100$105.00$0
All orders4,000$473,540$118.39$13.27
Gap+$24.56
What’s interesting:
  1. Discounted AOV is HIGHER than full-price AOV by $24.56. This is the healthy pattern: customers using discount codes are responding to bundle promos (“buy 2 pairs, save 20%”) rather than pure single-item discounts. The merchant’s promo strategy is working, the discount is buying basket size, not just margin.
  2. Net realised AOV per discounted order: 129.56129.56 - 24.30 = 105.26.Comparingtofullprice105.26. Comparing to full-price 105.00: the merchant is realising essentially the same dollars per order on discounted as full-price, but pulling a much larger volume cohort (54.5% vs 45.5%). The discount strategy is volume-positive without margin-negative.
  3. A failure pattern would look like: discounted AOV 90,fullprice90, full-price 105, gap -$15. That would mean “discounts are training customers to wait for promos and then buy the same thing they’d have bought anyway”. A net-negative gap is a signal to tighten promo eligibility (minimum-spend threshold, customer-group restriction, time-limit).
  4. The same brand on Shopify would surface this differently. Shopify’s reporting tends to show “discount as percentage of revenue” rather than the per-order AOV split, which makes it harder to see the bundle-vs-cannibalisation distinction. BC’s order-level discount fields make this card uniquely informative on BC.
  5. BOGO and tier-based promos drive most of the lift. Drilling into the discount type (BC supports cart-level, item-level, and shipping-level promotions independently), 70% of the discounted AOV lift came from cart-level “buy 2 save 20%” promos; 20% from coupon codes; 10% from shipping. For this merchant, doubling down on cart-level tier promos and cutting back on flat coupon codes is the strategic move.
Action priority order:
  1. Verify the gap is positive. Negative gap = your discounts cannibalise full-price; tighten eligibility.
  2. Decompose by discount type. BC’s Promotions API supports filtering by promotion type; the highest-AOV-lift type is the one to scale.
  3. Pair with BC Top Coupons to identify which specific codes drive the lift.
  4. For B2B Edition stores, exclude B2B price-list orders before reading the gap; they distort the numbers.
  5. Track the gap monthly. A shrinking gap over time is a leading indicator of margin compression and customer training-to-discount.

Sibling cards merchants should reference together

CardWhy pair it with AOV with/without Discount
Average Order ValueThe headline rollup; this card is the discount split.
BC Top CouponsPer-coupon decomposition; identifies which codes drive the lift.
BC AOV by ChannelPer-channel decomposition; promos affect channels differently (web responsive, B2B not).
BC Channel Conversion RateDiscounts lift conversion; pair to see whether AOV gain is real or volume-cannibalisation.
BC Guest vs RegisteredGuest cohort uses promos more aggressively; pair to read the cohort-specific impact.
Total RevenueNet revenue context; a positive AOV gap with falling revenue means the discount is shrinking volume.
BC Channel Revenue TrendSurfaces whether promo periods produced sustained lift or one-off pulses.
BC Margin by BrandThe margin counter-balance; AOV growth via discount can mean margin contraction.

Reconciling against the vendor’s own dashboard

Where to look in BigCommerce Control Panel: Marketing → Promotions shows the list of active promotions; Marketing → Coupon Codes shows individual codes. Neither natively computes AOV-with-vs-without; you need to build via Reports → Custom. For per-promotion analytics: Analytics → Marketing (Plus / Pro / Enterprise) shows per-promotion revenue contribution but on a daily cadence rather than the AOV split. Why our discount-cohort split may differ from BC’s promotion analytics:
ReasonDirection
Discount type breadth. We count any of: coupon_discount, discount_amount, gift_certificate_amount, customer-group price-list adjustment. BC’s promotion analytics counts only Marketing-Promotions-API discounts.Vortex IQ HIGHER discounted-cohort count
B2B price-list treatment. B2B Edition price-list adjustments count as discount in our default; they don’t in BC’s promotion analytics.Vortex IQ HIGHER on B2B-active stores
Gift certificate handling. We count GC redemption as discount; BC does not.Vortex IQ HIGHER discounted cohort
Free-shipping promos. We count if shipping cost reduced; BC’s revenue analytics excludes shipping promos from the “promotion revenue” view.Vortex IQ HIGHER
Window alignment. BC’s promotion analytics is calendar-month; we use rolling-30.Either direction near month boundaries
Cross-connector reconciliation (when ad and email integrations are connected):
CardExpected relationshipWhat causes legitimate divergence
klaviyo.kl_promo_email_ordersKlaviyo-attributed promo-email orders should appear in our discounted cohortKlaviyo’s attribution is click-window-based; some orders attributed to Klaviyo by email may not have used a code.
google_ads.ga_promo_conversionPromo-coded ad clicks that converted should appear in discounted cohortSome ads carry implicit “promo” framing without a code; those don’t appear in our discount-cohort split.
stripe.stripe_partial_amount_chargesDiscounted orders show partial-amount charges relative to subtotalStripe’s partial-amount detection differs by gateway flow; some discount applications happen pre-charge.
The discount-cohort AOV split is BC-aligned with similar cards on Shopify (per discount_codes array) and Adobe Commerce (per cart_rules applied); merchant-facing semantics are equivalent.

Known limitations / merchant FAQs

Why does my discounted AOV read so much higher than full-price? Are discounts actually losing me margin? The headline AOV is post-discount, so a higher discounted AOV means customers are buying more despite the discount, the bundle / tier promo is working as intended. Compute net realised dollars per discounted order (discounted AOV minus avg discount) and compare to full-price AOV. If they match, you’re volume-positive at zero margin cost. If discounted-net is below full-price, your discounts cannibalise. My discounted AOV reads $0 but I have hundreds of orders with promos. What’s wrong? Probably the BC coupon_discount field isn’t populated on your orders. Some legacy promos write to discount_amount only; check both fields in the BC order JSON. Configure the discount-detection criterion in Vortex IQ Settings → Discount fields if your promotions write to non-standard locations. My B2B Edition store reads 95% discount cohort. Is everyone getting a discount? Yes, by definition. B2B price lists are technically “discounts” relative to the public price; the customer-group adjustment populates discount_amount. Toggle “exclude B2B price-list orders from discount cohort” under Settings → B2B handling for an accurate DTC-only read of discount efficacy. Should I include gift certificates as discounts? Depends on your accounting view. Marketing teams usually want gift certificates EXCLUDED (a redeemed GC is “paid revenue from a prior sale”, not a current promotion). Finance teams usually want them INCLUDED (the cash inflow on this order is reduced by GC value). Configure under Settings → Discount attribution per organisation policy. My promo strategy lifts AOV but my conversion rate barely moves. What does this card miss? This card measures only orders that completed; abandoned carts where the discount was attempted but not finalised aren’t visible here. A promo that’s “AOV-positive but conversion-flat” usually means the discount is restricted (minimum-spend threshold, eligible-customers list) and customers who don’t qualify are bouncing. Check BC Channel Conversion Rate trend during your promo windows. **My discounted AOV dropped 30lastmonth.ShouldIbeworried?Possibly.A30 last month. Should I be worried?** Possibly. A 30 drop typically means either (a) you launched a smaller-discount promo (lower discount but smaller AOV impact, neutral), (b) you launched a flat-coupon promo that attracted single-item buyers (negative, the new promo is cannibalising), or (c) seasonal mix shifted toward smaller items. Check what new promos launched in the period and decompose by promotion type. Why exclude POS from this card by default? We don’t, POS is included. POS sales with employee discounts or in-store promos do appear in the discounted bucket. If you want DTC-web-only, configure Settings → Channel filter. My headline AOV is between the two cohorts. Is the math right? Yes, headline AOV is the weighted average of the two cohorts. If your headline reads 118andyourcohortsare118 and your cohorts are 130 / 105,theweighting(discountedcohort54.5105, the weighting (discounted cohort 54.5% / full-price 45.5%) gives 130 × 0.545 + 105 × 0.455 = 118.6. Match. Why no alert trigger on this card? Because the right “alert” depends on merchant strategy. A discounted-cohort growth from 50% to 70% might be a strategic win (bigger promo strategy) or a strategic loss (training customers to wait), context-dependent. We surface the data; the merchant interprets. For threshold-based discount monitoring, configure custom alerts on the gap or cohort percentage under Settings → Custom alerts. Can I see the discount split per coupon code? Not on this card; use BC Top Coupons which shows per-code AOV decomposition. Pair the two for full visibility.

Tracked live in Vortex IQ Nerve Centre

AOV with/without Discount is one of hundreds of KPI pulses Vortex IQ tracks across BigCommerce 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.