MishiSpark

Shopify Discount Strategy: Promotions That Protect Margins

Shopify makes running discounts easy — maybe too easy. Learn data-backed discount strategies that drive revenue without destroying your profit margins.

Spark by MishiPay Team8 min read

Shopify makes creating discounts trivially easy. A few clicks and you have a 20% off code live on your store. That simplicity is a feature — and a trap. Because when discounts are easy to create, merchants create too many of them, too often, without measuring whether they actually work.

The result is a slow erosion of margins that's invisible in your revenue reports. Revenue looks fine. Orders look fine. But profit per order is quietly shrinking. If this pattern sounds familiar, you're not alone — we've covered the broader problem in depth in our article on how discount addiction kills margins.

This article is specifically about Shopify's discount tools: how to use each type strategically, how to measure whether your promotions are actually working, and how to build a discount strategy that drives revenue without hollowing out your margins.

Shopify's discount types and when to use each

Shopify offers four core discount types. Each has a different strategic purpose.

Percentage discounts

The most common type. "20% off your order" or "15% off this collection." Percentage discounts are intuitive for customers and easy to communicate. But they're also the most dangerous for margins because the discount scales with the order — a high-value cart gets a larger absolute discount.

Best used for: Collection-specific promotions where you want to move specific inventory. Avoid applying percentage discounts store-wide unless you have a specific strategic reason (like clearing seasonal stock).

Fixed amount discounts

"$10 off your order" or "$25 off orders over $100." Fixed discounts are more margin-friendly because the discount amount is capped. A customer spending $200 gets the same $10 off as a customer spending $50.

Best used for: Threshold-based promotions that increase AOV. "$15 off orders over $75" encourages customers to add more to their cart to hit the threshold, which can offset the discount with incremental revenue.

Free shipping

Often underestimated. Shipping costs are a top reason for cart abandonment. A free shipping threshold ("Free shipping on orders over $50") acts like a fixed discount but feels different to customers — they perceive it as removing a penalty rather than receiving a reward.

Best used for: Reducing cart abandonment and increasing AOV. Set the threshold 15-20% above your current AOV to encourage customers to add items. If your AOV is $42, set free shipping at $50.

Buy one get one (BOGO)

"Buy 2, get 1 free" or "Buy one, get the second at 50% off." BOGO discounts move more units and work especially well for consumable products where customers will eventually need more.

Best used for: Increasing units per order for products with high margins or products you need to move. The effective discount is lower than it appears — "buy 2 get 1 free" is a 33% discount, but customers are purchasing 3 units instead of 1 or 2.

Measuring discount effectiveness: the metrics that matter

Most merchants measure discounts by looking at revenue during the promotion. Revenue went up? The discount worked. But that's only half the picture.

Incremental revenue vs. cannibalized margin

The critical question isn't "did revenue increase during the promotion?" It's "how much of that revenue would have happened anyway?"

If a customer was going to buy a $50 product at full price and you gave them 20% off, you didn't generate $40 in revenue. You generated $40 in revenue minus the $10 you gave away on a sale that was going to happen regardless. Your incremental revenue from that discount is negative.

To estimate cannibalization, compare your promotion period against a baseline. Look at the weeks before and after the promotion. If sales dip before (customers waiting for the sale) and after (demand was pulled forward), a significant portion of your discount revenue was cannibalized from full-price sales.

Discount dependency rate

This is the percentage of your total orders that include a discount code. Track it monthly.

Discount dependency rate = Orders with a discount / Total orders

A healthy rate is below 25%. Between 25-35% is a yellow flag. Above 35% means discounts have become structural to your business — customers expect them, and full-price conversion is suffering.

If your discount dependency rate is climbing month over month, you have a problem that won't fix itself.

Margin impact per promotion

Don't just measure discount dollars. Measure the impact on margin dollars.

For each promotion, calculate:

  • Total discount amount given: The sum of all discount dollars applied
  • Estimated incremental orders: Orders above your baseline that were likely driven by the discount
  • Margin on incremental orders: Revenue from incremental orders minus COGS and costs
  • Net margin impact: Margin on incremental orders minus total discount amount

