Before you start
- Connect at least one payment provider in Settings > Integrations: Stripe, Shopify, Lemon Squeezy, Polar, Paddle, or post payments to the Payment API.
- Install the tracking snippet, so there is a visit to credit each payment to.
How the numbers are counted
These rules apply to every figure on the page.- Revenue is net of refunds. A refund is subtracted from the source the original payment was credited to, on the day the refund was issued. A day, or a source, that gave back more than it took in shows a negative figure. A past day’s figure does not change when a later refund arrives.
- Sales are revenue before refunds. Sales in a date range equal revenue plus the refunds issued in that range.
- Orders are paid orders. A refunded order still counts, because the purchase happened. Free trials are not orders; the Orders figure’s hover text says how many trials there were.
- Every conversion counts once. Each payment is credited to one visit when it arrives, using the attribution model your site had at that moment. Changing the model later does not re-credit past payments.
- Dates are UTC calendar days.
Headline figures and the chart
The top card shows five figures for your dates, each with its change against the same number of days just before them. Click a figure to plot it.
Revenue per visitor sits beside them. It is net revenue divided by the distinct visitors seen in your dates, and its hover text gives the same figure for visitors from AI assistants. It is left blank for dates older than two years, which is how long visitor counts are kept.
The change percentage is left out when there is nothing to compare with, and for revenue when the earlier period was zero or negative.
Revenue by source
A ranked list with three tabs. Hover a row for its refunds and its share of sales.- Sources: each AI assistant, and each named referrer such as
x.comorgoogle.com. - Channels: every AI assistant folded into one AI assistants row, beside Direct, Search, Social, Referral, Email and Paid.
- AI assistants: only the assistants.
- Unattributed: payments we could not match to any visit. See Attribution coverage for how to shrink it.
- Unknown source: payments matched to a visit whose source could not be determined.
Sales by channel
A radial of sales, before refunds, split by channel: AI assistants (every assistant together), Direct, Search, Social, Referral, Email, Paid, Unknown source and Unattributed. These are the same groups as the Channels tab. It uses sales rather than revenue so that no slice can be negative. The marks inside each slice are its top sources, and hovering a slice shows its sales, revenue, orders and share. Click a channel to replace the radial with every source inside it, each with its share of that channel’s sales. Click AI assistants to see each assistant. Click Channels above the radial to go back. Direct visits carry no referrer, so Direct has no named sources to show. Unknown source and Unattributed cannot be opened. If a channel has more small sources than the Sources tab lists, a line under its radial says the smallest ones are left out.Attribution coverage
The share of revenue we could tie to a visit, and how each payment was matched. This card is in USD. The Stripe guide explains how to pass the visitor ID at checkout so fewer payments go unattributed.Subscriptions
What subscribers are worth, grouped by the source that first brought them in:- Subscriptions: how many subscriptions we have seen payments for.
- Lifetime value: everything those subscriptions paid, net of refunds.
- Avg. value: lifetime value divided by subscriptions. On a phone this column is left out of the table, and the figure stays above it.
$12.3K); hover one for the exact amount.
This card covers all time, not your picked dates, and is shown in USD. A cancelled subscription keeps what it already paid. Click View all to open the full list: totals for subscriptions, lifetime value, average value, payments and refunds, then every subscription with the source that brought it in, its payments, its last payment date and its lifetime value, a page at a time.
Products
Shown only when a Shopify store is connected. Your top 200 products by revenue in your dates, net of returns, with units sold. A product that sold more returns than sales in your dates shows negative units.Currency
Amounts are stored in USD. If your site reports in another currency, each day is converted at that day’s European Central Bank reference rate, and a note under the chart says so. If any day in a figure has no published rate, that figure and every figure beside it are shown in USD instead, with a note, rather than mixing two currencies. Change the reporting currency in your site settings.Troubleshooting
The page says No revenue in this period. No payment, refund or trial landed in your dates. Widen the date range. If you expected revenue, check that your provider is connected in Settings > Integrations. A warning says a provider’s sync is behind. We have not received events from that provider recently, so the latest revenue may be missing. Open Integrations to see the provider’s status and last error. Most revenue is Unattributed. Payments are arriving but cannot be matched to a visit. Pass the visitor ID at checkout as described in your provider’s guide. A source shows negative revenue. Refunds issued in your dates were larger than that source’s sales in the same dates, often because the original sale was earlier. Widen the range to include the sale.Next
- AI sources: traffic from each assistant, before anyone pays.
- Revenue API: the same revenue data for your own reports.

