BFCM 2026 Offers Part I: What to discount, and by how much
Ishan Sinha19 min read

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.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.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.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.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.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
- Summary
- Introduction
- What you will learn
- What you need
- Terms used on this page
- 1. Choose the products that carry the offer
- Find the products whose customers come back
- Run last year's best offer again
- 2. Check that the offer does not lose money
- Know your unit economics
- Compare offer types, not only discount sizes
- 3. Frame the discount for the price
- Anchor the saving honestly
- Pricing-law check before you publish
- 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
| Term | Meaning |
|---|---|
| Sales reversals | Shopify's name for money taken back after a sale: returns, cancellations and order edits. |
| Product conversion rate | Items purchased divided by items viewed, for one product. Google Analytics 4 reports both in Ecommerce purchases. |
| Repeat rate | The 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. |
| CAC | Customer acquisition cost: ad spend divided by the number of new customers it brought in. |
| Floor price | The lowest price at which an order still breaks even after all costs. |
| Compare-at price | Shopify'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.
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.
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.
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.
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.
| A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Product | Gross sales | Sales reversals | Reversal rate | Items viewed | Items added to cart | Items purchased | Add-to-cart rate | Conversion rate | Repeat vs store average | Launched in the last 90 days? | Use it for | Setting | Sample brand | |||
| 2 | Serum, 30 ml | $48,200 | $1,450 | 3.0% | 15,500 | 1,550 | 482 | 10.0% | 3.1% | Higher | No | Best for new customers: they come back | Average conversion rate, all products | 2.1% | |||
| 3 | Moisturizer | $31,500 | $4,100 | 13.0% | 20,200 | 1,820 | 525 | 9.0% | 2.6% | Lower | No | Leave out: high returns | Highest reversal rate you accept | 10.0% | |||
| 4 | Three-product bundle | $26,100 | $780 | 3.0% | 6,000 | 560 | 175 | 9.3% | 2.9% | Lower | No | Use to win new customers | |||||
| 5 | Cleanser | $22,800 | $520 | 2.3% | 54,300 | 3,800 | 651 | 7.0% | 1.2% | Higher | No | Leave out: converts poorly | |||||
| 6 | Lip Balm | $9,600 | $90 | 0.9% | 11,300 | 1,130 | 384 | 10.0% | 3.4% | Lower | No | Use to win new customers | |||||
| 7 | Eye Cream | $7,400 | $150 | 2.0% | 4,500 | 410 | 100 | 9.1% | 2.2% | Too few customers | Yes | Past customers only: new launch |
Conversion rate by product
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.
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.
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.
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.
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.
| A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | First-order product | Customers | Ordered in month 1 | Ordered in month 2 | Ordered in month 3 | Month 1 rate | Month 2 rate | Month 3 rate | Average, months 1-3 | Repeat vs store average | Difference from store | Setting | Sample brand | ||||
| 2 | All customers (store) | 9,400 | 564 | 423 | 357 | 6.0% | 4.5% | 3.8% | 4.8% | Fewest customers to judge a product | 100 | ||||||
| 3 | Serum, 30 ml | 1,850 | 150 | 115 | 93 | 8.1% | 6.2% | 5.0% | 6.5% | Higher | +1.7% | ||||||
| 4 | Moisturizer | 1,210 | 63 | 48 | 38 | 5.2% | 4.0% | 3.1% | 4.1% | Lower | -0.7% | ||||||
| 5 | Three-product bundle | 640 | 28 | 22 | 19 | 4.4% | 3.4% | 3.0% | 3.6% | Lower | -1.2% | ||||||
| 6 | Cleanser | 2,380 | 164 | 121 | 105 | 6.9% | 5.1% | 4.4% | 5.5% | Higher | +0.7% | ||||||
| 7 | Lip Balm | 1,020 | 49 | 40 | 34 | 4.8% | 3.9% | 3.3% | 4.0% | Lower | -0.7% | ||||||
| 8 | Eye Cream | 38 | 4 | 3 | 2 | 10.5% | 7.9% | 5.3% | 7.9% | Too few customers | +3.1% |
Average repeat rate, months 1-3, by first-order product
Dark: the store. Purple: above it. Grey: too few customers to judge.
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.
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.
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.
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.
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.
| A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Offer | Dates | Orders | Gross sales | Discounts | Product cost | Shipping cost | New customers | Came back within 90 days | Net sales | Discount rate | Contribution before ads | Contribution per order | Share of new customers | 90-day repeat | Run it again? | |
| 2 | 25% off sitewide | Nov 28 - Dec 1, 2025 | 1,180 | $118,000 | $29,500 | $37,700 | $12,980 | 640 | 58 | $88,500 | 25.0% | $37,820 | $32.05 | 54.2% | 9.1% | Maybe: test it against the best | |
| 3 | Free gift over $75 | Nov 28 - Dec 1, 2025 | 760 | $82,100 | $3,040 | $26,300 | $8,360 | 410 | 53 | $79,060 | 3.7% | $44,400 | $58.42 | 53.9% | 12.9% | Yes: earns and brings customers back | |
| 4 | Buy 2, get 1 free | Nov 28 - Dec 1, 2025 | 520 | $81,000 | $18,900 | $27,900 | $6,240 | 230 | 25 | $62,100 | 23.3% | $27,960 | $53.77 | 44.2% | 10.9% | Yes: earns and brings customers back | |
| 5 | 40% off flash, Cyber Monday | Dec 1, 2025 | 430 | $36,500 | $14,600 | $11,700 | $4,730 | 300 | 15 | $21,900 | 40.0% | $5,470 | $12.72 | 69.8% | 5.0% | No: thin margin |
Contribution per order, by offer
What each offer left per order after discounts, product cost and shipping, before ads.
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.
Where a $100 sale goes
- Product cost: $32
- Shipping and payment fees: $14
- Acquisition cost: $24
- Room for discount and profit: $30
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.
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.
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.
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.
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.
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.
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.
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.
| A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Setting | Sample brand | The yellow cells are a sample brand's numbers. Replace them with yours. | ||||||||||||||
| 2 | List price | $100.00 | Your product page price. | ||||||||||||||
| 3 | Discount in the offer | 20% | The offer you are testing. Try 0%, 20%, 30%. | ||||||||||||||
| 4 | Sale price after discount | $80.00 | What the customer pays for the product. Every percent below is of this. | ||||||||||||||
| 5 | |||||||||||||||||
| 6 | Cost line | Sample brand | $ per order | % of sale price | Where to find your number | ||||||||||||
| 7 | Product cost to make | $28.00 | $28.00 | 35.0% | Supplier or manufacturer invoice per unit. In Shopify: Products > a product > Variants > Cost per item. | ||||||||||||
| 8 | Inbound freight and duties | $4.00 | $4.00 | 5.0% | Freight and import duty invoices for the last shipment, divided by units received. | ||||||||||||
| 9 | Landed product cost | $32.00 | 40.0% | What one unit costs you on your shelf. Put this in Cost per item. | |||||||||||||
| 10 | Packaging (box, filler, insert) | $2.50 | $2.50 | 3.1% | Packaging supplier invoices divided by orders shipped. | ||||||||||||
| 11 | Pick and pack | $3.00 | $3.00 | 3.8% | Your 3PL's per-order fee, or staff time per order. | ||||||||||||
| 12 | Shipping label | $5.50 | $5.50 | 6.9% | Last month's carrier invoices divided by orders shipped. | ||||||||||||
| 13 | Payment processing, percent | 2.9% | $2.32 | 2.9% | Card rate on your payouts report; 2.9% is the standard US online rate. | ||||||||||||
| 14 | Payment processing, per order | $0.30 | $0.30 | 0.4% | The fixed part of the card fee, usually 30 cents in the US. | ||||||||||||
| 15 | Cost to deliver one order | $45.62 | 57.0% | Everything it costs to get the order to the door. | |||||||||||||
| 16 | Profit before ads | $34.38 | 43.0% | What the order leaves to pay for the customer and for profit. | |||||||||||||
| 17 | Cost to win a new customer (CAC) | $24.00 | $24.00 | 30.0% | Last November's Meta and Google spend divided by new customers in the same dates. | ||||||||||||
| 18 | Profit after CAC | $10.38 | 13.0% | What a new customer's first order leaves. | |||||||||||||
| 19 | |||||||||||||||||
| 20 | Break-even ROAS | 2.33x | The lowest return on ad spend that still pays for the customer. |
Where the $80 sale price goes
- 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
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.
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.
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.
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.
| A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Product | Price | Product cost | Shipping and packaging | Fee % | Fee per order | CAC | Floor price | Max discount | Floor, returning | Planned discount | Gift cost | Profit per order | ||||
| 2 | Serum, 30 ml | $100.00 | $32.00 | $11.00 | 2.9% | $0.30 | $24.00 | $69.31 | 30.7% | $44.59 | 20.0% | $0.00 | $10.38 | ||||
| 3 | Serum with gift | $100.00 | $32.00 | $11.00 | 2.9% | $0.30 | $24.00 | $69.31 | 30.7% | $44.59 | 20.0% | $4.00 | $6.38 | ||||
| 4 | Moisturizer | $60.00 | $18.00 | $9.00 | 2.9% | $0.30 | $24.00 | $52.83 | 11.9% | $28.12 | 25.0% | $0.00 | -$7.61 | ||||
| 5 | Cleanser | $35.00 | $9.00 | $8.00 | 2.9% | $0.30 | $24.00 | $42.53 | -21.5% | $17.82 | 15.0% | $0.00 | -$12.41 | ||||
| 6 | Three-product bundle | $149.00 | $49.00 | $13.00 | 2.9% | $0.30 | $24.00 | $88.88 | 40.4% | $64.16 | 25.0% | $0.00 | $22.21 |
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.
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.
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.
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.
| A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Offer | Units shipped | Customer pays | Gift cost | Value at list price | Real discount | Product cost | Shipping and packaging | Payment fees | Profit before ads | Most you can pay to win the customer | Break-even ROAS | Profit after your CAC | Verdict | Setting | Sample brand | |
| 2 | Full price | 1 | $100.00 | $0.00 | $100.00 | 0.0% | $32.00 | $11.00 | $3.20 | $53.80 | $53.80 | 1.86x | $29.80 | Makes money at your CAC | List price of one unit | $100.00 | |
| 3 | 20% off | 1 | $80.00 | $0.00 | $100.00 | 20.0% | $32.00 | $11.00 | $2.62 | $34.38 | $34.38 | 2.33x | $10.38 | Makes money at your CAC | Product cost per unit | $32.00 | |
| 4 | 30% off | 1 | $70.00 | $0.00 | $100.00 | 30.0% | $32.00 | $11.00 | $2.33 | $24.67 | $24.67 | 2.84x | $0.67 | Makes money at your CAC | Shipping and packaging, first unit | $11.00 | |
| 5 | 50% off | 1 | $50.00 | $0.00 | $100.00 | 50.0% | $32.00 | $11.00 | $1.75 | $5.25 | $5.25 | 9.52x | -$18.75 | Loses money at your CAC | Each extra unit adds | $2.00 | |
| 6 | Buy 1, get 1 free | 2 | $100.00 | $0.00 | $200.00 | 50.0% | $64.00 | $13.00 | $3.20 | $19.80 | $19.80 | 5.05x | -$4.20 | Loses money at your CAC | Payment fee % | 2.9% | |
| 7 | Buy 2, get 1 free | 3 | $200.00 | $0.00 | $300.00 | 33.3% | $96.00 | $15.00 | $6.10 | $82.90 | $82.90 | 2.41x | $58.90 | Makes money at your CAC | Fee per order | $0.30 | |
| 8 | 2-pack for $179 | 2 | $179.00 | $0.00 | $200.00 | 10.5% | $64.00 | $13.00 | $5.49 | $96.51 | $96.51 | 1.85x | $72.51 | Makes money at your CAC | Your cost to win a new customer (CAC) | $24.00 | |
| 9 | Any 3 for $249 | 3 | $249.00 | $0.00 | $300.00 | 17.0% | $96.00 | $15.00 | $7.52 | $130.48 | $130.48 | 1.91x | $106.48 | Makes money at your CAC | |||
| 10 | Free $4 gift with purchase | 1 | $100.00 | $4.00 | $100.00 | 0.0% | $32.00 | $11.00 | $3.20 | $49.80 | $49.80 | 2.01x | $25.80 | Makes money at your CAC |
Profit after your CAC, by offer
Red: the offer loses money once you pay to win the customer.
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.
Same saving, written two ways
| Product | As a percentage | As dollars |
|---|---|---|
| $25 serum | 20% off | $5 off |
| $499 bundle | 20% off | $100 off |
✓ marks the version that reads bigger. The saving is the same in each row.
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 price | Same saving, two ways | Show |
|---|---|---|
| $25 serum | 20% off or $5 off | 20% off |
| $60 moisturizer | 25% off or $15 off | 25% off (25 is bigger than 15) |
| $150 device | 20% off or $30 off | $30 off (30 is bigger than 20) |
| $499 bundle | 20% off or $100 off | $100 off |
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*D2in E for the dollar value of the discount.Check it worked: Each row shows both a percent and a dollar figure.
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.
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.