Skip to content

BFCM 2026 Offers Part I: What to discount, and by how much

19 min read

On sky blue, a black-and-white cut-out of a shop owner with a clipboard at a market table. Three skincare products carry orange tags reading 20% off, $15 off and Bundle $149; a fourth has no tag.

Summary

Black Friday discount strategy for Shopify: which products to discount, how deep you can go before losing money, and how to show the saving legally.

  1. 1.Your bestseller isn't always your best offer. A product can sell the most and still cost you money through returns, a page that doesn't convert, or customers who never come back. Put the products that pass all four checks in front of new customers, and keep new launches for past buyers.
  2. 2.Last year already told you which offer works. Rank last year's offers by the money each left per order and how many of its new customers came back. In the sample store, 25% off sold the most, but a free gift over $75 left $58 an order against $32.
  3. 3.Every discount has a floor. Product cost, shipping, payment fees and the cost to win the customer, added up. A $100 serum with a $69.31 floor can take 20% off and keep $10.38; at 30% off it keeps 67 cents.
  4. 4.The shape of the offer matters more than its size. 50% off and buy one, get one both give away half, and both lose money once you pay to win the customer. Buy 2, get 1 free gives away a third and makes $58.90 an order, because three units share one shipment and one acquisition cost.
  5. 5.Make the saving look as big as it is, honestly. Percent under $100, dollars above it, and the same words on the ad, the page, the cart and the email. Show a "was" price only if the product really sold at it.
Contents
  1. Summary
  2. Introduction
  3. What you will learn
  4. What you need
  5. Terms used on this page
  6. 1. Choose the products that carry the offer
  7. Find the products whose customers come back
  8. Run last year's best offer again
  9. 2. Check that the offer does not lose money
  10. Know your unit economics
  11. Compare offer types, not only discount sizes
  12. 3. Frame the discount for the price
  13. Anchor the saving honestly
  14. Pricing-law check before you publish
  15. Frequently asked questions

Introduction

You must have seen brands running BOGO (buy one, get one free) and discounts all the time. Ever wondered how they decide what to discount, and by how much?

Most brands never see an offer as financial engineering. They pick a number, usually the one a competitor ran, and discount whatever is on the shelf. But there is a framework for creating offers. An offer rooted in your unit economics, rather than copied from a competitor's strategy, does three jobs at once: it moves inventory, it turns that inventory into cash when you need it most, and it leaves you more margin on every order, not less.

A competitor's 30% off was built on their costs and their customers. On yours, it can lose money on every order it wins. This playbook walks you through the framework, one decision at a time.

What you will learn

  • Should you run buy one, get one, buy 2, get 2, or 50% off? How do you decide?
  • Should your bestseller be the product you discount to win new customers?
  • How deep can you discount before an order starts losing money?
  • Which of last year's offers should you run again?
  • Which products bring customers back for a second order?
  • How much can you pay to win a customer on each offer, and what return on ad spend do your ads need?
  • On a $499 product, does "20% off" or "$100 off" look like the bigger deal?

Every step comes with the Shopify clicks, a worked example from one sample store, and a tab in the free workbook that does the maths for you. Part II then sets where free shipping and gifts unlock, and Part III builds the bundles.

What you need

  • Shopify admin access to Analytics, Reports, and Google Analytics 4 if your store sends ecommerce events to it.
  • Product costs: the Cost per item field in Shopify, or your supplier invoices.
  • Last month's carrier and packaging invoices, for shipping cost per order.
  • Meta and Google ad spend for November 2025, and the number of new customers you had that month.
  • About three hours. The workbook does the arithmetic.

Terms used on this page

TermMeaning
Sales reversalsShopify's name for money taken back after a sale: returns, cancellations and order edits.
Product conversion rateItems purchased divided by items viewed, for one product. Google Analytics 4 reports both in Ecommerce purchases.
Repeat rateThe share of customers who place a second order. Shopify shows it in Customer cohort analysis.
Product cost (COGS)Cost of goods sold: what one unit costs you to make or buy, including inbound freight and duties.
CACCustomer acquisition cost: ad spend divided by the number of new customers it brought in.
Floor priceThe lowest price at which an order still breaks even after all costs.
Compare-at priceShopify's field for the original price. When it is higher than the price, the store shows the product on sale.

