47% of US consumers wait for a sale or promotion when buying apparel, according to McKinsey’s 2025 State of the Consumer survey, and 38% of BFCM shoppers plan to buy only items that are at least 50% off, according to Deloitte’s 2025 holiday survey. Your customers are not stumbling into your sale. They are planning around it.
Most stores still pick a BFCM percentage by checking what competitors ran, then wonder why December revenue looks fine, and January cash does not.
The gap is simple. Black Friday revenue does not tell you whether the sale worked. A discount is a margin decision and an expectation decision at once, and the question that matters is whether it created incremental profit or simply subsidized customers who were going to buy anyway.
That matters well past November, because Shopify notes that most customers acquired during BFCM have a lower lifetime value
This guide gives you a five-step framework to design the offer, calculate the lift it needs, test whether it was incremental, and measure the 90 days after.
Key Action Points:
- Define the behavior. Decide what you are buying (a bigger basket, a reactivated customer, a profitable first order) before you pick a percentage.
- Calculate contribution. Work out profit per order after COGS, fees, fulfillment, shipping, returns, and CAC, at full price and at every candidate discount.
- Calculate required incremental volume. Break-even lift = full-price contribution ÷ discounted contribution − 1.
- Test incrementality. Randomly hold out a control group and compare incremental contribution per customer, not revenue.
- Measure 90-day economics. Track repeat rate, repeat spend, discount dependence, and payback by cohort.
Why Doesn’t BFCM Revenue Tell You Whether the Sale Worked?
A predictable sale is not a promotion. It is a price list with a countdown.

Two-thirds of consumers plan to start holiday shopping before Black Friday, according to McKinsey’s 2025 survey of 4,000+ US shoppers. Many of your buyers are already deal-hunting before your sale opens.
Sale-week revenue blends three groups: customers who would have paid full price, customers your offer genuinely moved, and customers who were waiting for a sale. Only the second group is incremental. Your dashboard cannot separate them. A control group can.
Expert Take:
Waiting for BFCM is a risk, not a proven law. Shoppers who wait may have waited anyway, and waiting is not proof you caused it. Treat “training customers to wait” as a hypothesis, and test it with a holdout before you rewrite your calendar.
Now that you know the reasons here are some crucial steps to follow and ensure higher marginsthrough BFCM discounts.
Step 1: What Behavior Are You Buying?
Stop asking how big the discount should be. Ask what you want customers to do.

