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

At a glance

Top N discount codes ranked by redemption count in the 30D window. The marketing-cost-of-promotion view: which codes are doing the work?
What it countsCOUNT(orders) GROUP BY discountCode ORDER BY count DESC LIMIT 20 (default top 20). Also surfaces total £ discount-cost per code and average order value per code.
VAT / tax treatmentUnderlying totalPrice and totalDiscounts inherit store mode.
ShippingFree-shipping discount codes appear in this list; their £-discount value reflects the shipping waived, not a product discount.
DiscountsThis is the metric.
RefundsA refund doesn’t unwind code redemption; the code still counts here even if the order was refunded.
Cancelled / voided ordersExcluded; cancelled orders typically have their discount-code-usage rolled back.
CurrencyMulti-currency safe (count metric); per-code £ totals are raw aggregates.
Channels / sourcesAll channels. POS-applied codes (manual discounts entered at till) often show as “POS-discount” generic, not specific code.
Time window30D (default 30D rolling)
Alert triggerNone directly; pair with discount-budget thresholds for alerts.
Rolesowner, marketing

Calculation

Calculated automatically from your Shopify 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 activewear DTC brand on Shopify Plus, runs welcome + seasonal codes. 30D window 12 Apr 26 to 12 May 26.
CodeTypeRedemptions£ discount costAOVNote
WELCOME1010% off, first order1,820$24,300$134Onboarding code, attached to email signup
FRIENDS2525% off, all customers640$19,200$120Mid-month campaign
FREESHIPFree shipping over $50980$9,400$98Always-on
INSTASARAH15% off via creator320$5,800$121Influencer code, public
TRAINING2020% off training products410$11,200$137Category-specific
BIRTHDAY15% off birthday180$2,400$89Klaviyo flow, automated
Top-6 codes4,350$72,300
Other / single-use92$1,800Long tail
All codes (30D)4,442$74,10021% of orders used a code
Six things to notice:
  1. WELCOME10 is the workhorse. 1,820 redemptions, mostly one-per-customer, ~41% of all code-using orders. AOV 134vsfullprice 134 vs full-price ~87 confirms the welcome-cohort skews to bigger baskets (per AOV with/without Discount).
  2. FRIENDS25 is expensive. 25% off, 640 redemptions, 19,200cost.Thats2619,200 cost. That's 26% of total discount-spend on a single mid-month campaign. Was the resulting incremental revenue >19,200? If yes, profitable; if no, it cannibalised existing-customer spend.
  3. FREESHIP is free in name only. 9,400ofwaivedshippingcost.Thebrandstypicalshippingcostis9,400 of waived shipping cost. The brand's typical shipping cost is 7-8 per parcel; FREESHIP saved customers ~$10 each. The brand absorbed this. Worth tracking against full-price-with-shipping AOV.
  4. INSTASARAH is leaking. Public influencer code, 320 redemptions. If only ~150 customers came from Sarah’s posts, the other 170 found the code on RetailMeNot or from social-sharing. Influencer codes should be private (one-per-link or unique-per-post).
  5. TRAINING20 was strategic. Category-specific code; lifted training-product orders without cannibalising other categories. Worth repeating quarterly.
  6. BIRTHDAY is automation. 180 redemptions from Klaviyo birthday flow. Lower AOV ($89) than WELCOME10, expected (birthday gifts are lower-budget impulse).
Total cost-to-revenue ratio: 74,100ofdiscountsonroughly74,100 of discounts on roughly 580,000 of revenue from the 4,442 code-using orders = 12.8% discount load. For comparison, the brand’s full-price cohort is 79% of orders at no discount cost. Pair with Discount % of Revenue for the headline ratio.

Sibling cards merchants should reference together

Top Discount Codes is the per-code drill-down. Companions:
CardWhy pair it with Top Discount Codes
Total Discount UsedThe £-cost aggregate; sum of all codes plus automatic discounts.
Discount % of RevenueThe benchmark ratio of total discount cost.
AOV with/without DiscountDiscount-cohort AOV vs full-price; tells you whether codes attract premium baskets.
Revenue BreakdownThe discount slice of total revenue.
New CustomersFirst-time-buyer overlap; welcome codes drive most new customers.
Repeat Customer RateReactivation codes target lapsed customers; correlate code success with repeat lift.
Discount Over TimeTrend cousin; spike in code redemptions correlates with promo events.

Reconciling against the vendor’s own dashboard