1. Choose the products that carry the offer

Your bestseller is not always the right product to put in front of new customers. It may sell the most because it gets the most traffic, while a third of it comes back, its product page converts poorly, or the customers it brings never order again. Each of those costs you the second order that makes a Black Friday customer worth winning.

The rule for the season is to scale what is proven. New customers get the products and offers with a track record. New launches go to past customers, by email and after purchase, where trust already exists. And if last year's offer worked, run it again; if two offers did about as well, keep the one whose customers came back more.

  1. Pull sales and reversals per product

    In Shopify admin, go to Analytics, Reports, and open Total sales by product. Set the dates to the last 90 days, or to last November and December if your range has not changed. Paste each product's Gross sales and Sales reversals into columns B and C of the Products tab. Shopify now reports returns as sales reversals, which also include cancellations and order edits.

    Check it worked: Column B adds up to about the gross sales Shopify shows for the same dates.

  2. Add the product funnel from Google Analytics

    Conversion rate per product is the share of people who view a product and then buy it: items purchased divided by items viewed. Shopify's reports don't show it per product, and Sessions by landing page only counts sessions that start on a page. If your store sends ecommerce events to Google Analytics 4, open Reports, then Ecommerce purchases, set the same dates, and copy each product's Items viewed, Items added to cart and Items purchased into columns E, F and G. The sheet works out the add-to-cart rate, the conversion rate and the average across your products, and draws the chart.

    Check it worked: Items purchased in GA4 is close to the units Shopify sold for the same product and dates. If Items viewed is zero or far off, GA4 is missing events: leave E to G blank and the sheet skips the check.

  3. Check who comes back

    Fill in the Repeat rate tab, step by step below. Column J of Products then fills in Higher, Lower or Too few customers for each product.

    Check it worked: Every product on Products has a row on Repeat rate, with the same name.

  4. Mark new launches and read the result

    Enter Yes in column K for anything launched in the last 90 days. Column L then says, for each product: Best for new customers, Use to win new customers, Leave out, or Past customers only.

    Check it worked: You have 5 to 10 products marked Best or Use. They carry the new-customer offer; the rest go to emails for past customers or into bundles.

Xblack-friday-offer-workbook.xlsx
Download .xlsx
L2
fx
=IF(K2="Yes","Past customers only: new launch",IF(D2>$O$3,"Leave out: high returns",IF(AND(I2<>"",I2<$O$2*0.75),"Leave out: converts poorly",IF(J2="Higher","Best for new customers: they come back","Use to win new customers"))))
ABCDEFGHIJKLMNOPQ
1ProductGross salesSales reversalsReversal rateItems viewedItems added to cartItems purchasedAdd-to-cart rateConversion rateRepeat vs store averageLaunched in the last 90 days?Use it forSettingSample brand
2Serum, 30 ml$48,200$1,4503.0%15,5001,55048210.0%3.1%HigherNoBest for new customers: they come backAverage conversion rate, all products2.1%
3Moisturizer$31,500$4,10013.0%20,2001,8205259.0%2.6%LowerNoLeave out: high returnsHighest reversal rate you accept10.0%
4Three-product bundle$26,100$7803.0%6,0005601759.3%2.9%LowerNoUse to win new customers
5Cleanser$22,800$5202.3%54,3003,8006517.0%1.2%HigherNoLeave out: converts poorly
6Lip Balm$9,600$900.9%11,3001,13038410.0%3.4%LowerNoUse to win new customers
7Eye Cream$7,400$1502.0%4,5004101009.1%2.2%Too few customersYesPast customers only: new launch

Conversion rate by product

Average 2.1%
Serum, 30 ml
3.1%
Moisturizer
2.6%
Three-product bundle
2.9%
Cleanser
1.2%
Lip Balm
3.4%
Eye Cream
2.2%
Yellow cells: fill in yours
The Products tab, with illustrative numbers. Yellow cells are yours to fill in; column L and the chart are worked out. Click a cell to see its formula. Open this page on a desktop for the full view.

