You can A/B test a discount on Shopify without an app. Since October 2, 2026, Rollouts can include discounts: create a rollout of the type Experiment under Markets > Rollouts, add a discount change, and Shopify shows the changed offer to one group of visitors while the other group keeps your current offer.
Experiments need the Grow plan or higher and run on your online store only. The details below were checked against Shopify's Help Center and changelog on October 6, 2026. We also set up a discount Experiment in a demo store that day to confirm the screens and the metrics. That store has almost no traffic, so this guide makes no claim about which kind of offer wins.
How a discount test works
You do not pick two discounts and set them against each other. An Experiment has two groups:
- Control sees your store's discounts as they are today.
- Treatment sees them after the rollout's change. For each discount you add, the rollout sets it to active or switches it off.
Every test is therefore "what we run now" against "what we would change". That still covers the questions merchants usually ask:
| Question | Your store today | What the rollout does for the treatment group |
|---|---|---|
| Does a new offer lift sales? | No offer running | Activates the new discount |
| Is 10% off better than "spend $80, save $12"? | 10% off is running | Deactivates 10% off and activates the spend threshold discount |
| Do we still need the welcome offer? | Welcome offer is running | Deactivates it |
If a discount is already in the state the rollout sets, both groups see the same thing and the test measures nothing.
Set up the test
- Create the discount you want to test under Discounts. A rollout works with existing discounts. An automatic discount is the better choice for a test, for a reason covered below.
- Check that discount's own dates. A discount is active when its own dates apply or when a rollout activates it. If its own start date has passed, the control group gets it too. Give a new test discount a start date after the test ends, so it shows as Scheduled. In our test, a discount set up this way appeared in the cart for some new visitors and not for others once the Experiment was active, which is the split you want.
- Go to Markets > Rollouts, click Create rollout, name it, and select Experiment in the menu next to the name.
- In the Scheduling section, set the start and end date and time. Under the dates, Shopify confirms the type: "Changes are temporarily compared against your live store."
- Click Add changes and choose Discounts. Select each discount involved and use the menu beside it to set its state for the treatment group, such as Set to active. Click Apply.
- The page now shows a Control card and a Treatment card. In the Audience section, check the traffic split, which defaults to 50 / 50, and the traffic allocation.
- Read any warning or conflict message Shopify shows, then save.
An Experiment with one discount change. Control keeps the discount scheduled, and Treatment sets it to active.
The split applies inside the allocation. With a 50% allocation and a 50/50 split, a quarter of your visitors see the new offer.
Two things on this screen are worth a second look. The Audience section shows Estimated visitors per week for the test, which tells you early whether your traffic can support it. With a discount in the Experiment, Shopify also warns that the discount may not appear on Google or other sales channels the way it does in your online store, which can cause sales channel warnings.
Three limits to plan around: a discount can belong to only one rollout that has not ended, a rollout holds up to 250 discounts, and the discount's customer eligibility rules still apply inside the test.
What the results show, and what they leave out
Open an active rollout from Markets > Rollouts to see its analytics. In our test, a discount Experiment showed five metrics side by side for Control and Treatment: sessions, conversion rate, reached checkout rate, added to cart rate, and bounce rate. Below them sits a conversion rate confidence interval chart. An Insights panel at the top stays on "Insights not yet available" until Shopify has enough data.
Revenue, average order value, and profit are absent. Shopify's documentation says the same: revenue or orders attributed to a discount are not available for a rollout.
The analytics page in our demo store, minutes after the Experiment started. The metrics cover conversion, and none of them covers revenue.
That gap matters because the offer that converts more visitors can earn less. Work out what each visitor is worth under each offer:
Margin per visitor = conversion rate × average order value × margin after the discount
Take the conversion rate from the rollout. Take average order value and margin from your own orders that used each offer. A deeper discount often wins on conversion rate and still earns less per visitor once the lower order value and thinner margin are counted. Returns can move the result again, so look at them once the return window has passed.
What can distort the result
- Discount codes travel. Shopify notes that a code activated in an Experiment can be shared with visitors outside the treatment group. An automatic discount stays with the group it was shown to.
- Visitors are counted whether or not they qualify. Results count any visitor who reaches the stage where the discount applies, in both groups, regardless of eligibility. A narrow eligibility rule dilutes the difference you can see.
- Combinations differ between groups. Combination settings still apply, so a pair of discounts that stacks for one group might not stack for the other. Check them with the discount tests in our BFCM checklist.
- Your marketing can announce the offer to everyone. The test runs on your online store only. An email or ad that promises the new offer sends control-group visitors to a store that does not show it. Keep the offer out of campaigns until the test ends.
- Editing mid-test changes what you measure. A discount in a rollout can still be edited, and Shopify shows a warning when the edit can affect the results. Leave it alone until the end.
- Low traffic gives noise. When each group gets one or two orders a day, a single order moves the rate more than the offer does. Let the test run through at least one full week, and longer on a small store. If the gap stays unclear, the honest reading is that the test did not find a difference.
Customers will also compare notes. Decide in advance what your support team says when someone asks for the offer a friend received.
End the test and keep the winner
The Insights panel and the confidence interval inform the decision, and the decision is yours. When you end the rollout, you choose between Roll back changes and Apply changes. Applying cannot be reverted, and it changes the discounts themselves:
- A discount the rollout activated stays active, and its end date is removed. If the offer was meant to stop on a certain day, set the end date again.
- A discount the rollout deactivated expires.
When to skip the test
Run an offer test in the weeks before a sale, when a result can still change your plan. During the sale itself, traffic and buying intent are unusual, and a result from that week says little about a normal one. To switch a chosen offer on and off at set times, use a rollout of the type Event, covered in our guide to scheduling theme changes and discounts with Rollouts.
A discount with clear dates and no question behind it needs no rollout. Its own start and end dates still work as before.