What this helps you do
Find out whether people return after their first order. A cohort is everyone whose first order was in the same week, month, or quarter. Select Show first order to add first orders as a separate column and chart point. Period 0 counts repeat orders in that first period; Period 1 is the next period.
For example, with Month selected, if four customers first ordered in March and one ordered again in April, March's Month 1 retention rate is 25%. If you select 2025, a customer who first bought in December 2025 and returned in August 2026 appears in December’s Month 8.
Before you start
Use Upstorr Admin on desktop. Open a store with an active subscription and a role that can view reports.
Steps
- On desktop, open Reports and select Customer cohorts beside New report. Your role needs permission to view reports and the store subscription must be active. On a new report, use the switcher at the top of the controls card to switch between Cohorts and Freeform before saving. Each keeps its unfinished settings when you return.
- Open Metric and choose a Measure, such as Customer retention rate, Customers with orders, Orders, or a sales amount. Admin reports show money in INR. Open Currency to confirm it, then select Run report. If an older saved report uses another currency, select Use INR for this report before running and saving it. Customer and order counts and retention percentages stay the same. Your orders, payments, GST invoices, and checkout currency stay the same.
- Open Cohort definition and choose the First order channel to include all first orders, online first orders, or point-of-sale first orders. Later orders from either channel are included.
Open Filters to choose groups by what they bought first, then select Add product filter. Match a full product name with contains or exclude it with does not contain. For contains one of or does not contain any of, enter up to 20 different names, one per line. Matching ignores capitalization and uses names saved on the first order; later purchases keep all products. Several filters must all match. If an older setup used only part of a product name, replace it with the full name. Remove an unwanted filter using its remove button.
To choose customers by where their first order came from, select Add referring channel filter. Use Is, Is not, Is one of, or Is not one of for full names; Contains, Does not contain, Contains one of, or Does not contain any of for part of a name; or Starts with or Ends with. Matching ignores capitalization. Recognized sites use names such as Google and Instagram, recorded direct visits use Direct, and recorded email sources use Email. Other recorded sites use their domain. Multi-name rules take one name per line. Several rules must all match. A customer whose first order came from Google can still have later Instagram purchases included. Unrecorded referring channels are excluded, including from negative rules.
To choose customers by the traffic type recorded with their first order, select Add traffic type filter. The same ten text rules are available. Paid is recorded from explicit campaign labels such as
cpc,paid,paid_search,paid_social, ordisplay; Organic is recorded fromorganic,organic_search, ororganic_social. Direct is a recorded visit without a referring site or campaign label. Unknown means a visit was recorded but did not have enough information to distinguish paid and organic. Older orders without a recorded traffic type are excluded, even from negative rules; they are not changed or guessed. Ad-click identifiers and advertising app integrations are not currently used to classify this cohort filter. A customer’s first paid purchase can still have later organic purchases included. Several traffic, referring-channel, product, and customer rules must all match. To choose customers by location, select Add customer filter, then Customer cities, Customer countries, or Customer regions. Enter full recorded names, such as Mumbai, India, or Maharashtra. These rules check saved customer addresses and shipping addresses recorded on their orders, rather than only the latest address. A customer with a previous Mumbai address and a later Delhi address can match either city. Matching ignores capitalization. The same four contains rules are available; multi-name rules take one full name per line. Several filters must all match. A matched customer’s later purchases remain included even when sent elsewhere. - Open Interval and choose Week, Month, or Quarter for the cohort interval. Weeks begin on Monday in India time.
- Open the date button above the preview and choose Cohort dates. Select Done to close the popup after changing your dates. With Recent periods, set Cohort weeks/months/quarters from 1 to 24. A new report starts with the last completed periods. Or choose a completed year to keep its first-order groups fixed; historical years use Month or Quarter. Later orders from those customers are included within the selected 1–12 periods, up to the current observation window. Select Include this week/month/quarter for the unfinished current period; a historical year labels this Include this month’s later orders or Include this quarter’s later orders. Older saved reports keep their existing recent-period choice.
- Set the number of periods after first order to show, from 1 to 12.
- Open Visualization and choose Cohort grid to shade the table by value, or Retention curve to compare periods on a line chart. Select Show first order to include first orders in the table, export, and line chart. This display switch updates the result without running the data calculation again.
- Select Run report. The table shows every chosen period. A blank cell is outside the included time window: it may be in the future, or in the current unfinished period when that period is excluded. Zero means the period is included and no matching activity was recorded. Select a period’s value to open its repeat-customer and order details. Select a cohort name or its totals value for an overview including both first and repeat purchases, or a First order value for first purchases only. The grid’s retention and repeat-sales totals still describe repeat purchases. For example, two first orders plus three repeat orders give five orders in the overview and three repeat orders in the grid. Blank periods cannot be opened. The sales-channel and recorded-referrer charts show the selected purchases’ gross sales, before discounts and returns. Each chart shows up to ten groups, with the largest gross sales first; groups without a known amount are not drawn. Select a summary number, Open sales channels report, Open recorded referrers report, or Open customers by country report to open that selection in the query report editor. A query is a written question about your store’s reporting data. The copied question keeps the same customer group, filters, purchase period, and run time; rerunning that copy does not move its dates forward. You can edit and save it as a separate report. Saving that copy does not change the original cohort setup. Use your browser’s back button to return with your unsaved cohort settings, or close the details to return to the cohort table.
- Open Report details, enter a name, and select Save to keep the setup. You can also select Export to download the current table as CSV, JSONL, XML, or Apache Parquet.
What happens next
The line chart compares recent cohorts that have customers. The cohort grid includes every selected period, even periods with no first-time customers. On Reports, use the filter icon to add Category, choose Custom, and reopen a saved cohort report to run it with fresh data, change its settings, select Save, or open More to Save as new or Delete report. Deleting a setup does not delete customers or orders. You can also select saved cohort reports using the checkboxes on Reports, select Delete, and confirm.
How the numbers work
All cohorts combines the groups in the table and is also included in exports. The overall retention column counts each returning customer once, even if they ordered in several periods. Each period’s combined rate uses only groups old enough to have reached that period. For example, a group that has not reached Month 2 does not lower the Month 2 rate.
Customer retention rate is the number of customers in that cohort who ordered again in a period divided by the number of customers who first ordered in the cohort period. Cumulative amount spent per customer includes first orders and later orders through that selected period, including GST and shipping and subtracting recorded reversals, divided by the original cohort size. Average order value divides that period's original repeat-order sales after discounts by its repeat-order count; later refunds do not change that average.
Gross sales uses item amounts before discounts. Sales after discounts subtracts the recorded discounts once. For example, an item priced at ₹100 with a ₹20 discount contributes ₹100 gross and ₹80 after discounts.
Net sales subtracts discounts and recorded sales reversals from item sales. Total sales also includes recorded GST, shipping, and applicable fees. Both include changes recorded through the report’s run time, attributed to the period of the original purchase. For example, a July repeat purchase of ₹100 before a ₹20 discount and ₹14.40 GST contributes ₹80 net and ₹94.40 total. If it is fully canceled in August, its July net and total become zero; its original gross sales, order count, and average order value remain unchanged.
With Gross sales, Net sales, or Total sales selected, Show cumulative sales makes each period include first purchases and earlier periods. For example, ₹100 on the first purchase, ₹50 in Month 0, and ₹20 in Month 1 gives ₹150 in Month 0 and ₹170 in Month 1. The totals column still shows repeat sales only. This switch updates the grid, curve, and export without another run, and is kept when you save the report. Net and total amounts can decrease after reversals.
In All cohorts, each period includes only groups old enough to reach it. Its combined cumulative amount can therefore fall when newer groups are excluded from a later period.
The details window keeps your report’s first-order channel, product, and customer location filters. It shows the selected period’s purchasing customers, orders, original sales amounts, average order value, cumulative spending per customer, and average orders per purchasing customer. Cumulative spending includes first purchases and earlier periods; the other sales amounts show the purchases selected in the window, even when the grid’s Show cumulative sales switch is on.
Below the totals, Sales channels and Recorded referrers show up to 10 groups ordered by gross sales. Referrers include only recorded search, email, or social sources. A repeat-period window also shows Shipping locations, ordered by number of orders.
An overview or first-purchase window shows Customers by country. Each customer counts once in each country from their recorded order and saved address history. For example, five orders from one customer to India still count as one customer in India. If that customer also has a recorded address in Canada, they appear once under Canada too, so adding the country counts can exceed the number of customers. A customer with no recorded country appears as Unknown country. Future addresses and another store’s addresses are excluded. The details show the first 10 country groups; Open customers by country report opens the same counts for up to 1,000 groups, with the country and customer-count columns ready to chart and save. The query preview displays up to 200 rows; open Export and choose CSV · all matching rows for a larger result.
Money amounts that cannot be calculated show a dash while known amounts and customer and order counts remain available.
Gross sales, sales after discounts, and average order value use original purchases before later reversals. Net sales, total sales, and customer spending include recorded reversals. Missing records or required exchange rates leave only the affected money blank, including any total or cumulative amount that needs it. For example, a recorded ₹20 refund can reduce total sales even if its GST split is missing; net sales needs that split and stays blank. An unrecorded return completion date leaves affected nonzero money blank because its timing cannot be established. A known zero needs no exchange rate. Older saved reports without a currency choice keep their previous calculations and can stop for missing records; customer counts can still run. Compare sales amounts with your finance records before using them for GST work.
When you open a money number as a query, the copy keeps INR and its run time. Select Run query after editing to update the values, chart labels, and export currency. Keep its report_currency setting at INR. Counts in a copied query keep their original units. Custom formulas that the editor cannot identify do not receive an assumed currency label.
Customers are matched by their customer account when available. A guest order with an email belonging to exactly one customer account in the same store is counted with that account. Otherwise, guest orders are matched by their normalized email. Orders without either are counted separately. If the same person used different identities, the report can count them as separate customers.
Location filters use recorded addresses available when the report runs. An order’s default country alone does not establish a customer address. A negative rule such as Does not contain Mumbai requires a recorded city; a customer with no known city is excluded. Missing locations, future records, and another store’s addresses are not guessed or included. Use the names recorded in Upstorr, rather than country or region codes from another platform.
Common problems
- No customers shown: first try All channels or more cohort periods. A store may not have first orders in the selected range.
- A blank later period: it is outside the included time window. It may be in the future, or in the current period with Include this week/month/quarter off. A zero means the period is included but has no matching activity.
- Money is blank for missing exchange rates or incomplete sales records: a blank is unknown, not zero. Known amounts and counts remain available. Older saved reports without a currency choice can stop instead; confirm INR and run again, or contact Upstorr support.
- You cannot save: enter a report name that is not already in use.
- You cannot run after adding a product filter: finish or remove it. Each name can have up to 120 characters; multi-name filters allow up to 20 different names. Up to 10 product filters can be added.
- You cannot run after adding a customer filter: enter or remove the location value. The same name limits apply, and up to 10 customer filters can be added. A partial name such as Mum does not match Mumbai.
- You cannot run after adding a referring channel or traffic type filter: finish or remove it. Use up to 20 different names, each up to 120 characters, and up to 10 filters.
- Details fail to load: select Retry, or close the window and run the report again. After changing the measure, dates, first-order channel, product filters, referring channel filters, traffic type filters, or customer filters, run the report again before opening details. Display changes such as showing first orders do not need another run.