Common mistakes

  • Choosing by sales alone. A bestseller with high returns or a weak product page costs more to sell than it looks.
  • Launching a new product to cold audiences in Black Week. Test it on past customers first.
  • Testing a brand-new offer in the most expensive week of the year. Reuse what worked last year and change one thing.

Find the products whose customers come back

You pay to win a new customer whichever product brings them in. Some products bring in people who order again within a few months; others bring one-time buyers. Put the first kind in front of new customers in Black Week, and the customers you pay for in November keep paying you back in December and January.

Shopify's Customer cohort analysis shows this. Each row is a group of customers who first ordered in the same month, and the columns show how many of them ordered again in each month after. Filter the groups by the product in their first order, and you can compare a product's buyers with the store's.

  1. Open the report

    In Shopify admin, go to Analytics, then Reports, and open Customer cohort analysis (in the Customers category). Set Metric to number of customers and Intervals to months. Pick dates so each group has had at least 3 months to come back: for example, first orders from January to July.

    Check it worked: Rows are months of first order; columns show customers in each month after.

  2. Read the store first

    With no filter, export the report (or read it on screen). For the cohorts in your dates, add up the customers in their first month, then the customers who ordered in month 1, month 2 and month 3. Enter the four totals on row 2 of the Repeat rate tab.

    Check it worked: Row 2 shows the store's average repeat rate, usually a few percent a month.

  3. Filter by first-order product

    Open Cohort definition, click the First order filter and choose Product name. Pick one product, add up the same four numbers, and enter them on its row. Repeat for each product on the Products tab, using the same names.

    Check it worked: Each product has its customers and its month 1 to 3 counts.

  4. Read the result

    Column I averages months 1 to 3. Column J compares it with the store: Higher, Lower, or Too few customers when fewer than 100 people first bought that product. A high rate from a small group is not proof: a handful of orders moves it a long way.

    Check it worked: Products column J now shows the same answer for each product.

Xblack-friday-offer-workbook.xlsx
Download .xlsx
J3
fx
=IF(B3="","",IF(B3<$N$2,"Too few customers",IF(I3>$I$2,"Higher","Lower")))
ABCDEFGHIJKLMNOPQ
1First-order productCustomersOrdered in month 1Ordered in month 2Ordered in month 3Month 1 rateMonth 2 rateMonth 3 rateAverage, months 1-3Repeat vs store averageDifference from storeSettingSample brand
2All customers (store)9,4005644233576.0%4.5%3.8%4.8%Fewest customers to judge a product100
3Serum, 30 ml1,850150115938.1%6.2%5.0%6.5%Higher+1.7%
4Moisturizer1,2106348385.2%4.0%3.1%4.1%Lower-0.7%
5Three-product bundle6402822194.4%3.4%3.0%3.6%Lower-1.2%
6Cleanser2,3801641211056.9%5.1%4.4%5.5%Higher+0.7%
7Lip Balm1,0204940344.8%3.9%3.3%4.0%Lower-0.7%
8Eye Cream3843210.5%7.9%5.3%7.9%Too few customers+3.1%

Average repeat rate, months 1-3, by first-order product

All customers (store)
4.8%
Serum, 30 ml
6.5%
Moisturizer
4.1%
Three-product bundle
3.6%
Cleanser
5.5%
Lip Balm
4.0%
Eye Cream
7.9%

Dark: the store. Purple: above it. Grey: too few customers to judge.

Yellow cells: fill in yours
The Repeat rate tab, with the sample store. Row 2 is the whole store; each product row is customers whose first order included it. Click a cell to see its formula. Open this page on a desktop for the full view.

Run last year's best offer again