If the net margin impact is negative, the promotion lost money in absolute terms — even if revenue looked great on the dashboard.

Single-use codes vs. generic codes

This is one of the simplest and most impactful changes you can make to your Shopify discount strategy.

Generic codes (SAVE20, WELCOME10, SUMMER15) leak. They end up on coupon aggregator sites within days of going live. Existing customers who were about to purchase at full price Google your store name + "coupon code," find the generic code, and apply it. You're discounting orders that didn't need a discount.

Single-use codes are unique codes generated per customer, typically delivered via email. They can only be used once, which means:

  • They can't be shared on coupon sites
  • You can track exactly which customer used which code
  • You can measure individual code performance
  • Each code expires, limiting your exposure

Shopify supports both. Creating single-use codes takes slightly more effort — you generate them in bulk and distribute them through your email platform — but the margin savings are significant. Merchants who switch from generic to single-use codes typically see their discount dependency rate drop by 10-15 percentage points within two months.

Timing promotions for maximum impact

When you run a promotion matters as much as what the promotion offers. Poor timing leads to cannibalization. Good timing captures demand that wouldn't have existed otherwise.

Avoid discounting during natural demand peaks. If your store sees a sales bump every Friday, don't run promotions on Fridays. That's demand you'd capture at full price anyway. Instead, target low-demand periods (typically mid-week for most consumer products) where a promotion can generate genuinely incremental orders.

Limit promotion frequency. If customers know you run a sale every month, they'll wait for it. Irregular timing prevents customers from gaming the pattern. Some merchants run promotions on a roughly quarterly cadence — infrequent enough that customers can't predict them, frequent enough to create urgency.

Set clear start and end dates. Open-ended promotions create no urgency and train customers to assume a discount is always available. A 72-hour flash sale with a visible countdown creates genuine urgency. A perpetual "WELCOME10" code creates permanent margin leakage.

Align with inventory goals. The best time to discount is when you have a strategic reason: clearing end-of-season inventory, launching a new product with a limited introductory offer, or reactivating a specific customer segment. "We need to hit our revenue number this month" is not a strategic reason — it's a panic response that creates long-term problems.

Measuring discount ROI with Spark

Tracking all of these metrics from Shopify's built-in tools requires exporting order data, matching it with discount codes, calculating baselines, and running the math in a spreadsheet. Most merchants don't have the time or inclination to do this for every promotion.

Spark by MishiPay automates discount analysis by connecting directly to your Shopify store. You can ask questions like:

  • "What's my discount dependency rate this month vs. last month?"
  • "Which discount codes have the highest usage by returning customers?"
  • "What was the margin impact of my last promotion?"
  • "How does my average margin on discounted orders compare to full-price orders?"

Spark breaks down your discount performance by code, by customer segment (new vs. returning), and by time period. You can see which promotions actually drove incremental revenue and which ones just cannibalized full-price sales.

Building a discount strategy that protects margins

Here's a practical framework:

  1. Measure your baseline. Know your current discount dependency rate, average discount amount, and margin per order for discounted vs. full-price orders.
  2. Switch to single-use codes. Eliminate generic codes except for a single, trackable acquisition code for genuinely new customers.
  3. Set a discount dependency ceiling. Decide on a maximum acceptable rate (25% is a good target for most stores) and treat it as a hard constraint.
  4. Test smaller discounts. Try 8% or 12% instead of defaulting to 20%. In many categories, the conversion difference is minimal but the margin difference is substantial.
  5. Measure every promotion. Calculate the net margin impact, not just the revenue impact. Kill promotions that lose money.
  6. Time strategically. Promote during low-demand periods, for specific inventory goals, to specific customer segments. Stop running blanket sales because revenue is soft.

Discounts are one of the most powerful tools in your Shopify store. Used well, they drive acquisition, clear inventory, and reactivate customers. Used carelessly, they train customers to never pay full price and slowly destroy your margins. The difference between the two is measurement.

Measure the true cost of every discount

Spark analyzes your Shopify discount data to show margin impact, dependency rates, and which promotions actually drive profit.

Ready to double your store sales?

Connect your store in 60 seconds. Get your first AI diagnostic free.