Analytics
Analytics is the page that answers "is this program working". It has two halves. The top half counts referred orders, the revenue they brought in, and the commission they cost, and it works on every plan. The bottom half, Link analytics, counts clicks on affiliate links and the storefront pages those visitors opened before ordering, and it needs the Growth plan or higher.
Average time on store is measured across visits that saw more than one page. A visit that opened one page and left has no measurable duration, so it is left out rather than counted as zero.
What counts as a referred order
The page merges your paid commission history with the live referrals sitting in the app right now: ones waiting for your approval, ones on hold, and ones already approved for payout. Manual bonuses and gifts are excluded, because they are not sales. History you imported from a previous affiliate app counts too, so a migrated store does not open this page and see an empty track record.
Two kinds of referral are left out on purpose. Referrals you rejected do not count. Approved referrals worth zero commission do count: a free-sample program would otherwise report no referred orders at all. Separately, on the Free plan only the first 200 referral orders in a calendar month are attributed at all, so anything past that never reaches this page.
The four totals at the top are:
| Total | What it is |
|---|---|
| Referred orders | How many referral rows fall in the window, dated by the order. |
| Referred sales | The sum of the sale amounts on those rows, in your store currency. The two tables below head the same figure "Revenue". |
| Commission | The sum of the commission on those rows. This is what the program cost you, not what you have paid out yet. |
| Active affiliates | How many different affiliates appear in those rows. |
When an order is refunded, Sprout Affiliate writes a clawback: a row that takes back the share of the commission the refund cancelled. It is named after the original order with the word "refund" on the end, it carries a negative sale and a negative commission, and it is dated to the original order. Revenue and Commission therefore net out correctly, and Referred orders does not count the clawback as another order: an adjustment row carries money but is not an order.
If Shopify does not answer when the page asks for your live orders, a warning appears saying the figures show paid history only. Reload before you act on the numbers.
The two tables
Top affiliates is a leaderboard, not a full list: the page holds the 15 highest by revenue in the window and shows 10 of them, with a Show control for 1, 3, 5 or 10 and sorting by any column. A separate All affiliates card lists everyone. Top affiliates disappears when the window has no referred orders, replaced by "No referred orders in this window yet."
Filters, and one thing they do not filter
The Affiliate and Program selectors sit in the URL, so a filtered view survives a refresh and can be shared. They apply to the four totals, the chart, and both tables. Affiliates still awaiting approval are not offered in the list.
Both selectors apply to the Link analytics block as well, including an affiliate's older link names, so choosing one person narrows the click figures and the order figures together. A third filter, Source, narrows all of it to where the click came from.
Grouping by program uses the program each affiliate belongs to now, not the program they were in when the sale happened. Move an affiliate to a different program and their whole history moves with them. An affiliate with no program shows under a dash.
The date range
Presets are Today, Last 7 days, Last 30 days, Last 90 days, Last 12 months, Since last payout, All time, and Custom. It opens on Since last payout.
Since last payout starts the day after your most recent payout, because the payout itself is settled money and is not part of what the next run will owe. All time starts on the date of your earliest recorded commission, or falls back to the last 730 days if you have none yet. A custom span is capped at 730 days.
Every day here starts and ends on your store's clock. The timezone comes from your Shopify shop settings, and Sprout Affiliate re-reads it as you use the app, at most once every five minutes. If your store is behind UTC, a sale at 6pm local time counts as that day here, even though it is already tomorrow in UTC.
The chart
Pick one measure at a time: Referred sales, Commission, Referred orders, or Active affiliates (which is hidden when you have filtered to a single affiliate). Only one line is drawn on purpose. Those three sit on completely different scales, and stacking them would need a second scale up the right-hand side, which makes the point where two lines cross an accident of the two scales rather than anything real.
How much time each point on the line covers follows the window, and you cannot set it by hand: a one-day window plots one point per hour, up to 120 days one point per day, and anything longer one point per month. The chart only appears when the window produces more than one point.
On the Today view the line stops at the current hour and the last leg is drawn dashed, because the current hour is still filling up. Hours that have not happened are not drawn at all, since a flat line through the rest of the day reads as "no sales" instead of "not yet".
The figure above the chart is the window total. It carries a comparison with the period before it, and the chart draws that earlier period as a second line. The clicks chart draws its own, as a grey dashed line with a key naming the two date ranges.
A quiet window draws a flat line along zero. That is a real answer, not a broken chart.
Affiliate share and Link sources
Affiliate share is a pie of who the window's figures came from, one slice per affiliate, and Link sources is the same pie for where the orders were sent from. Each can show Referred sales, Commission, or Referred orders, chosen with the tiles beside the pie.
Show narrows a pie to its top 1%, 5%, 10%, 25% or 50% of slices, meaning affiliates or sources (rounded up, and always at least one), or All. Every percent in the key stays a share of the whole total, so a top share is drawn as the wedge of the circle it is actually worth, and the rest of the circle is left open. Under each figure, a line in small grey says what the top share makes up: the key's percents added up, so "Makes up 92.8%" means the slices shown account for 92.8% of that figure. At All there is nothing to add up and the line is not shown.
Link sources has a switch to leave out orders whose source was not recorded; the percentages are then shares of what is left. Both pies, and the Makes up line, are the same in the iPhone and Android apps.
Link analytics (Growth plan and up)
Tracked clicks, Turned into orders, Average time on store, and Pages per visit are built from the page trail: the list of storefront pages a referred visitor opened, reported one page at a time by the Sprout referral tracking app embed you switch on in your theme. That trail is recorded on every plan, including Free, so upgrading shows you the history you already have rather than starting from zero.
Tracked clicks
One click means one visit identity, not one tap. When someone lands with ?ref= on the URL, the embed mints an identity made of the affiliate's code and the moment of the click, and keeps it in the browser for the length of your attribution window, which is how long after a click an order still earns commission (30 days unless a program sets its own). Re-clicking the same affiliate's link keeps the original click time, so it stays one click. Clicking a different affiliate's link starts a new one.
A click belongs to the window based on when the click happened. Everything else about that visit, including pages viewed days later and the order it eventually became, is credited back to the click's own day.
Clicking a tile picks which figure the link chart draws. A separate Tracked click list link opens the click list itself, one row per visit, carrying the same range.
Turned into orders
The percentage, to one decimal place, is:
- Numerator: tracked clicks in the window that ended in an order. The match is exact. The cart carries the identity as the
Sprout Reforder attribute, and an order counts only when that attribute matches the click. - Denominator: every tracked click in the window.
The order lookup has no end date, so an order placed after the window closes still counts against the click that started it. A rate for a recent window can rise over the following days. With no clicks at all, the tile shows a dash rather than 0%.
Turned into orders asks only "did the click reach an order". It counts an order you later rejected, so it can sit above what the top half of the page pays for. Orders from a discount code with no link click never appear here at all, though they do count in Referred orders above.
Average time on store
Page views for one visit are split into sessions on any gap longer than 30 minutes, the same rule Google Analytics uses. Each session contributes the time from its first page to its last, and the visit's total is the sum of its sessions. Without the split, one visitor who parked a tab and came back hours later produced a 183-minute "visit" that tripled a store's average on its own.
A visit with a single page has no measurable time, because there is no "they left" event to measure against. Such visits are left out of the average entirely rather than counted as zero. Counting them as zero would drag the average down and suggest people bounced instantly, when the truth is that you cannot tell.
So read Average time on store as "how long people stayed, among the visits where staying was measurable". It shows a dash until at least one such visit exists.
Pages per visit
Total pages recorded for the window's clicks, divided by the number of clicks, to one decimal place. A page is recorded once per visit per path, the path being the part of the web address after your domain, such as /products/mug, so a visitor who returns to the same product page later does not add to the count. Read it as distinct pages seen, not page views. A single visit stops recording after 200 pages.
Where link analytics is blind
- Identities only exist where the app embed ran. Content blockers, privacy browsers, and unusual themes under-report, so treat clicks as a floor rather than a census.
- Page views are only recorded for codes belonging to an active affiliate. Pause or remove an affiliate and their visits stop being tracked from that moment.
- Page trail rows are deleted after 120 days, and the copy of your Shopify orders that Sprout Affiliate matches them against only holds 90 days (orders you still owe commission on are kept for as long as they are owed). On an All time window, clicks and the share that turned into orders will thin out or disappear for older periods.
- The tiles, the totals and the charts all cut their window on your store's clock, so a tile and the list it opens report the same number.
- None of these four tiles is proof of anything. Nothing binds a page trail row to a verified browser session, and Sprout Affiliate stores no user agent (the identifying text a browser sends about itself), no cookie, and no customer id. The row does hold the visit's IP address, but only for the self-referral check, and it is never shown here. It is storefront analytics.
Tracked clicks, the drill-down
The Tracked clicks page lists every visit in the window, newest first, with the time on your clock, the affiliate it credits, the page they landed on, how many pages they saw, the visit length (gaps longer than 30 minutes removed, the same rule the average uses), and the external page that sent them when there was one. Each row opens the page-by-page journey with timestamps, up to the first 50 pages, while the page count itself stays complete. Filter by affiliate, or by outcome (turned into an order, or no order). Every row opens the click's own page, which carries the journey and, where there is one, the order it became.
An affiliate's older link names resolve to the affiliate, so filtering by person finds those visits too. All time starts at the first click this store recorded, and Since last payout reads the real last payout.
What your affiliates see
Affiliates have their own Analytics tab in the portal, using the same date-range presets. It shows their commission over time with a dashed previous-period line and a percentage change, plus the same four link tiles scoped to their own code and any old codes that still credit them, plus an "Every click" list of their visits with the pages seen and the order each one became.
The link section of their Analytics tab follows your plan, not theirs. On Free they do not see it. If your plan cannot be read at that moment, Sprout Affiliate shows it to them anyway, because a billing hiccup must never read as a downgrade.
If a number looks wrong
- Clicks but no orders: check that the theme app embed is enabled under Theme editor, App embeds, and remember that discount-code sales never produce clicks.
- Orders but no clicks: the app embed is off, or the buyer's browser blocked the small background request that reports each page. The order can still be credited by the discount code or by the Web Pixel (the Shopify extension that reports completed checkouts to Sprout Affiliate) while the page trail records nothing.
- Link analytics missing on a paid plan: the card is hidden rather than shown broken when the click data cannot be read. Reload.
- The first or last day of the range looks empty: the totals and the charts use your store's calendar, so compare against your local date, not UTC.
- Numbers that changed since yesterday: an order placed days after its click still attaches to that click, refunds and order edits change the sale and commission behind a row, and approving or rejecting a referral moves it in or out of the totals.