If you ran a sale last year, you already have the best test you will get: real shoppers, in the same week, with your products. Black Week is the most expensive week of the year to test a new idea, so start from the offer that worked. Judge "worked" on what each offer left after discounts, product cost and shipping, and on whether its new customers came back, not on sales alone.

  1. Export last year's sale orders

    In Shopify admin, go to Orders, filter to last year's sale dates, and click Export. The file has one row per order with the discount code used, the subtotal and the discount amount.

    Check it worked: You have every order from the sale, with its discount code.

  2. Add up each offer

    Group the orders by discount code. For each offer, enter orders, gross sales and discounts in columns C to E of the Offer history tab. Add product cost (Cost per item on each product, multiplied by units sold) and shipping cost from your carrier invoices.

    Check it worked: Gross sales across all offers is close to Shopify's sales for the same dates.

  3. Count new customers and who came back

    A customer is new if this sale order was their first. Count them per offer in column H, then count how many of those ordered again within 90 days in column I. You can find both by looking up each customer's email in the full order export.

    Check it worked: Columns H and I are filled for every offer.

  4. Read the result

    Column M is what each offer left per order before ads. Column O is how many of its new customers came back within 90 days. Column P says which to run again: the offers that are in the top two for money left per order and at or above the middle for customers coming back.

    Check it worked: You have one offer to run again, and a reason for it in numbers.

Xblack-friday-offer-workbook.xlsx
Download .xlsx
P3
fx
=IF(C3="","",IF(M3<0.25*MAX($M$2:$M$21),"No: thin margin",IF(AND(M3>=LARGE($M$2:$M$21,2),O3>=MEDIAN($O$2:$O$21)),"Yes: earns and brings customers back","Maybe: test it against the best")))
ABCDEFGHIJKLMNOPQ
1OfferDatesOrdersGross salesDiscountsProduct costShipping costNew customersCame back within 90 daysNet salesDiscount rateContribution before adsContribution per orderShare of new customers90-day repeatRun it again?
225% off sitewideNov 28 - Dec 1, 20251,180$118,000$29,500$37,700$12,98064058$88,50025.0%$37,820$32.0554.2%9.1%Maybe: test it against the best
3Free gift over $75Nov 28 - Dec 1, 2025760$82,100$3,040$26,300$8,36041053$79,0603.7%$44,400$58.4253.9%12.9%Yes: earns and brings customers back
4Buy 2, get 1 freeNov 28 - Dec 1, 2025520$81,000$18,900$27,900$6,24023025$62,10023.3%$27,960$53.7744.2%10.9%Yes: earns and brings customers back
540% off flash, Cyber MondayDec 1, 2025430$36,500$14,600$11,700$4,73030015$21,90040.0%$5,470$12.7269.8%5.0%No: thin margin

Contribution per order, by offer

25% off sitewide
$32.05
Free gift over $75
$58.42
Buy 2, get 1 free
$53.77
40% off flash, Cyber Monday
$12.72

What each offer left per order after discounts, product cost and shipping, before ads.

Yellow cells: fill in yours
The Offer history tab, with last year's sample offers. Yellow cells are yours; columns J to P and the chart are worked out. Open this page on a desktop for the full view.

2. Check that the offer does not lose money

The profitable-offer floor is a simple rule: product cost, shipping and fees, and the cost to acquire the customer must add up to less than the sale price after the discount. If they add up to more, every order the offer wins loses money, and a higher ad budget loses it faster.

Run the check per product, not for the store average: the products you marked in step 1. A store-wide 30% off can be fine on a product with a 75% margin and a loss on one with 45%. When you run it, some offers common in your category will not work for your costs. That is what the check is for.

Illustrative product. Your numbers come from Shopify product costs, your shipping invoices and last November's cost per new customer.

Know your unit economics

