In short
Short answer
- Test the offer's format before the sale (20% off against $20 off, a flat discount against spend tiers), not its depth during the sale.
- Get the client's product costs before you start. Judge the test on profit per visitor, and don't call a profit winner while costs cover less than 90% of revenue.
- Work out the break-even for each arm with the client, in writing, before launch. It turns "did it win?" into a number everyone agreed in advance.
- List every discount the client already runs (codes in emails, loyalty perks, automatic discounts) and check how each combines with the test.
- Get written sign-off for the offers, the dates and the person who can pause the test.
Who this is for: agency strategists setting up a discount test for a client before Black Friday.
The 2026 timeline for an offer test
| Date | Step |
|---|---|
| By Wednesday, October 21 | Costs from the client, break-even agreed, offers signed off |
| By Sunday, October 25 | Launch (a three-week test) |
| Sunday, November 1 | Latest launch for a two-week test |
| By Sunday, November 15 | Read the result, build the sale offer from it |
| Monday, November 16 | Freeze: no new offers or offer tests |
Step 1: Get product costs before you plan anything
A discount test judged on orders or revenue per visitor will almost always favor the deeper discount, because more people buy. Whether those extra orders paid for the discount is a profit question, and you can't answer it without the client's costs.
Ask the client for three things:
- Unit costs on their products in Shopify. Shopify stores a cost per item on each variant. Many clients have filled it in for some products and not others.
- Payment fees as a percent of the order (their payment provider's rate).
- What shipping costs them per order, or as a share of order value.
Then check coverage. If unit costs exist for products that make up only 60% of revenue, a profit result covers only part of the store. Benchmyrk won't call a profit winner until costs cover at least 90% of order value, and you shouldn't either. If the client can't fill the gaps in time, fall back to revenue per visitor and say in the report that profit wasn't measured.
The difference between the two goals matters. Revenue per visitor is total revenue divided by all visitors in the arm, so it already includes both conversion and order value. Profit per visitor subtracts what the goods, fees and shipping cost. The help article on revenue per visitor versus conversion rate explains why "conversion went up" doesn't mean "it made more money", and profit per visitor covers the cost setup.
Step 2: Agree the break-even in writing
Before launch, work out how many more orders each discount needs just to earn the same gross profit as no discount. This is plain arithmetic, and it is the most useful page in your test brief.
(illustrative client, not a real store; plain arithmetic, the same order values in every arm)
The client's gross margin is 45%: on a $100 order, the goods cost $55 and $45 is left.
- With 15% off, the same order brings $85 and leaves $30. To earn the same $45 in total, the client needs 45 ÷ 30 = 1.5 times the orders: 50.0% more orders.
- With 25% off, the order leaves $20, so the client needs 45 ÷ 20 = 2.25 times the orders: 125.0% more orders.
If the client's normal week brings 1,000 orders, 25% off needs 2,250 orders in the same week just to stand still. Few offers more than double orders, which is why depth is decided with arithmetic and format with a test. Put both break-evens in the brief the client signs: the general rule is d ÷ (m − d) more orders for a discount d at margin m.
Put the break-even for each arm in the brief and ask the client to confirm it. When results come in, you compare against a number they already agreed to, rather than debating what "good" means after the fact. Our post on testing prices or discounts first has the formula and a table for other margins.
Step 3: Map every discount the client already runs
An offer test adds a discount to a store that usually has others. Before launch, list:
- Codes in emails and SMS scheduled for the test period.
- Automatic discounts already active, including ones from other apps.
- Loyalty and referral perks that apply at checkout.
- Free-shipping offers, which are a separate discount class.
Shopify applies product discounts first, then order discounts, then shipping discounts, and discounts combine only when each one's settings allow it. When they can't combine, the shopper gets the best discount for the cart. Shopify allows up to 25 active automatic discounts per store, app discounts included (Shopify Help Center, read October 11, 2026). Benchmyrk's price, offer and shipping tests use up to four of them.
For the test, that means:
- An order offer in the test doesn't stack with another order discount such as an email code: Shopify gives the shopper the better one. Every arm faces the same codes, so the comparison stays fair, but a big email campaign during the test means many shoppers in every arm use the code instead of the offer. Avoid sending a sitewide code while the test runs, or plan the test around it.
- Only one live offer test per store at a time in Benchmyrk, so a shopper is never promised two offers of the same kind.
- Count automatic discounts before the freeze, adding the sale offer you'll build from the result.
Mistakes to avoid
- Testing depth instead of format. 20% off against 30% off will usually "win" on orders for the deeper offer. Decide depth with the break-even, test format.
- Judging on conversion rate. A discount can raise conversion rate and lower revenue per visitor, and lower profit per visitor even more.
- Running a sitewide email code during the test. Shoppers in every arm use the code, and the test measures very little.
- Banners that promise more than checkout gives. A banner saying 15% on an arm that gets 10% misleads shoppers and breaks the test.
- Running offer-depth tests over the peak. Deals are screenshotted and shared. Settle depth before the sale; part 9 of this series, on what agencies shouldn't test over BFCM, is listed on the BFCM hub.
Checklist
- [ ] Unit costs cover at least 90% of revenue, or the report says profit wasn't measured
- [ ] Payment fees and shipping costs entered
- [ ] Break-even per arm agreed in writing
- [ ] Every active and scheduled discount listed, and how each combines
- [ ] No sitewide code planned during the test
- [ ] Offers, banner wording, dates, primary goal and pause owner signed off
- [ ] Test ends by November 15
Running an offer test for your own brand rather than a client? See Black Friday offers judged on profit.