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 counts | COUNT(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 treatment | Underlying totalPrice and totalDiscounts inherit store mode. |
| Shipping | Free-shipping discount codes appear in this list; their £-discount value reflects the shipping waived, not a product discount. |
| Discounts | This is the metric. |
| Refunds | A refund doesn’t unwind code redemption; the code still counts here even if the order was refunded. |
| Cancelled / voided orders | Excluded; cancelled orders typically have their discount-code-usage rolled back. |
| Currency | Multi-currency safe (count metric); per-code £ totals are raw aggregates. |
| Channels / sources | All channels. POS-applied codes (manual discounts entered at till) often show as “POS-discount” generic, not specific code. |
| Time window | 30D (default 30D rolling) |
| Alert trigger | None directly; pair with discount-budget thresholds for alerts. |
| Roles | owner, 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.| Code | Type | Redemptions | £ discount cost | AOV | Note |
|---|---|---|---|---|---|
| WELCOME10 | 10% off, first order | 1,820 | $24,300 | $134 | Onboarding code, attached to email signup |
| FRIENDS25 | 25% off, all customers | 640 | $19,200 | $120 | Mid-month campaign |
| FREESHIP | Free shipping over $50 | 980 | $9,400 | $98 | Always-on |
| INSTASARAH | 15% off via creator | 320 | $5,800 | $121 | Influencer code, public |
| TRAINING20 | 20% off training products | 410 | $11,200 | $137 | Category-specific |
| BIRTHDAY | 15% off birthday | 180 | $2,400 | $89 | Klaviyo flow, automated |
| Top-6 codes | 4,350 | $72,300 | |||
| Other / single-use | 92 | $1,800 | Long tail | ||
| All codes (30D) | 4,442 | $74,100 | 21% of orders used a code |
- WELCOME10 is the workhorse. 1,820 redemptions, mostly one-per-customer, ~41% of all code-using orders. AOV 87 confirms the welcome-cohort skews to bigger baskets (per AOV with/without Discount).
- FRIENDS25 is expensive. 25% off, 640 redemptions, 19,200? If yes, profitable; if no, it cannibalised existing-customer spend.
- FREESHIP is free in name only. 7-8 per parcel; FREESHIP saved customers ~$10 each. The brand absorbed this. Worth tracking against full-price-with-shipping AOV.
- 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).
- TRAINING20 was strategic. Category-specific code; lifted training-product orders without cannibalising other categories. Worth repeating quarterly.
- BIRTHDAY is automation. 180 redemptions from Klaviyo birthday flow. Lower AOV ($89) than WELCOME10, expected (birthday gifts are lower-budget impulse).
Sibling cards merchants should reference together
Top Discount Codes is the per-code drill-down. Companions:| Card | Why pair it with Top Discount Codes |
|---|---|
| Total Discount Used | The £-cost aggregate; sum of all codes plus automatic discounts. |
| Discount % of Revenue | The benchmark ratio of total discount cost. |
| AOV with/without Discount | Discount-cohort AOV vs full-price; tells you whether codes attract premium baskets. |
| Revenue Breakdown | The discount slice of total revenue. |
| New Customers | First-time-buyer overlap; welcome codes drive most new customers. |
| Repeat Customer Rate | Reactivation codes target lapsed customers; correlate code success with repeat lift. |
| Discount Over Time | Trend 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 valueThe 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.
| Reason | Direction | Why |
|---|---|---|
| Automatic discounts | Either | Shopify “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 orders | Either | If an order is refunded, we still count the code redemption; some Shopify reports remove it. |
| Time zone | Boundary | UTC vs store time zone. |
| Multi-currency | Sums distort | We don’t FX-normalise; per-code £ totals are aggregate-currency raw sums. |
| POS manual discounts | Different label | POS staff applying ad-hoc discounts may show as “POS Discount” not the code label. |
| Sync lag | Ours lower for “today” | Most-recent 5-15 min may not be in. |
| Card | Expected relationship | What causes legitimate divergence |
|---|---|---|
klaviyo.kl_revenue_from_email (when connected) | Should overlap with Klaviyo-attributed codes | Klaviyo 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_revenue | Indirect | Paid-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:- One-per-customer limit: prevents repeat-redemption by code-shoppers.
- Trackable-link-only redemption: requires the click-through to attribute, not the code alone.
- Auto-rotation: change codes periodically; lifetime of a public code is short.
- 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).
- Discount cost per redemption: total $-discount / redemptions.
- LTV uplift from incremental: incremental_customers × LTV.
- ROI: (LTV uplift - discount cost) / discount cost.
- Monthly audit: review top-10 codes for cost-to-incremental-revenue ratio.
- Sunset under-performers: codes with high cost and no incremental revenue should expire.
- Tighten leaky codes: public influencer codes need stricter rules.
- 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.
- Replace generic codes with personalised: “WELCOME10” gets shared; one-time-per-customer auto-generated codes don’t.
- Cap usage limits: every campaign code should have a usage cap (per customer + total) to prevent runaway redemption.