Before you pick any offer, know what one order costs you, from making the product to the customer's door. Most brands know their product cost and guess the rest. The rest is often a quarter of the price.

  1. Landed product cost

    Start with what one unit costs to make, from your supplier or manufacturer invoice. Add inbound freight and import duties: take the last shipment's freight and duty invoices and divide by the units received. Put the total in Shopify: Products, open the product, Variants, Cost per item.

    Check it worked: Cost per item is filled for every variant you plan to discount.

  2. Packaging

    The box, filler, tape and any insert. Take last month's packaging supplier invoices and divide by orders shipped.

    Check it worked: You have one packaging cost per order.

  3. Pick and pack

    If a 3PL ships for you, it is the per-order fee on their invoice. If you pack yourself, it is staff time per order times their hourly cost.

    Check it worked: You have one pick-and-pack cost per order.

  4. Shipping label

    Take last month's carrier invoices (UPS, FedEx, USPS or your Shopify Shipping charges) and divide by orders shipped. If you offer free shipping, this is still your cost.

    Check it worked: You have one label cost per order, for your most common package.

  5. Payment processing

    Card fees are a percent of the sale price plus a fixed amount per order. The standard US online rate is 2.9% plus 30 cents; your exact rate is on your Shopify Payments payouts or your Stripe balance report. If you don't use Shopify Payments, Shopify also charges its own transaction fee on top, by plan.

    Check it worked: You know your percent and your per-order fee.

  6. Cost to win a new customer

    Last November's Meta and Google spend, divided by new customers in Shopify for the same dates. Use November, not last month: auction costs rise in Black Week.

    Check it worked: You have one cost per new customer for the sale.

  7. Put it in the workbook

    On the Unit economics tab, type your list price and the discount you are testing, then replace each yellow assumption with your number. Column D shows what share of the sale price each cost takes, and what is left before and after you pay to win the customer. The Floor price tab reads these numbers.

    Check it worked: Profit after CAC is above zero at the discount you plan, or you know why you accept a loss on the first order.

Xblack-friday-offer-workbook.xlsx
Download .xlsx
D18
fx
=C18/$B$4
ABCDEFGHIJKLMNOPQ
1SettingSample brandThe yellow cells are a sample brand's numbers. Replace them with yours.
2List price$100.00Your product page price.
3Discount in the offer20%The offer you are testing. Try 0%, 20%, 30%.
4Sale price after discount$80.00What the customer pays for the product. Every percent below is of this.
5
6Cost lineSample brand$ per order% of sale priceWhere to find your number
7Product cost to make$28.00$28.0035.0%Supplier or manufacturer invoice per unit. In Shopify: Products > a product > Variants > Cost per item.
8Inbound freight and duties$4.00$4.005.0%Freight and import duty invoices for the last shipment, divided by units received.
9Landed product cost$32.0040.0%What one unit costs you on your shelf. Put this in Cost per item.
10Packaging (box, filler, insert)$2.50$2.503.1%Packaging supplier invoices divided by orders shipped.
11Pick and pack$3.00$3.003.8%Your 3PL's per-order fee, or staff time per order.
12Shipping label$5.50$5.506.9%Last month's carrier invoices divided by orders shipped.
13Payment processing, percent2.9%$2.322.9%Card rate on your payouts report; 2.9% is the standard US online rate.
14Payment processing, per order$0.30$0.300.4%The fixed part of the card fee, usually 30 cents in the US.
15Cost to deliver one order$45.6257.0%Everything it costs to get the order to the door.
16Profit before ads$34.3843.0%What the order leaves to pay for the customer and for profit.
17Cost to win a new customer (CAC)$24.00$24.0030.0%Last November's Meta and Google spend divided by new customers in the same dates.
18Profit after CAC$10.3813.0%What a new customer's first order leaves.
19
20Break-even ROAS2.33xThe lowest return on ad spend that still pays for the customer.

Where the $80 sale price goes

40.0%
13.8%
3.3%
30.0%
13.0%
  • Landed product cost: $32.00
  • Packaging, pick and pack, label: $11.00
  • Card fees: $2.62
  • Cost to win the customer: $24.00
  • Profit after CAC: $10.38
Yellow cells: fill in yours
The Unit economics tab: the sample brand's $100 serum at 20% off. Yellow cells are the assumptions; replace them with yours. The bar shows where the $80 goes. Open this page on a desktop for the full view.
  1. List the products in the offer

    On the Floor price tab of the workbook, put one row for each product you marked Use or Best in step 1: name in A, price in B, product cost in C, shipping and packaging in D, payment fee percent in E (0.03 for 3%), fixed fee per order in F and CAC in G.

    Check it worked: Every product you plan to put in the sale has a row, and every cell is filled from an invoice or a report, not a guess.

  2. Read the floor price

    Column H holds =(C2+D2+F2+G2)/(1-E2): the lowest price at which the order breaks even. Column J is the same without CAC, for customers who have bought before.

    Check it worked: Compare the floor to the price. The gap is the most discount you can give.

  3. Read the maximum discount and the profit

    Column I holds =1-H2/B2, the largest discount that still breaks even. Enter the discount you plan in K and the cost of any gift in L; column M shows the profit per order.

    Check it worked: The maximum in I is higher than the planned discount in K, and M is above zero. If not, change the offer or drop that product.

  4. Repeat for the bundles

    A bundle is its own row. Add up the product costs, take the bundle price, and run the same formulas.

    Check it worked: The bundle shows a positive margin after CAC, or you have a deliberate decision to take a first-order loss for a repeat purchase that you can point to in your data.

