Methodology
How SegmentIQ calculates where your discount spend went
SegmentIQ for Shopify doesn't guess, and it doesn't use a model trained on other stores. It applies a few fixed rules to your own order history. This page lists those rules, so you can check any figure the app shows you.
What SegmentIQ reads
SegmentIQ has read-only access to your store. For the report it uses, from each order:
- when the order was created
- the Shopify customer ID on the order, if there is one
- the total discount on the order, and the names of the discount codes or automatic discounts applied
It also reads the customer segments you've already created in Shopify (Customers → Segments) and which customers are in each one. It doesn't create its own segments. Segment membership comes from a snapshot taken once a day. The first sync imports the last 12 months of orders.
Because SegmentIQ reads discounts from the orders, it counts discounts from any source: Shopify discount codes, automatic discounts, and apps such as Discount Ninja, Regios or Promi.
The time windows
| Plan | Orders analysed | Look-back for "recent" | Scope |
|---|---|---|---|
| Free | Last 90 days | 90 days | Your biggest discount code |
| Pro | Last 180 days | 180 days | Every discount code and customer segment |
Recent full-price buyer
A discounted order counts toward "to recent full-price buyers" when the same customer had placed an order with no discount during the look-back period before it (90 days on Free, 180 on Pro). The whole discount on that order is counted.
Example: a customer pays full price on 3 March, then uses LOYAL20 on 20 April and gets $12 off. On either plan, that $12 counts as discount given to a recent full-price buyer, because 3 March is within the look-back.
A code's share to recent full-price buyers is that amount divided by the code's total discount spend.
First-time buyer
A redemption counts as a first-time buyer when SegmentIQ finds no earlier order from that customer in the order history it analyses. That history is the report period plus the look-back before it. A customer whose only earlier orders are older than that is also counted as first-time.
Orders with no customer
Some orders have no customer attached, such as some point-of-sale or draft orders, or orders from customers deleted on request. These can't be matched to earlier orders, so they never count as recent full-price buyers or as first-time buyers. They're shown separately as No customer. Online guest checkouts still create a Shopify customer, so they're counted as first-time or returning buyers like everyone else.
Orders with more than one discount
When an order uses more than one discount, its discount amount is split evenly between them. An order with $10 off from two codes adds $5 to each code. An order with a discount amount but no discount name appears as Unlabelled discount.
Customer segments
For each segment SegmentIQ adds up discount spend, and the share of it that went to recent full-price buyers, for the segment's customers. Segments can overlap, so a customer in several segments counts in each of them.
The repeat discount rate is the share of a segment's orders that used a discount, counting only orders placed after the customer's first discounted order. A high rate suggests the segment has learned to wait for a discount.
When codes and segments get flagged
| Flag | Rule |
|---|---|
| Biggest code verdict (Free) | Of the codes with at least 10 redemptions in the last 90 days, the one with the most discount spend |
| Mostly full-price buyers | At least 10 redemptions, and 50% or more of the code's discount spend went to recent full-price buyers |
| Possible leak | The code is open to all customers, has at least 20 redemptions, and 60% or more of its redemptions came from first-time buyers or orders with no customer. Codes named like welcome offers are excluded, because they're meant for new customers. |
| Waits for a discount | A segment with at least 10 discounted orders whose repeat discount rate is 70% or more |
Sale before/after comparison
Choose a sale of up to 45 days. SegmentIQ compares daily orders, revenue and average order value during the sale with the 8 weeks (56 days) before it, for all customers and for each segment. Comparing daily averages means a 5-day sale can be measured against an 8-week baseline.
What these figures can't tell you
Every figure shows who received a discount, not what the discount caused. A customer who paid full price last month may still have needed the offer this time. Treat a high share as a sign worth testing, not as proof the discount was wasted. The only way to prove it is a holdout test: offer the discount to part of a segment and not the rest, then compare.
The free Discount Code Checker
The Discount Code Checker uses the same rules on a Shopify orders CSV export, with a few differences. Customers are matched by email address, because an export has no customer IDs. Cancelled orders are left out. The look-back is 180 days. It runs entirely in your browser, and nothing is uploaded.
Related: Discount cannibalization on Shopify · How to tell if a discount code leaked · Discount report documentation
See these figures for your own store
SegmentIQ applies these rules to your orders automatically and keeps the numbers up to date. Read-only, with a free plan.
Install SegmentIQ free