> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vortexiq.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Top Discount Codes, Shopify

> Top Discount Codes for Shopify stores. Tracked live in Vortex IQ Nerve Centre. How to read it, why it matters, and how to act on it.

**Metrics type:** [Supporting Metrics](/nerve-centre/overview#metrics-types-explained)  •  **Category:** [Ecommerce Platform](/nerve-centre/connectors#connectors-by-type)

## 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                 |

Six things to notice:

1. **WELCOME10 is the workhorse.** 1,820 redemptions, mostly one-per-customer, \~41% of all code-using orders. AOV $134 vs full-price ~$87 confirms the welcome-cohort skews to bigger baskets (per [AOV with/without Discount](/nerve-centre/kpi-cards/shopify/aov-with-without-discount)).
2. **FRIENDS25 is expensive.** 25% off, 640 redemptions, $19,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,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,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](/nerve-centre/kpi-cards/shopify/discount-of-revenue) for the headline ratio.

## 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](/nerve-centre/kpi-cards/shopify/total-discount-used)             | The £-cost aggregate; sum of all codes plus automatic discounts.                     |
| [Discount % of Revenue](/nerve-centre/kpi-cards/shopify/discount-of-revenue)           | The benchmark ratio of total discount cost.                                          |
| [AOV with/without Discount](/nerve-centre/kpi-cards/shopify/aov-with-without-discount) | Discount-cohort AOV vs full-price; tells you whether codes attract premium baskets.  |
| [Revenue Breakdown](/nerve-centre/kpi-cards/shopify/revenue-breakdown)                 | The discount slice of total revenue.                                                 |
| [New Customers](/nerve-centre/kpi-cards/shopify/new-customers)                         | First-time-buyer overlap; welcome codes drive most new customers.                    |
| [Repeat Customer Rate](/nerve-centre/kpi-cards/shopify/repeat-customer-rate)           | Reactivation codes target lapsed customers; correlate code success with repeat lift. |
| [Discount Over Time](/nerve-centre/kpi-cards/shopify/discounts-given-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 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:**

| 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.                                                                                                                                             |

**Cross-connector reconciliation:**

| Card                                                                                            | Expected relationship                        | What causes legitimate divergence                                                                                                                            |
| ----------------------------------------------------------------------------------------------- | -------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| [`klaviyo.kl_revenue_from_email`](/nerve-centre/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`](/nerve-centre/google_ads/gads_promo_revenue)                  | Indirect                                     | Paid-search promo redemptions show in both; attribution windows differ.                                                                                      |

***

<details>
  <summary><em>Documentation cross-reference (for agencies running multiple platforms)</em></summary>

  * [`bigcommerce.shp_top_discount_codes`](/nerve-centre/bigcommerce/shp_top_discount_codes)
  * [`adobe_commerce.shp_top_discount_codes`](/nerve-centre/adobe_commerce/shp_top_discount_codes)
</details>

## 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](/nerve-centre/kpi-cards/shopify/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](https://app.vortexiq.ai/login) or [book a demo](https://www.vortexiq.ai/contact-us) to see this metric running on your own data.