Xblack-friday-offer-workbook.xlsx
Download .xlsx
H2
fx
=(C2+D2+F2+G2)/(1-E2)
ABCDEFGHIJKLMNOPQ
1ProductPriceProduct costShipping and packagingFee %Fee per orderCACFloor priceMax discountFloor, returningPlanned discountGift costProfit per order
2Serum, 30 ml$100.00$32.00$11.002.9%$0.30$24.00$69.3130.7%$44.5920.0%$0.00$10.38
3Serum with gift$100.00$32.00$11.002.9%$0.30$24.00$69.3130.7%$44.5920.0%$4.00$6.38
4Moisturizer$60.00$18.00$9.002.9%$0.30$24.00$52.8311.9%$28.1225.0%$0.00-$7.61
5Cleanser$35.00$9.00$8.002.9%$0.30$24.00$42.53-21.5%$17.8215.0%$0.00-$12.41
6Three-product bundle$149.00$49.00$13.002.9%$0.30$24.00$88.8840.4%$64.1625.0%$0.00$22.21
Yellow cells: fill in yours
The Floor price tab, with illustrative costs. Red means the order loses money. Click a cell to see its formula. Open this page on a desktop for the full view.

Common mistakes

  • Leaving out shipping because it is "free". Free shipping is a cost you pay, and it belongs in the formula.
  • Using this month's CAC. Black Week CAC is almost always higher.
  • Counting the gift at retail price. Count it at what it cost you, but price it in the offer at what it is worth to the customer.
  • Applying one discount percent to the whole catalog without checking the lowest-margin product.
  • Ignoring refunds. If your category has a 10% return rate, reduce the margin by 10% of the order's revenue.

Compare offer types, not only discount sizes

The same product can go on sale as a percent off, a buy-one-get-one, a 2-pack, "any 3 for" a price, or a free gift. To the shopper several of these look alike. To you they are very different, because an order that ships more units spreads one shipping cost and one acquisition cost over all of them. Put each offer type in the Offer types tab before you choose.

  1. List the offers you are considering

    On the Offer types tab, one row per offer for the same product: how many units ship, what the customer pays, and the cost of any gift. The settings on the right read the product's price and costs from the Floor price tab; each extra unit adds a little shipping and packaging.

    Check it worked: Every offer you are weighing has a row.

  2. Read the profit and the break-even return

    Column J is the profit before ads: what the order leaves after product cost, shipping, fees and any gift. That is also the most you can pay to win the customer. Column L is the return on ad spend the offer needs just to break even: what the customer pays divided by that profit. Column M takes off your cost to win a new customer.

    Check it worked: You know which offers make money at your cost to win a customer, and which only work for past buyers.

  3. Pick, and set your ad targets from it

    Choose the offer with the most profit after your CAC that still reads as a real deal to the shopper. Give its break-even return to whoever runs your ads: it is the lowest return an ad can show and still pay for itself.

    Check it worked: Your ad targets for the sale use the break-even return of the offer you chose.

