The short answer
- Do the break-even maths before you test anything. With a 55% gross margin, a 20% discount needs about 57% more orders just to earn what you earned without it (Example below).
- Test the format in October, not the depth in November. Percent off against an amount off, a flat discount against spend tiers, or buy X get Y, at roughly the same cost. Then run the winner for everyone during the sale.
- Don't split discount depth during the sale. Deals get screenshotted and shared. Shoppers who got 20% when a friend got 30% will ask for the difference.
- Judge offers on profit per visitor. Conversion rate rewards the deepest discount. Revenue per visitor does too, often. Profit per visitor tells you whether the extra orders paid for the discount.
- Make every banner promise exactly what checkout gives, and check how the test offer combines with your own codes.
Who this is for: Shopify brands doing $1M to $10M a year that will run a site-wide BFCM offer and want to choose its format on evidence.
The 2026 timeline
| When | What to do |
|---|---|
| By Sun 18 Oct | Work out break-even for each candidate offer. Shortlist two formats at a similar cost. |
| Mon 19 Oct to Sun 25 Oct | Launch the format test. It needs about three weeks at 60,000 visitors a week (Example). |
| By Fri 13 Nov | Read the result, decide the format and depth, build the sale discount and banners. |
| Mon 16 Nov | Freeze. The offer for the sale is fixed. |
| 26 Nov to 30 Nov | Run the chosen offer for everyone. |
Step 1: Work out break-even
A discount only pays if it brings enough extra orders to cover what it gives away. If your gross margin at full price is m (as a share of the price) and the discount is d (also a share of the price), each order keeps m − d of the price instead of m. To earn the same gross profit you need m ÷ (m − d) times as many orders, assuming baskets stay the same size.
Illustrative inputs, not data from a real store. Plain arithmetic; shipping, fees and basket changes left out.
Inputs: a 55% gross margin at full price.
| Discount | Gross margin left per order | Extra orders needed to break even |
|---|---|---|
| 10% off | 45% | +22.2% |
| 15% off | 40% | +37.5% |
| 20% off | 35% | +57.1% |
| 25% off | 30% | +83.3% |
| 30% off | 25% | +120.0% |
Each extra 5 points of discount costs more than the last, because it comes out of a shrinking margin. That is why the depth is a margin decision first. Most stores can reach a shortlist from this table alone, then test the format.
Two things move the real break-even:
- Basket size. Spend tiers and thresholds ask shoppers to add items. If baskets grow, the discount costs a smaller share of each order.
- Who would have bought anyway. On Black Friday many shoppers came for a deal and would have bought at some discount. A test against "no offer" in October doesn't tell you how they behave in November. A test between two offers at a similar cost does tell you which format they prefer.
The break-even analysis glossary entry and should you test prices or discounts first go further.
Step 2: Choose formats to compare at a similar cost
Formats differ in who gets the discount and how much they're nudged to add:
- Percent off gives every basket the same share. Simple, and easy to compare with other stores' sales.
- Amount off from a minimum ("$20 off orders of $100 or more") gives nothing below the minimum and pushes baskets just under it to grow. A $95 basket gets $19 from 20% off and nothing from $20 off over $100, unless the shopper adds $5.
- Spend tiers ("spend $100 save 10%, spend $150 save 15%") reward bigger baskets more, and cost more on large orders.
- Buy X get Y moves units of chosen products. Good for clearing stock, weaker for raising order value on full-price ranges.
- A free gift from a minimum gives a product rather than money off. Its cost is the gift's unit cost, not its price.
Pick two that cost roughly the same on your typical basket. If 20% off costs about $19 on a $95 basket, compare it with "$20 off $100+" or tiers that land near the same cost. Then the test answers "which format do shoppers respond to?", not "does a bigger discount sell more?", which you already know.
Step 3: Set the primary goal and guardrails
Primary goal: profit per visitor, after the discount. A deeper discount usually raises conversion rate, can raise or lower revenue per visitor, and lowers profit per order; only profit per visitor puts all three together. See revenue per visitor vs conversion rate and the glossary entry on profit per visitor.
Guardrails: checkout completion, and page errors on the pages that show the offer banner.
Diagnostics (they explain the result, they never decide it): conversion rate, average order value, share of orders reaching the minimum.
Illustrative inputs. Computed with the same sample-size formula Benchmyrk uses to plan revenue and profit goals (95% confidence, 80% power, two versions, even split).
Inputs: 60,000 visitors a week (about 8,571 a day), a 3.0% conversion rate, gross profit of $33.25 per order after the discount (a $95 basket at 20% off is $76, minus $42.75 product cost), and a spread of $28 between orders.
| Smallest change in profit per visitor to detect | Visitors per version | Days |
|---|---|---|
| 10% | 87,863 | 21 |
| 5% | 351,451 | 83 |
Three weeks can detect a 10% difference in profit per visitor between two formats. It cannot detect a 5% difference before the freeze. If the formats are close, expect "inconclusive", and decide in advance which one you'll run in that case (usually the simpler one).
Step 4: Check how the offer combines with everything else
Shopify discounts don't combine unless each one is set to. Every discount belongs to a class (product, order or shipping) and lists which classes it combines with. Shoppers can use at most 5 product or order codes and 1 shipping code on one order, and only one shipping discount applies per order (Shopify Help Center, read 11 October 2026).
Before you launch:
- List every discount that could be live during the test: welcome codes, email codes, loyalty perks, influencer codes, bundle apps.
- For each, note which classes it combines with.
- Place a test order in every version with your most common code applied, and check the total. Test orders don't count in results unless "Include test orders" is turned on for a goal.
- Count your active automatic discounts. Shopify allows up to 25 active automatic discounts per store, app discounts included (Shopify Help Center, read 11 October 2026). Benchmyrk's price, offer and shipping tests use up to four of them.
Mistakes to avoid
- Judging on orders or conversion rate. The deepest discount usually wins those, whether or not it pays.
- Testing depth over the sale. Run depth questions in October on normal traffic, or not at all.
- A banner that promises more than checkout gives. "Up to 30% off" on the banner and 20% at checkout breaks the shopper's trust at the moment they are about to pay.
- Countdown timers that reset per visitor. Shoppers notice, and the comparison stops being fair. Count down to the offer's real end.
- Ending the test on a Monday morning read. Weekdays and weekends differ. Let it run whole weeks.
Checklist
- Break-even for each candidate offer at your real margin.
- Two formats at a similar cost on your typical basket.
- Primary goal: profit per visitor. Guardrails: checkout completion and page errors.
- Planned length from the sample-size calculator; ends before 13 November.
- Test order placed in every version, with your common codes.
- Banners checked against what checkout gives.
- A decision for "inconclusive" written down before launch.
Running offer tests for clients? The agency track on the BFCM hub covers sign-off, margins and discount conflicts. The full season plan is in What to test before Black Friday and Cyber Monday on Shopify.