Then match the offer to the behavior,
- Threshold offer: “Spend $150, get $25 off” lifts AOV without touching unit price.
- Bundle offer: “Buy the set, save 15%” spreads per-order costs across more units.
- Product-specific offer: discount slow SKUs and protect bestsellers.
- Value-add offer: a gift or a free-shipping threshold that adds perceived value without cutting your price.
Different customers do not always need a different discount. Often they need a different reason to buy.
Steps 2 and 3: How Much Extra Volume Does Your Discount Need?
Contribution per order is what is left after COGS, payment fees, fulfillment, shipping, returns, and acquisition cost. Break-even lift is the extra order volume a discount must generate just to earn the contribution you would have earned at full price.
Break-even lift = Full-price contribution ÷ Discounted contribution − 1
Here are the illustrative assumptions behind QeRetail’s BFCM margin calculator. Replace them with your own numbers.
| Input | Assumption |
| Product price | $100 (bundle: two units, $170 after 15% off) |
| Product cost (COGS) | $29.52 per unit |
| Payment fee and returns allowance | 14.9% of revenue |
| Pick-and-pack, shipping, flat payment fee | $11.62 per order |
| Customer acquisition cost (CAC) | $15 per order |
| Offer | Order revenue | Contribution per order | Break-even lift |
| Full price | $100 | $28.96 | Not applicable |
| 20% off | $80 | $11.94 | About 143% |
| 30% off | $70 | $3.43 | About 744% |
| Two-product bundle, 15% off | $170 | $59.01 | None needed |
The bundle wins because pick-and-pack, shipping, and the flat payment fee are incurred once per order, and the same $15 acquisition cost now supports two units instead of one. A bundle is still not automatically incremental. A customer who would have bought two units at full price contributes $84.54, so the 15% bundle costs you $25.53 on that customer. Test it like any other offer.
Worked example: a 20%-off sitewide offer on 1,000 baseline orders
| Step | Result |
| Baseline (no offer) | 1,000 full-price orders × $28.96 = $28,960 contribution |
| Offer | 20% off, $11.94 contribution per order |
| Break-even volume | 2,425 orders, or 1,425 more than baseline (+143%) |
| Actual result | 1,600 orders (+60%) × $11.94 = $19,104 contribution |
| Revenue vs contribution | Revenue rises from $100,000 to $128,000. Contribution falls by $9,856. |
| 90-day payback | About 225 full-price repeat orders at $43.96 each, more than a third of the 600 incremental customers |
The $43.96 repeat-order figure is the $28.96 full-price contribution plus the $15 CAC that does not recur. The payback line counts only the 600 incremental customers, because the baseline 1,000 would have reordered anyway. Revenue grew 28%, and the sale still lost money in the 90-day window.
Expert Take:
Before you cut price to fix a soft conversion rate, check whether the economics of the basket, not just the conversion rate, are the real constraint. Conversion can also stall on traffic quality, trust, shipping cost, site experience, or stock. A deeper discount fixes only one of those.
Quick Wins:
- Compute break-even lift for every candidate discount.
- Compare it against the lift you can actually prove from your last two BFCMs.
- Test a 15% bundle against a 30% single-product offer.
Segment by Behavior, Not Revenue Tier
Why discount someone who would have bought anyway?
Segment by purchase propensity, margin, AOV, recency, and discount sensitivity, then use the lightest offer that changes behavior,
| Segment | Objective | Possible offer |
| New / high-CAC | Acquire profitably | Threshold or bundle |
| Lapsed | Reactivate | Targeted incentive |
| Loyal / full-price | Protect margin | Early access or gift |
| Discount-sensitive | Convert selectively | Deeper targeted offer |
| High-AOV | Increase basket | Threshold or bundle |
Relevance has limits. Gartner’s 2025 survey of 1,464 B2B buyers and consumers found that personalized marketing produced negative experiences for 53% of respondents, who were 3.2 times more likely to regret a purchase. A different offer is not automatically a better one, so test each segment’s offer against its own control.
Lower CAC also moves your ceiling. In the example above, $5 lower CAC adds $5.00 per order, while five fewer points of discount adds roughly $4.25. Start with reducing your Shopify customer acquisition cost.
Step 4: How Do You Test Whether an Offer Was Incremental?
Compare customers who received the offer with a randomly selected group who did not. Random assignment is what makes the comparison fair.

- Randomize: draw the control group at random from eligible customers in each segment before the campaign starts. Never let customers choose their group.
- Size it properly: use a sample-size calculator with your baseline conversion rate. Ten percent is a common starting point for large lists, but a small list may need a larger share or a longer test to show a real gap.
- Keep everything else equal: same send timing, same channels, same non-discount content. Watch for leakage from sitewide codes and paid ads, and prefer customer-specific offers where you can.
- Compare contribution, not revenue: incremental contribution per customer = contribution per offered customer − contribution per control customer, after discount, fulfillment, returns, and CAC.
- Read it twice: at the end of the campaign, and again at day 90.
Revenue per customer can rise while contribution per customer falls. That is how a sale gets celebrated in November and explained in January.
Step 5: The 90-Day Test
Your first BFCM order is not the finish line. In the same example, a 30%-off first order contributes $3.43. A full-price repeat order contributes $43.96, because no CAC rides on it. So the offer only works if that customer comes back. (If you cannot name last year’s BFCM repeat rate, you cannot judge this year’s offer.)

Answer four questions at day 30, 60, and 90, for offered and control customers separately,
- Repeat rate: did BFCM customers buy again?
- Spend: how much did the second order bring?
- Dependence: did they need another discount?
- Payback: was the first order profitable after CAC and fulfillment?
Shopify’s own guidance is to build a post-BFCM retention sequence, and a MOFU strategy is what turns a discounted first order into a second one.
Stop Discounting on Instinct. Start Designing for Behavior.
Most stores run BFCM the same way every year. Pick a round number, launch, count revenue.
If your offer never changed the behavior you wanted, you did not design an offer. You picked a number. And every year that number teaches customers what your normal price is worth.
The right path produces profitable incremental demand: a bundle that lifts basket size, a gift that protects price, a segmented offer that skips customers who were already buying, a holdout that proves the lift, and a 90-day read that tells you what to repeat.
Not sure where your BFCM offer sits on the contribution curve? Book a free consultation, and we will run your break-even lift and per-SKU discount ceiling before you launch.
Frequently Asked Questions
Do BFCM Discounts Train Customers To Wait For Sales?
How Do I Calculate Break-Even Volume For A Discount?
Should Existing Customers Get The Same Offer As New Customers?
What Is an Incrementality Test For BFCM?
Can a Small Team Run This Before BFCM?
Table of Contents