Xblack-friday-offer-workbook.xlsx
Download .xlsx
N5
fx
=IF(B5="","",IF(J5<=0,"Loses money before ads",IF(M5<0,"Loses money at your CAC","Makes money at your CAC")))
ABCDEFGHIJKLMNOPQ
1OfferUnits shippedCustomer paysGift costValue at list priceReal discountProduct costShipping and packagingPayment feesProfit before adsMost you can pay to win the customerBreak-even ROASProfit after your CACVerdictSettingSample brand
2Full price1$100.00$0.00$100.000.0%$32.00$11.00$3.20$53.80$53.801.86x$29.80Makes money at your CACList price of one unit$100.00
320% off1$80.00$0.00$100.0020.0%$32.00$11.00$2.62$34.38$34.382.33x$10.38Makes money at your CACProduct cost per unit$32.00
430% off1$70.00$0.00$100.0030.0%$32.00$11.00$2.33$24.67$24.672.84x$0.67Makes money at your CACShipping and packaging, first unit$11.00
550% off1$50.00$0.00$100.0050.0%$32.00$11.00$1.75$5.25$5.259.52x-$18.75Loses money at your CACEach extra unit adds$2.00
6Buy 1, get 1 free2$100.00$0.00$200.0050.0%$64.00$13.00$3.20$19.80$19.805.05x-$4.20Loses money at your CACPayment fee %2.9%
7Buy 2, get 1 free3$200.00$0.00$300.0033.3%$96.00$15.00$6.10$82.90$82.902.41x$58.90Makes money at your CACFee per order$0.30
82-pack for $1792$179.00$0.00$200.0010.5%$64.00$13.00$5.49$96.51$96.511.85x$72.51Makes money at your CACYour cost to win a new customer (CAC)$24.00
9Any 3 for $2493$249.00$0.00$300.0017.0%$96.00$15.00$7.52$130.48$130.481.91x$106.48Makes money at your CAC
10Free $4 gift with purchase1$100.00$4.00$100.000.0%$32.00$11.00$3.20$49.80$49.802.01x$25.80Makes money at your CAC

Profit after your CAC, by offer

Full price
$29.80
20% off
$10.38
30% off
$0.67
50% off
-$18.75
Buy 1, get 1 free
-$4.20
Buy 2, get 1 free
$58.90
2-pack for $179
$72.51
Any 3 for $249
$106.48
Free $4 gift with purchase
$25.80

Red: the offer loses money once you pay to win the customer.

Yellow cells: fill in yours
The Offer types tab, with the $100 serum from Floor price. Red means the offer loses money once you pay to win the customer. Click a cell to see its formula. Open this page on a desktop for the full view.

3. Frame the discount for the price

Offer perception is how large the same saving looks. 20% off a $499 product and $100 off a $499 product save the customer about the same,, but they do not look the same. The rule of 100: under $100, a percent looks bigger; from $100, a dollar amount does. So advertise the discount in percent for low-priced products and in dollars for high-priced ones.

The mechanism is simple. A percent on a small price produces a small dollar figure, so the percent number looks larger than the saving. On a large price the dollar figure is the larger-looking number. Choose the unit that makes the bigger number.

Item priceSame saving, two waysShow
$25 serum20% off or $5 off20% off
$60 moisturizer25% off or $15 off25% off (25 is bigger than 15)
$150 device20% off or $30 off$30 off (30 is bigger than 20)
$499 bundle20% off or $100 off$100 off
Illustrative. Rule of thumb: show the unit with the larger number.
  1. List each offer with its dollar value

    With the price of the typical item or bundle in C and the discount as a decimal in D (0.2 for 20%), enter =C2*D2 in E for the dollar value of the discount.

    Check it worked: Each row shows both a percent and a dollar figure.

  2. Pick the unit with the larger number

    In F enter =IF(E2>D2*100,"$"&ROUND(E2,0)&" off",D2*100&"% off") to show which to lead with. Use the same unit on the ad, the product page, the cart and the email.

    Check it worked: The headline of every ad and banner matches the unit in the Sheet for that product group.

  3. Show the real price at checkout

    In Shopify, the automatic discount shows as a line in cart and at checkout. Keep the wording of the discount title (the title field in the discount) the same as the ad, for example "Black Friday $100 off".

    Check it worked: The title the customer sees in the cart is the one from the ad.

Common mistakes

  • Using "up to 70% off" as the headline when only a handful of items reach that figure. The customer sees the typical item, not the best one.
  • Mixing units across channels, so the ad says 25% and the cart says $20.
  • Testing the framing on a single day. Run it for at least a week before Black Friday if you can, on a small share of spend.