Where to look in Shopify Admin:
Shopify Admin → Discounts for the code list, then Analytics → Reports → “Discounts” for usage and value
The Discounts admin page lists all codes with status; the Discounts report shows orders-using-code with sum of discount value. Combine for a per-code view that should match this card to within sync-lag tolerance. Other Shopify Admin views:
  • Reports → Sales attributed to a marketing campaign: campaign-level rather than code-level.
  • Apps like Reactivate, Klaviyo, Smile.io: their reports show flow-attributed discount usage; subset of total.
Why our number may legitimately differ from Shopify Admin:
ReasonDirectionWhy
Automatic discountsEitherShopify “automatic discounts” don’t appear as codes (no string redemption). We surface them as “AUTOMATIC” or by their internal name; Shopify reports may classify differently.
Refunded ordersEitherIf an order is refunded, we still count the code redemption; some Shopify reports remove it.
Time zoneBoundaryUTC vs store time zone.
Multi-currencySums distortWe don’t FX-normalise; per-code £ totals are aggregate-currency raw sums.
POS manual discountsDifferent labelPOS staff applying ad-hoc discounts may show as “POS Discount” not the code label.
Sync lagOurs lower for “today”Most-recent 5-15 min may not be in.
Cross-connector reconciliation:
CardExpected relationshipWhat causes legitimate divergence
klaviyo.kl_revenue_from_email (when connected)Should overlap with Klaviyo-attributed codesKlaviyo flow codes (welcome, abandoned cart, win-back) appear here; Klaviyo’s revenue attribution should align with Shopify’s discount-cost for those codes.
google_ads.gads_promo_revenueIndirectPaid-search promo redemptions show in both; attribution windows differ.

Known limitations / merchant FAQs

Why is my welcome code dominating the list? Welcome codes get high volume because they’re attached to email signup; nearly every new customer can redeem one. They’re typically your largest single line of discount-cost. The question is whether the cohort they bring is profitable; pair with New Customers. My affiliate / influencer code is leaking. What can I do? Affiliate codes shared on coupon-aggregator sites like Honey, RetailMeNot, Capital One Shopping become public quickly. Three remediations:
  1. One-per-customer limit: prevents repeat-redemption by code-shoppers.
  2. Trackable-link-only redemption: requires the click-through to attribute, not the code alone.
  3. Auto-rotation: change codes periodically; lifetime of a public code is short.
Why does FREESHIP look so cheap? FREESHIP appears low-cost because the discount value is the shipping waived (typically $7-15), not 10-25% of the basket. But the unit-economics impact may be larger if it converts low-AOV browsers into low-AOV buyers (the brand absorbs shipping on small orders). Why doesn’t my BFCM site-wide discount appear here? Site-wide automatic discounts may not have a “code”. They show up as “AUTOMATIC” or with the internal discount name. Look for the campaign name rather than a code string. Are stacking codes inflating the redemption count? Yes, if your store allows code-stacking. A customer using WELCOME10 + FREESHIP on one order shows two redemptions. To avoid, configure Shopify to block stacking (one-discount-per-order), or use Shopify Functions for custom logic. My birthday code shows lower AOV. Why? Birthday codes are emotional gifts (low-friction, often impulse-redeemed). Customers tend to use them on personal-treat baskets, not their normal full-basket shopping. Lower AOV is structural and expected. **How do I evaluate “is this code profitable?” For each code:
  1. Incremental customers: customers who wouldn’t have bought without the code. Estimate via lift testing or conservative assumption (e.g. 60-80% of welcome-code customers are incremental; 10-20% of existing-customer reactivation codes are).
  2. Discount cost per redemption: total $-discount / redemptions.
  3. LTV uplift from incremental: incremental_customers × LTV.
  4. ROI: (LTV uplift - discount cost) / discount cost.
If ROI > 1, profitable; if 0-1, breaking even; if negative, you’re paying customers to buy what they would have bought anyway. My subscription store, do recurring billings count? If the original purchase used a code, recurring billings inherit it as a discount line item. Each billing counts as one redemption here. Subscription-heavy brands see code redemption counts that scale with subscriber count, not new-customer count. Action playbook for managing discount codes:
  1. Monthly audit: review top-10 codes for cost-to-incremental-revenue ratio.
  2. Sunset under-performers: codes with high cost and no incremental revenue should expire.
  3. Tighten leaky codes: public influencer codes need stricter rules.
  4. A/B test welcome code depth: 10% vs 15% on welcome flow; the higher-discount may not bring more first-time customers, just cost more.
  5. Replace generic codes with personalised: “WELCOME10” gets shared; one-time-per-customer auto-generated codes don’t.
  6. Cap usage limits: every campaign code should have a usage cap (per customer + total) to prevent runaway redemption.

Tracked live in Vortex IQ Nerve Centre

Top Discount Codes is one of hundreds of KPI pulses Vortex IQ tracks across Shopify 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.