The problem with borrowing retail discount math

Most founders think discounts are simple. Sell more units. Make a bit less on each one. End up with more money. Big stores like Walmart do it every day. So it must work, right?

Wrong. Store math and online math are different. A big store’s sale has two costs. The product. The card fee. Cut the price 25% and they still keep money.

Your online sale has six costs, not two. Most founders count one or two. That is how a “safe” discount quietly turns into a loss.

This article is about the first one: discounts. After the other five costs are paid, your profit pile is small. Every percent you give away comes out of that small pile. So check the math before you run the sale. We will show you how.

1. An example showing you the numbers

You own a Shopify store. You sell skincare. Your best product is a face cream. It sells for $100 a jar.

Most days you give a 10% discount. It helps win new customers. Now Black Friday is coming. You plan a 25%-off sale. Your thinking: sell more jars, make more money.

Look at the same $100 sale two ways. The left column is the math most founders do in their head. The right column is what really happens.

A premium skincare jar with a small 25% off sticker on a light wooden counter.

One $100 jar at 25% off, what you think vs what actually happens

All numbers per order, in whole dollars.

Line itemWhat you thinkWhat actually happens
Selling price$100$100
Product cost (COGS)-$40-$40
Black Friday discount (25%)-$25-$25
Advertising to get the buyernot counted-$20
Shipping and warehouse (3PL)not counted-$12
Refunds (5% of sales)not counted-$5
Payment and channel fees (3%)not counted-$3
What is left per order+$35-$5

The left column says you make $35 a jar. The right column says you lose $5 a jar. Same sale. The difference? Four costs you forgot to count.

Here is the part that stings. On a normal day, this store keeps $10 per order. Not $50. Not $35. Ten dollars. The 25% sale did not shrink a big profit. It wiped out a small one. Then it kept digging.

More sales make it worse, not better. Sell 1,000 jars on a normal day: you bank $10,000. Run the sale and sell 2,000 jars: you lose $10,000. Every extra jar digs the hole deeper.

The sentence that changes how you think about discounts

A discount does not come off your price. It comes off your profit.

This store keeps $10 of every $100 sale. Each 5% of discount takes $5 of that. At 15% off, the profit is almost gone. At 25% off, you are paying people to shop.

2. How to model a discount before you run it

Discounts are not bad. They are a tool. But check the tool before you swing it. One spreadsheet. Ten minutes.

  1. Get your six numbers. For your main product, write down: product cost, ad cost per order, shipping cost per order, refund rate, and payment fees. Your books have these. So does your accountant.
  2. Build the cost stack once. Use Excel or Google Sheets. Start with your selling price. Take away each of the six costs. The number at the bottom is your , the money one sale really leaves you.
  3. Add a column for each discount level. Copy the stack at 0%, 5%, 10%, 15%, 20%, and 25% off. Only the discount line changes. Watch the bottom row.
  4. Find your floor. The floor is where the bottom row hits zero. On this store it is 20%. Past the floor, every sale loses money. No amount of volume can fix that.
  5. Check every campaign before you launch. Bottom row positive? Launch. Negative? Fix it first. Raise the price, cut a cost, or shrink the discount. Or kill the campaign. Kill it now, not after the books close.

The discount model, one $100 jar at six discount levels

Line item0%5%10%15%20%25%
Selling price$100$100$100$100$100$100
Product cost (COGS)-$40-$40-$40-$40-$40-$40
Discount$0-$5-$10-$15-$20-$25
Advertising-$20-$20-$20-$20-$20-$20
Shipping and 3PL-$12-$12-$12-$12-$12-$12
Refunds-$5-$5-$5-$5-$5-$5
Payment and channel fees-$3-$3-$3-$3-$3-$3
Contribution per order$20$15$10$5$0-$5

Read the bottom row. That is the whole lesson. (price minus product cost) looks fine at every level. It never drops below $35. Contribution tells the truth. This store breaks even at 20% off. Past that, it loses.

3. One warning before you act

We are not saying never discount. A discount that keeps contribution positive is fine. A planned, short loss can even make sense. Maybe you are clearing old stock that costs you storage fees. Maybe you are winning a subscriber who will buy every month.

The rule is simple: know the number before you launch. A loss you chose is a strategy. A loss you find three months later in your books is a leak.

4. Quick reference: what to avoid and apply

What to avoid

  • Copying big-store discount math without checking your own six costs.
  • Judging a sale on Gross Profit, it hides four of your six costs.
  • Hoping volume will save a sale that loses money per order.
  • Stacking discounts without re-running the model.
  • Learning a campaign lost money after the books close.

What to apply

  • Build a one-page model with all six costs at each discount level.
  • Judge every campaign on contribution per order, the bottom row.
  • Find your floor: the discount where contribution hits zero.
  • Run every campaign through the model before you launch.
  • Refresh the model with numbers from your books each quarter.

5. Frequently asked questions

Won’t more volume make up for the loss?

No. It multiplies the loss. Lose $5 a sale, and 2,000 sales lose $10,000. Volume only helps when each order makes money. Check the sign first. Then chase volume.

My Gross Profit looks healthy. Isn’t that enough?

No. only takes out the product cost. It skips ads, shipping, refunds, and fees. Those four sank the Black Friday sale above. Always judge on contribution per order.

Won’t a big discount bring in loyal new customers?

Usually the opposite. Deep discounts pull in deal-hunters. They wait for the next sale. They return more items. And they teach your good customers to stop paying full price.

If I can’t discount deeply, what should I do instead?

Use tools that feel generous but cost less: bundles, free-shipping thresholds, gifts with purchase, and member-only offers. This series covers each one. All of them beat a deep discount on the profit line.

Want your six costs mapped for you?

Our free 31-Point Profit Diagnostic puts a dollar figure on where your profit is leaking. Or get a quote for done-for-you eCommerce accounting.

Take the free Profit Diagnostic Get a Quote

Definitions, modeling notes & rate-basis disclosures

Definitions

The six profit levers
(1) Discounts, (2) Refunds, (3) Product cost (landed COGS), (4) Sales channel and payment fees, (5) Shipping and 3PL fees, (6) Advertising spend.
Cost of Goods Sold (COGS)
What one unit costs you, landed: making it, shipping it in, and customs duty. Here: $40 on the $100 jar.
Gross Profit
Selling price minus COGS. Here: $60.
Contribution per order
Selling price minus all six costs. The money one sale leaves to pay rent, salaries, software, and profit.
Third-Party Logistics (3PL)
The warehouse company that stores your stock and ships your orders.
Average Order Value (AOV)
The average size of one customer order, in dollars.

Modeling notes

  • This article uses the series’ standard teaching store: a $100 product, COGS $40, advertising $20 per order, shipping and 3PL $12, refunds 5%, and payment and channel fees 3%. A round $100 price keeps every percentage easy to turn into dollars.
  • The volume example: 1,000 orders at the standing 10% discount earn +$10 each (+$10,000). 2,000 orders at 25% off lose $5 each (-$10,000).
  • Your own costs will differ. The method does not: model contribution per order at each discount level before you launch.

Rate-basis disclosures

  • Product cost: $40 per unit (40% of the $100 selling price), typical for premium skincare.
  • Advertising: $20 per order, held flat across discount levels.
  • Shipping and 3PL: $12 per order.
  • Refunds: 5% of selling price ($5), the store’s normal rate.
  • Payment and channel fees: about 3% on Shopify (2.9% plus 30 cents), rounded to $3.
  • All figures rounded to whole dollars for easy reading.