Anchor the saving honestly

A deal feels bigger next to a reference price: a $499 price reads very differently after the shopper has seen $999. Online, there are two ways to give the customer that reference point, and one is much safer than the other.

A bundle next to its parts. Show the three-product bundle at $149 next to the $195 its three products cost bought separately (the $100 serum, the $60 moisturizer and the $35 cleanser). The customer can check the arithmetic, and no past price is claimed.

A "was" price. In Shopify this is the Compare-at price field: set it higher than the price and the store shows the product on sale. Use it only for a price you really charged. In the US, the FTC's pricing guides treat a former price as legitimate if it was "the actual, bona fide price at which the article was offered to the public on a regular basis for a reasonably substantial period of time." In the EU, any announced price reduction must show the prior price, meaning the lowest price you charged in the 30 days before the reduction. Raising prices in October to cut them in November fails both tests.

Pricing-law check before you publish

Before the offer goes live, check how you show the price and the saving. Comparison prices ("was" prices), "up to" claims, countdown timers and "limited stock" messages are all areas where rules differ by country and, in some places, by state.

Pricing-law check

  • You can name the date and the price at which each "was" price was charged, and for how long.
  • Every product in a "up to X% off" headline is clearly shown somewhere on the page, and the X is reached by a real item.
  • Any countdown ends when it says it does. It does not reset for the next visitor.
  • Terms (dates, exclusions, region, stock limits) are on the offer page or one click away.
  • You have read the compliance chapter for your markets.

Launch checklist

  • 5 to 10 products are marked Best or Use in the workbook, and new launches are kept for past customers.
  • Every product in the offer has a floor price, and Profit per order is above zero at the planned discount.
  • Each offer has a unit (percent or dollars) chosen by price, used on the ad, the page, the cart and the email.
  • Every "was" price was really charged, and bundles show the price of their parts.
  • The pricing-law check is done.

Next: Part II uses these products and floor prices to set where free shipping and gifts unlock, and to build the tiers in Shopify.

Frequently asked questions

Is buy one get one free better than 50% off for Black Friday?

For your margin they are about the same: both give away half the value, and both often lose money once you pay to win the customer. Buy 2, get 1 free or "any 3 for" a set price usually keep far more, because more units share one shipment and one acquisition cost. Compare them on profit per order and on the return on ad spend each needs to break even; the free workbook's Offer types tab does it for you.

How do I find which products bring repeat customers on Shopify?

Open Analytics, Reports, Customer cohort analysis. Set the metric to number of customers, then open Cohort definition, click the First order filter and filter by Product name. Compare how many of each product's first-time buyers ordered again in months 1 to 3 with the store's average, and ignore products with fewer than about 100 first-time buyers.

Which products should I discount for Black Friday?

The ones that win new customers profitably: good sales, a low share of returns, a product page that converts at least close to your store average, and ideally customers who come back for a second order. Check them with Shopify's Total sales by product and Customer cohort analysis reports, and the Ecommerce purchases report in Google Analytics 4 for views and purchases per product; the free workbook on this page does the comparison. Keep new launches for past customers, who already trust you.

How much can I discount for Black Friday without losing money?

Add product cost, shipping and packaging, the fixed payment fee and the cost to acquire a new customer, then divide by one minus your payment fee percent. That is the floor price. The largest safe discount is one minus the floor divided by the selling price. Run it per product, not for the store average. The Floor price tab in the workbook does the maths.

Is a percent or a dollar discount better?

Show whichever unit gives the larger number. On low-priced items a percent looks bigger, so 20% off a $25 serum beats $5 off. On high-priced items the dollar figure looks bigger, so $100 off a $499 bundle beats 20% off. Use the same unit on the ad, the page, the cart and the email.

Can I show a "was" price on Black Friday?

Only if it is real. In the US, the FTC's pricing guides treat a former price as legitimate when it was the actual price offered to the public on a regular basis for a reasonably substantial period. In the EU, any announced price reduction must show the lowest price you charged in the 30 days before it. A bundle shown next to the price of its parts bought separately is a safer anchor, because the customer can check the arithmetic.