What this helps you do
Admin reports show money in INR. Storefront currency choices do not change the report currency. When Currency appears, it confirms INR. If an older saved report uses another currency, select Use INR for this report, then Run query and save it. Order counts and item quantities keep their original units. Missing amounts or required exchange rates leave the affected money blank; Upstorr does not guess. Order prices, payments, GST invoices, and checkout currency stay the same.
For Inventory at period end, saved stock uses the recorded balance day. Today's live stock uses the day it is viewed. Cost per item, stock cost value, and stock retail value are shown in INR; stock quantities stay the same. Current stock value at recorded cost also uses the day it is viewed. Missing costs leave affected money blank. In a saved SQL report, Cost per item is labelled with its currency in the table and download.
For Current gift card balances by status, original issued value comes from the card's creation record. Current recorded and usable balances use the day the report is viewed. Expired or inactive cards have no usable balance, but their recorded balances remain visible. Card counts stay the same; an incompatible nonzero amount stays blank.
For Tracked product variants, sales cover the fixed last 28 days. Current stock cost and retail value use the day the report is viewed. Sold units, stock quantities, estimated days remaining, revenue shares, and ABC grades keep their original meaning. Zero-value sales and zero or negative stock values stay zero. Missing costs, prices, or required exchange rates leave affected money blank.
For Online store activity, visitor and session counts, conversion and bounce rates, and page performance measurements keep their original units. These reports contain counts, percentages, and timings rather than money.
Checkout currency remains a separate grouping choice: it identifies the currency used when the customer ordered. Admin money totals remain in INR.
Product sales and profit reports convert each sale and later reversal using its own recorded day. For example, a September sale and an October return use their separate daily rates. Recorded product costs use the same event dates. Missing costs or rates leave the affected profit blank; a known zero stays zero. Item quantities remain unchanged.
Use the controls card beside the query and preview. Open Metrics, Dimensions, Visualization, or Filters to change that part of your report. Each panel can close again without losing your choices. Keep at least one measure; add another before removing the last selected measure. On a narrow screen, select Controls to show these panels. Before you run the report, its preview stays visible with a message explaining the next step.
Build a report for a question the ready-made reports do not answer. For example, group sales by channel and show both order count and sales after discounts.
For sales by location, choose Orders and sales and group by billing city or state, or shipping city, state, or country. The ready-made reports include these location views. An Unknown group means the relevant address field was not recorded on the order.
For orders placed in different currencies, group Orders and sales by Checkout currency. Original sales by checkout currency shows each order's subtotal less discounts, converted to the store currency so its amounts can be added. It excludes tax, shipping, and later cancellations or refunds. If an order in another currency has no usable saved exchange rate, the report stops instead of understating sales.
To include recorded changes after an order, open Total sales by currency or choose Recorded sale events and group by Checkout currency. Its Recorded commerce change includes the order total, then recorded cancellations, returns, refunds, and exchange differences. The amount is shown in the store currency using the exchange rate saved on the order. A missing rate or uncertain older adjustment leaves the affected total blank instead of guessing.
Sales by discount codes shows recorded discount names, how each was applied, its type when recorded, and whether it affected products, the order, or shipping. It starts with Last 30 days, No comparison, and a Horizontal bar chart of Total sales. Applied discounts is the amount given for that discount when the order was placed. Later returns reduce the affected sales on the return date. Discounted orders counts each order once within a row and once across the Summary. Changing Maximum rows limits the table without reducing the full Summary.
Combined discounts can include the same sale in more than one row. For example, if a shirt receives both a product discount and an order discount, its sales appear under both discounts. Total sales includes the affected items, recorded shipping, and GST; the rows are not separate piles of money that you can add to get the store's overall sales. Use a total-sales report for that store-wide question. Older orders can lack a recorded discount type, name, or reliable item allocation. Missing types stay blank; orders without a recorded name are excluded by the starting filter, and uncertain money stays blank.
For one row per order, choose Order number under Dimensions. Ready-made reports include discounts, shipping, sales after discounts, items ordered, payment attempts, and completed refunds by order. Order ID is available when you need the internal identifier in a custom report. Order numbers are unique within a store, so the ready-made tables show the shorter order number alone.
Choose Recorded sale events to group orders, completed exchanges and returns, cancellations, and other recorded refunds by the date each change was recorded. Recorded commerce change adds their recorded sale amounts; refundable booking deposits are excluded. Total sales reversals adds only amounts removed from sales, including downward exchanges; an exchange that raises the sale is left out. The ready-made Total sales reversals over time report charts this amount by adjustment date and compares the last 30 days with the preceding period. Unresolved older adjustments counts changes for which Upstorr cannot establish a reliable amount or date. If a group contains an uncertain amount, its commerce change is blank instead of showing a partial total. This source does not break sales into products, discounts, shipping, and GST; use the corresponding reports for those details.
Gross sales over time and Gross sales by sales channel add up product sale lines before discounts, GST, cancellations, and returns. If a product's price already includes GST, these reports remove its GST share from gross sales. Gross sales by order shows each sale line separately, with the date it was added, order number, sale line ID, and product name saved on the line. It starts with this month and uses the same pre-GST calculation. All three reports include exchange replacement lines and leave out gift card products. A replacement appears on the date its line was added, which can differ from the original order date. Using a gift card to pay for another product does not remove that product's gross sale.
Average order quantity over time divides originally ordered items by orders on each order date. Later returns do not reduce the number, and exchange replacement items are not counted again. The Summary divides the totals for all matching orders, even when the table displays only some dates. If you want an after-return average instead, choose Average items per order and Net items ordered in a custom report; that measure deducts units from returns marked REFUNDED or CLOSED.
Items ordered over time counts the items originally ordered on each order date, before later returns or cancellations. Exchange replacement items are not counted a second time. It compares with the preceding period. Its Summary counts all matching original items even when the table shows only some dates.
Items reversed by product compares product units ordered with units later removed through a return, exchange, or cancellation. Reversed quantity rate divides removed units by ordered units for each product. It uses the date of each sale or change, so an old order returned today adds to today's removed units. Older exchange records without a reliable outgoing quantity show an unresolved adjustment; the affected reversal and rate are blank instead of a guessed number. Orders and reversed quantity by product shows the same measures alongside the preceding date range. Its table shows each measure's earlier value and percentage change. For example, six units now versus 30 before is an 80% decrease. A change is blank when an earlier value is zero or an amount is unresolved.
Reversed quantity rate over time uses the same calculation for each India calendar day and compares the last 30 days with the preceding period. It includes custom sale lines that are not linked to a catalog product. A day with reversed items but no ordered items has no rate to calculate, so its rate is blank. The Summary divides the full period's reversed units by its ordered units; it does not add the daily percentages.
Items bought together groups non-cancelled orders from the last six months by the set of two to four distinct products recorded on each order. Buying two units of one product still counts as one distinct product. Product IDs keep different products with the same name separate. Catalog products display their current names, which can differ from the names on an older order receipt; custom sale lines are matched by their saved names. The report shows order count, average original order value, and original sales after discounts. It does not deduct later returns or refunds. The table hides its internal combination key when the product names are shown, but an export includes that key so the groups can be distinguished precisely.
Choose Original product profit for sales, cost, original gross profit, and margin using the unit cost saved when each product was sold. This source includes non-cancelled orders that were paid, including orders later refunded, when the item has a recorded cost. A product with no custom options uses its product-level cost; a custom variant uses its own cost and is excluded if that cost was not recorded. Older items without a saved sale-time cost and custom sale lines are also excluded. Sales are after line discounts and exclude tax and shipping; profit subtracts recorded product cost. The date is when the sold item was recorded, so a later exchange replacement can appear on a different date from its original order. Later returns and refunds are not deducted. A zero-sales group has no margin percentage. The Summary divides the combined profit by combined sales across all matching cost-recorded items, even when some detail rows are not loaded.
For fulfillment work, choose Orders marked fulfilled to group by the date an order was manually marked fully fulfilled in Admin. Orders marked fulfilled over time counts those orders, and Tracking recorded rate for orders marked fulfilled divides orders with a tracking number or a shipment waybill that was not cancelled or failed by those manually marked orders. Shipment and POS fulfillment flows that do not set this date are not counted. The rate checks whether tracking was recorded; it does not verify that a carrier accepts the number. Pickup orders without tracking remain in the total. Choose Delivered orders to group by the recorded delivery date instead. These dates can differ from the date the customer placed the order, and later returns do not erase the recorded fulfillment or delivery.
Choose Fulfillment events to see the first time each order was fulfilled, handed to a carrier, or delivered. The ready-made Orders fulfilled over time and Orders delivered over time reports show all three counts by event date; Shipping and delivery performance groups them by complete days since the order was placed. Orders with tracking included shows the share of fulfilled orders whose recorded shipment has both a carrier and a tracking number. Order to fulfillment time shows the middle number of hours from order placement to fulfillment on each date; its Summary finds the middle across all matching orders. Cancelled shipments are left out. Each order is counted once at each recorded stage, even if it has several fulfillment records. A stage without a reliable recorded time cannot appear on the chart.
These two sources also offer Median hours to marked fulfillment and Median days to delivery. A median is the middle time after putting the orders in order from fastest to slowest. The date rows each show their own median; the Summary calculates the middle time across all matching orders, even when Maximum rows hides some dates. The measures ignore a recorded completion date earlier than the order date. If you filter on a calculated measure and thereby remove whole groups, the Summary leaves the median blank rather than showing one for the wrong set of orders.
Before you start
- Use Upstorr Admin on a desktop. Admin store pages do not open on mobile devices yet.
- Open a store with an active subscription. Your role needs permission to view reports.
- Decide which records you want to measure. The data sources cover Orders and sales, Products sold, Recorded sale events, Sale and reversal units, Original product profit, Payments, Razorpay payment disputes, Gift card balances, Gift card transactions, Returns, Returned items, Inventory snapshot, Inventory transfers, Inventory adjustments, Inventory state changes, Customers, Orders marked fulfilled, Fulfillment events, Delivered orders, Online store sessions, Online store page views, Online store events, Online store page loading, Online store layout stability, and Online store responsiveness. Each offers different fields. Online store reports can only show visits and measurements that were recorded.
- Inventory transfers use the date the transfer was created. Ordered units add its item quantities; Unique items transferred count each variant or product once within a date group. These numbers do not say how many units were later shipped or received.
- Inventory state changes shows each recorded change to Available, Unavailable, or Committed stock. One stock adjustment can change two states. For example, marking one item as damaged can reduce Available by one and raise Unavailable by one. Inventory adjustment changes shows the quantities; Inventory adjustments by count counts the two state changes. Its default date range is Last 30 days. If the table is empty, choose a longer range to inspect older adjustments.
- For GST work, check the meaning of each number. Original order amounts do not automatically remove cancelled orders, refunds, or credit notes. Add the needed filters and compare with your GST documents before filing.
Steps
-
Open Reports.
-
Select New report for a blank report, or select a ready-made report such as Orders over time to start with its fields already chosen. On a new report, use the switcher at the top of the controls card to choose Freeform or Cohorts. You can switch between them before saving without losing the unfinished choices in either one. If you open the query editor from Freeform, that draft stays in place when you visit Cohorts and return.
Drag the handle beside a selected metric or dimension to change its order. With a keyboard, focus the handle, press Space, use the up or down arrow key, then press Space again. Press Escape to cancel.
-
Open Report details and enter a Name.
-
Optionally enter a Description.
-
Choose a Data source.
-
Under Metrics, use Search metrics to find and select a number you want, such as Orders or Sales after discounts. Repeat this step for each number. Drag the handle beside a selected field to change its order. You can also focus the handle and use Space and the arrow keys. You can reorder Dimensions fields the same way.
-
Under Dimensions, use Search dimensions to find and select how to split the results, such as Sales channel. You can select up to twelve fields. When grouping people, products, variants, or locations by name, add their ID or customer key too so two records with the same name stay separate.
-
To narrow the results, select Add filter.
-
Choose the filter field.
-
Choose the filter operator. Is one of keeps records matching any value in one rule; Is not one of leaves those values out. For text fields, Contains, Does not contain, Starts with, and Ends with search within the text. Contains one of keeps text matching any entered phrase; Does not contain any of leaves out text matching any entered phrase.
-
Enter or choose the filter value. For a rule with several values, enter up to 20 different values, one per line. Is one of and Is not one of also let you tick choices when the field has a fixed list. Finish or remove an incomplete filter before running the report.
-
Choose a Date range above the results. Choose a preset inside the date popup, then select Apply. Options include today, yesterday, recent days, this week/month/quarter/year, all time, and custom dates. Last 7 days, for example, covers the seven preceding days and today in India time.
-
If you chose Last number of units, enter a whole number from 1 to 1,000 and choose minutes, hours, days, weeks, months, quarters, or years. Include current adds the part of the current unit that has happened so far. For days it adds today; for weeks it adds the current week through today. Leave it unticked to use only complete earlier units.
-
If you chose Custom dates, enter the start and end dates. Select Apply to use the dates, or Cancel to keep the previous range.
-
If you grouped by a date, choose Group dates by day, week, month, quarter, or year. Include dates with no records also shows dates with no activity. When you add another grouping, such as sales channel, it shows a separate date series for each channel found in the selected range. Missing counts and totals show zero; averages and rates have no value for those dates. This option needs a date range with a start and end, supports up to 1,000 date groups, and turns off if you add a measure filter.
-
Choose Compare to use the previous period, the same dates last year, the matching weekdays 52 weeks earlier, or dates you pick yourself. For a custom comparison, enter its start and end dates inside the comparison popup and select Apply. All-time reports cannot be compared.
-
Choose Chart. Options include a ranked list, a measure list, a single value, vertical or horizontal bars, stacked or grouped bars, line, filled area, stacked area, pie, donut, radar, and scatter plot. If a choice is greyed out, open Why are some charts unavailable? to see what field it needs. Measure list shows two or more selected measures in order. It can show one total row without a Dimensions field, or full-period totals while keeping a daily table grouped by Date; Customer behavior uses it to show this month's human sessions with cart additions, checkout visits, and completed checkouts. A single value also works without a grouping. Stacked and grouped bars use exactly two groupings: the first makes each bar, and the second divides it by color. Stacked parts add up within one bar and therefore need a measure that can be added, such as sales or order count. Grouped bars appear side by side and can also compare averages or rates. Stacked area also needs two groupings, with date first, to show how the parts of a total change over time. For example, group sales by date and then sales channel to compare online and POS sales each day. Radar puts the selected measure around a circle, one spoke per loaded group, and needs values of zero or more. A scatter plot uses two selected measures for each group, such as order count against sales, on separate horizontal and vertical axes. Customers also offers RFM grid when grouped by RFM group; its fixed cells show the selected measure for each relationship group. Online store sessions also offers Conversion funnel, which combines all matching visits and automatically selects its four steps.
-
If your report has several measures, choose Chart measure. A line chart with one grouping can show up to three Other line measures alongside the first, for four measures in total and at most two kinds of values, such as money and counts. Two groupings can show a second measure with the same unit, split by the second grouping. Area and regular bar charts can also show a second measure with the same unit. A heatmap shows one measure across exactly two groupings; stronger color means a value farther from zero, amber means negative, and blank squares have no recorded data. When you compare periods on a daily line or area chart grouped only by date, another line shows the chosen primary measure from the earlier period alongside the current dates.
-
Choose Chart groups to show between 1 and 1,000 groups in charts that offer this setting. The fixed RFM grid does not use it. The table still uses Maximum rows below. Date charts keep the latest loaded dates; other charts usually keep the first groups in the report sort order. A ready-made report can rank chart groups by their combined total, as Top returned products with reasons does.
-
For a line, vertical bar, or horizontal bar chart grouped only by date, select Show cumulative running total to see how an addable measure grows across the loaded dates. Averages, rates, and inventory snapshots cannot use this option.
-
For a chart with date on the bottom axis, select Show theme activity on chart to mark recorded theme publishes and rollbacks. This option is available on line, area, and vertical bar charts.
-
Open Table options and, if shown, choose Sort by. Flat rows also offer Then sort by and Second order. For example, sort POS location ascending, then total sales descending to see each location's highest-selling products first. Choose No second sort to remove it. Most nested tables use group sorting, so clear the second sort before choosing that layout. A daily date series with Table group totals by set to Date can use a second sales-total sort to rank its inner staff or location groups. Dates remain first, and each inner group is ranked by its full total before its individual rows. Distinct customer counts, averages and percentages are unavailable for that inner ranking. A measure list follows the order in Metrics instead.
-
If shown, choose Order.
-
If you chose at least two groupings, choose Table layout. Flat rows shows each combination on its own. Nested groups with totals lets you expand or collapse each group. Table group totals by chooses which grouping heads the table without changing the chart. This choice is available when your filters do not depend on calculated measures. For example, keep months on a sales chart but put New or returning customer first in the table. Its group totals count each customer once across the selected dates instead of adding the monthly customer counts. With three or more groupings, the remaining groupings appear inside the first. When Table group totals by is set, each shown group's totals use all matching records, even when Maximum rows hides some detail rows. Margins use the group's total sales and profit instead of adding or averaging the percentages. Missing amounts stay blank.
-
If shown, enter Maximum rows. You can load up to 1,000 rows. A measure list shows every selected measure. For a dated measure list, Maximum rows limits the daily table while the list keeps full-period totals. Large tables scroll within the report.
-
Select Run query in the query toolbar to see the chart and table.
-
Select Save to keep this setup in the store's report list.
In Freeform, the editable query, chart, table, date controls, and right-hand settings stay on one screen. The query editor starts collapsed. Select Expand query editor to open it and type directly in the query box. Select Run query to update the result. Supported query edits, such as changing the row limit, update the matching controls after the query runs. While an edited query has not been checked, the source controls are unavailable so they cannot overwrite your draft.
Changing a source control updates the query. If the changes cannot be combined with your query edits, Upstorr asks which version to keep. Making a new query replaces the unsaved query edits. A custom calculation that the source controls cannot describe stays in the query; after it runs, available result controls let you choose its fields and chart in the same sidebar. Report details holds the name and description. Saving keeps the source settings and final query in one custom report.
Relative ranges, such as Last 30 days, move forward each time the query runs. Custom dates stay fixed until edited. The first query line records a linked report's Compare choice; changing it and selecting Run query updates the matching comparison control. Summary and comparison appear while the final query still matches the source settings. A daily line or area chart also shows the comparison line when matching dates have values in that period. Custom calculations that do not match those settings hide source-only totals and comparison. The final query's chart and table still show its result. Live online store sessions, page views, events, page loading, layout stability, and responsiveness use the selected store's activity source in this workspace.
If an older saved linked report still runs but its query no longer matches the query made by its visual settings, select Refresh query from visual settings in the query editor. Confirming replaces the query in your draft, including any query-only edits. Check the new result and select Save to update the saved report.
Simple charts with one grouping keep their chart choice, fields, and Chart groups number in the query copy. Stacked bar charts with two groupings keep both groupings and their chart choice. Charts with multiple measures, a running total, or a style query reports cannot show accurately start with their table rows and an explanation. You can choose a different chart in the query editor.
Theme activity marks stay in the visual report.
What happens next
Advertising figures need recorded ad data. Ad spend, Return on ad spend, Cost per acquisition, Customer acquisition cost, Ad impressions, Ad clicks and Ad clickthrough rate stay blank when that data is unavailable. The summary, nested totals and CSV keep those values blank too, including dates with no records. A blank is not zero. WhatsApp sends and reads, email opens and clicks, and message charges are separate facts; they are not substituted for ad results.
In a marketing performance report, Compare models adds named model columns beside the current measures. Sessions and observed visits stay shared. Each named column keeps its own model when you change Attribution model, and can be used in a chart, filter, sort or CSV download. Marketing performance reports can select up to 64 measures. See Understand marketing visits and sales credit for examples and tracking limits.
POS sales appear in the None marketing channel and have no campaign tags. Each model counts each original POS order once. Online orders with missing visit history stay unknown.
Marketing performance reports also support Date and Group dates by for day, week, month, quarter or year. Include dates with no records adds empty calendar rows within the 1,000-date-group limit. Empty dates have zero sales and order counts, but a blank average order value. A known free order has a zero average. India days control the grouping; each transaction's recorded UTC day controls currency conversion. An undated financial change stays Unknown, including when it could fall within a date filter. See Understand marketing visits and sales credit for tracking limits and examples.
Report money uses two decimal places without rounding up. For example, ₹42.375 appears as ₹42.37, and -₹42.375 appears as -₹42.37. Calculations and downloaded files keep the full number, such as 42.3759.
You can use a Date filter without adding Date as a grouping. It uses visit days for visits and financial-event days for sales, while keeping credit from earlier visits. Other marketing grouping filters require that grouping in the report.
If the query runs but its totals fail, use Retry totals. Confirmed currency labels stay on the query's money values, chart and CSV while totals are unavailable. Custom calculations without a confirmed source do not receive an assumed currency.
On Reports, select the filter icon, add Category, and choose Custom to find the saved report. Ready-made reports are listed under their subjects, such as Sales, Retail, Finance, Fraud, Inventory, Acquisition, or Behavior. Retail includes POS reports by product, variant, location, and attributed staff member. Product and variant reports show the original line sales and units on POS orders; they do not deduct later returns. Opening a ready-made report fills in its settings without saving a copy. The older order, customer, POS, and inventory reports also open in this builder; existing links to those reports take you here. A saved report opens with fresh data. Relative dates, such as Last 30 days or Last 2 weeks, move forward as time passes; Custom dates stay fixed.
Original sales by weekday and hour uses a heatmap of order subtotal after discounts, grouped by the weekday and hour when each order was placed in India. It starts with the last 365 days. It does not deduct later cancellations, returns, or refunds. Blank squares mean no matching orders were recorded for that weekday and hour in the selected dates.
Payment attempts by order includes failed attempts, so its amount is not the same as money received. Completed refunds by order includes only returns marked REFUNDED or CLOSED. Its date range uses the date the return was created, not the date money reached the customer. A store with only pending returns can therefore show no completed refund rows.
For the Payments data source, use Gross payments for captured amounts, Refunded payments for recorded refund amounts, and Net payments for gross less refunds. Payment transactions counts captures and refunds; Payment attempts also counts pending or failed records. Completed payments and refunds use their recorded completion date in India time. For example, a ₹100 payment started at 11:59 p.m. on Monday and completed at midnight belongs to Tuesday. A later refund reduces the refund's completion date. An attempt that has not completed uses the date it was started.
For Razorpay payments and refunds, a verified completion notification supplies the provider's completion time, even when Upstorr receives it later. Repeated notifications keep the earliest verified completion. An older record without this notification still shows when Upstorr recorded its completion; it does not prove the original Razorpay time. Running an old report again can therefore show a corrected date after that notification arrives.
Net payments by gateway starts with the current month and groups these amounts by Upstorr payment route, billing country, and sales channel. A billing country of Not recorded means the order did not save one. Upstorr does not record the wallet, card type, or card tier for this report, so it cannot split a payment by those details.
Choose Razorpay payment disputes to see the number of recorded disputes, the amount disputed, and the amount deducted. Razorpay disputes over time groups them by the date each dispute was opened and compares with the previous period. You can group or filter by its current status, phase, reason code, order, or currency. An early fraud alert or request for information is a dispute record, but is not necessarily a chargeback. The status and phase can change after the opened date. Amounts are shown in the store currency when a saved order exchange rate can convert them. If a needed rate is missing, the visual money report stops with an explanation; its query copy leaves the affected money total blank instead of showing a partial sum.
Current usable gift card balance is a snapshot of balances that customers can spend now: the card must be active and not expired. Current gift card balances by status also shows the balances still recorded on inactive or expired cards. Neither report reconstructs an older month-end balance, and changing the date control does not change a current snapshot. Gift card issuance over time counts all issued face value, including cards created without a purchase, so it is not gift card sales revenue. Gift card redemptions over time measures value applied to orders, not new cash received that day. Gift card transactions by type separates issue, redemption, refund restoration, and adjustments. An adjustment records its absolute amount without whether it raised or lowered the card balance, so do not add adjustment amounts to calculate net movement. In an INR report, a nonzero card amount in a different currency is blank when its original conversion is unavailable. Older saved reports without a currency choice stop when a card uses a different currency from the store.
Returned items uses the product title saved on each order item when it was sold, the reason entered for that return item, and the date the return was created. Units in return records includes all return statuses, including pending and rejected requests; Units in completed returns counts only items on returns marked REFUNDED or CLOSED. Top returned products with reasons groups recorded units by product and item reason, including returns that are still pending. Its chart starts with the five products with the most recorded units among the loaded rows, and its table shows product subtotals above the individual reasons. Use Completed returned units by product when you only want refunded or closed returns. These are unit counts, not refunded money or a product return rate.
The ready-made RFM, customer lifecycle, and customer lifetime value reports include customers created at any time. Narrow the date range if you want to focus on customers who joined more recently; that date range uses the customer's creation date. Total spent uses qualifying linked orders from the customer's full history, including taxes and shipping, less recorded commerce refunds. Amounts in another currency use the saved order exchange rate. If a needed exchange rate is missing, the report stops instead of showing a partial total. The separate Recorded lifetime value measure reads the saved customer value and might not match the live order total.
For customer reports with Currency, Total spent converts each qualifying order on its order date and each recorded partial refund on its completion date. Selecting customers from September still includes those customers' full order history. Missing historical rates leave the affected spending total or average blank while order and customer counts stay available. Recorded lifetime value has no individual transaction dates, so it offers INR only. Admin reports remain INR when you remove that measure.
RFM customer list starts with customers whose saved RFM group is CHAMPIONS, ranked by Total spent. Total orders placed counts all linked orders across the customer's history, including orders that were later cancelled or were not paid. Days since last order uses the latest linked order. Total spent uses only qualifying paid or partly refunded orders after recorded commerce refunds, so its order set can be smaller than Total orders placed. You can change the RFM group filter in the report. The separate RFM customer groups report still lists every saved group and calculates Average days since last order from qualifying purchases; that average is blank for groups with no qualifying purchases. Saved RFM groups may update at a different time from the order counts and spend.
Returning customers lists people who have placed at least two orders; One-time customers lists people who have placed exactly one. By default, both reports show customers whose first order was placed during the last 365 completed days in India time. The date control filters that first order date. Order count and total spend still cover the customer's full history. Both reports show customer email, current email marketing status, first order date, and total spend from qualifying paid or partly refunded orders after recorded refunds. Returning customers also shows the last order date and average spend per order, calculated by dividing that total spend by all orders placed. The marketing status reflects the customer's current preference, which may differ from what they chose when placing an earlier order.
New customers over time counts identified customers and their first orders on the date of the first order in that store, including orders awaiting payment. Creating a customer record without an order does not count. It starts with the last 30 days and compares with the previous 30 days. The date control filters first-order dates, and the chart can group them by day, week, month, quarter, or year. This report does not show sales after later refunds or returns.
New vs returning customers counts identified customers who placed an order in the selected period, including orders awaiting payment. A customer is First-time on their first order in that store and Returning on later orders. The report starts with the last 30 days, a previous-period comparison, and a donut chart. A customer who placed both their first and a later order during one period can appear in both groups, so do not add the two group counts to estimate unique customers. Orders without a customer ID or email are excluded. A guest order and a later account order are linked when they have the same email address.
New vs returning customers over time shows the same customer groups by month, along with their order counts and original sales after discounts. It starts with the last 365 days and compares them with the preceding period. Its customer-count chart uses lines because the same person can appear in both groups during one month; a stacked total would be misleading. Original sales after discounts are before later return and refund reversals.
Returning customer rate over time shows, for each day with orders, the percentage of identified customers with a repeat order out of all identified customers who ordered that day. It starts with the last 30 days and compares them with the preceding period. The table also shows the two customer counts used for each day's percentage. A customer who places both a first and a repeat order on the same day counts once in the denominator and once in the returning count. Its Summary recounts unique customers across the whole period and divides the returning count by that total; it does not add the daily counts or percentages.
New customer sales over time shows monthly original sales after discounts from first-time identified customers. New vs returning customer sales splits that same original sales amount between first-time and returning customers each month. Both include customer and order counts, start with the last 365 days, and compare with the preceding period. The chart can stack sales amounts because each order belongs to one customer group. These sales amounts do not deduct later returns or refunds, and customer counts cannot be added across months to find the number of unique people.
The table includes only the selected fields and up to Maximum rows detail results, from 1 to 1,000. When more rows match, a message says so. The chart and detail rows use only those loaded results. The Summary row totals all matching results for measures that can be added. It recalculates average order value, original quantity ordered per order, average net items per order, identified customer counts and returning rate, high-risk order rate, online-store session rates, and the fulfillment or delivery median from all matching records, even when detail rows are limited. It does not add daily averages, percentages, or distinct-customer counts together. Export always offers the loaded rows as CSV, JSONL, XML, or Apache Parquet. Parquet keeps number and yes/no columns usable in data tools. When more rows match, Export also offers all matching rows in those formats. The full export fetches the current report again in pages of 1,000, so data changed while it downloads can change the exported result. It supports up to 100,000 matching rows; if more match, no partial file is downloaded and you must narrow the report. If you chose a comparison, the current table also shows each selected measure in the earlier period and its percentage change; a second table shows the earlier rows using the same fields and filters and warns separately if its rows were limited. When the selected dates include today, the earlier period is compared through the same time of day. A daily line or area chart aligns comparison dates from the start of each period; custom ranges of different lengths show only dates that line up. For compared visual reports, exports contain the current rows plus their earlier values and percentage changes; the earlier period’s separate rows are not exported. Inventory snapshot shows current stock and has no date comparison.
In a nested table, the Summary covers all matching results. Each selected grouping appears under the previous one, and you can collapse any group. For order, return, customer, inventory, and payment sources, each shown subtotal at every grouping level covers all matching rows for that group, even when Maximum rows hides some details. Live online-store activity sources may show only loaded-row group subtotals when the result is limited; the report tells you when this happens. When you sort by an addable measure, groups are ordered by the subtotals shown. The Summary calculates average order value from all matching sales and orders, original quantity ordered per order from all original units and orders, and average items per order from all matching net item units and orders. When Table group totals by is selected, group totals recalculate averages, rates and distinct counts from matching records. Otherwise group subtotals leave them blank because adding them would give a misleading number. Distinct counts, average days since last order, and average spend per order also show a dash in group subtotals when an accurate combined value is unavailable. Exports contain the original flat data rows, even when the table is nested.
A cumulative chart also uses only loaded rows and shows the latest number of dates selected in Chart groups. If the date range contains more rows than Maximum rows, increase that limit or group by week or month before relying on the running total. The table and export continue to show the original, per-period values.
When theme activity is on, orange dashed lines mark recorded publishes and rollbacks on the dates shown in the chart. Open the event list below the chart for the theme name and time. Events outside the dates currently drawn can still appear in that list. Theme activity is not included in table exports.
For online store sessions, you can measure sessions with cart additions, checkout starts, and completed checkouts or purchases. The cart addition, reached checkout, and conversion rates divide those session counts by all matching sessions. The checkout completion rate divides sessions that recorded both checkout start and completion by sessions that recorded a checkout start. One session counts once per step, even if the shopper repeats an action. These numbers depend on recorded events; if a visit skipped a step or its event was not recorded, later-step counts can be higher than earlier-step counts. The conversion funnel shows all four steps for the selected dates and filters.
Online store conversion rate over time and Checkout conversion rate over time use the newer human-session source. They count each human session once at each recorded cart, checkout, or completed-checkout step, even if the shopper repeats an action. A completed checkout also counts as having reached checkout if the earlier event was missed. Online store conversion rate divides completed-checkout sessions by all human sessions; checkout conversion rate divides them by human sessions that reached checkout. Both start with the last 30 days and compare with the previous period. Their Summary calculates the rate from all matching sessions, rather than adding daily percentages. The visit type is an estimate from browser information, and older visits without that field cannot be included.
Bounce rate over time shows the percentage of recorded human sessions with exactly one page view, grouped by the day the visit began in India. It starts with the last 30 days and compares with the previous 30-day period. Its Summary divides all one-page human sessions by all recorded human sessions across the selected dates, rather than adding daily percentages. This report uses the newer visitor tracker, so it cannot include older visits without a recorded visit type. Traffic sampling can make the result an estimate.
Conversion rate breakdown shows human visits, visits with cart additions, visits that reached checkout, visits that completed checkout, and completed checkouts as a percentage of human visits. The funnel shows totals for the whole selected date range; the table keeps each India day and its previous-period comparison. Older visits without a recorded human or bot type cannot be included.
High risk orders rate shows the percentage of orders marked HIGH by Upstorr's recorded order risk check, grouped by order date. It also shows high-risk orders and all orders, so you can check the calculation. Orders marked LOW, MEDIUM, or UNKNOWN remain in the total; an unknown risk level does not mean the order is safe. The report starts with the last 30 days and compares with the previous period. Its Summary divides all matching high-risk orders by all matching orders, rather than adding daily percentages. Risk levels reflect Upstorr's checks, so the result can differ from Shopify's risk analysis.
Orders not flagged high risk uses the same recorded risk levels and dates, counting LOW, MEDIUM, and UNKNOWN orders together. It is the share not marked HIGH, not a guarantee that every order was accepted or is safe. Its Summary combines all matching order counts before calculating the percentage.
Largest Contentful Paint (LCP) over time shows the 75th-percentile loading time for each day. Lower is faster. It starts with the last 30 completed days in India, ending yesterday. The report counts measured page loads in three bands: Good (up to 2,500 milliseconds), Needs improvement (over 2,500 and up to 4,000 milliseconds), and Poor (over 4,000 milliseconds). You can also group measurements by page path or connection type. Only page loads with a recorded, positive LCP value count toward LCP P75 and its three bands. The Summary adds the three bands and calculates LCP P75 from all matching measured loads together, rather than adding the daily P75 values.
The LCP, CLS, and INP by page path or page type reports also show Page loads and Share of page loads. Page loads counts recorded page openings even when a speed or interaction measurement was unavailable. Share of page loads shows each path's or type's portion of all recorded page openings in the selected store, dates, and filters; a group with 7 of 10 page loads shows 70%. Page types include Product, Collection, Cart, and Search. Older measurements without a recorded page type appear as Unclassified. The three quality bands count only recorded measurements, so a page can have page loads but no measurements. These reports start with the last 30 completed days in India and sort by share first. The Summary calculates the share from all matching groups even when the table's row limit hides some groups.
Cumulative Layout Shift (CLS) measures unexpected page movement. Its over-time report starts with the last 30 completed days in India and counts Good scores (up to 0.1), Needs improvement scores (over 0.1 and up to 0.25), and Poor scores (over 0.25). Interaction to Next Paint (INP) measures the delay after a shopper interacts with the page. Its over-time report uses the same dates and counts Good delays (up to 200 milliseconds), Needs improvement delays (over 200 and up to 500 milliseconds), and Poor delays (over 500 milliseconds). Lower is better for both. They also offer views by the page where the visit began. INP includes only visits where an interaction was measured. Measurements are sent when the shopper leaves or hides the page, so a newly opened page may not appear immediately. Each Summary calculates P75 from all matching measurements together, rather than adding daily P75 values. Theme-editor previews do not supply report measurements.
Choose Online store visitors to count distinct consenting visitors and their sessions. Ready-made views show human visits over time, by device, and by country, region, and city. Visitors right now counts distinct human visitors whose visits began during the exact five minutes before you run the report. In a custom report, choose Last number of units, set Minutes, include the current minute, and select Exact rolling window ending now for that same moving window. The visit type is estimated from the browser information sent with the visit; automated traffic that looks like a normal browser may be counted as human. Visitor identity and visit type are recorded only for visits received after the updated tracker was installed. Location depends on the information available when the visit reaches Upstorr, so it may appear as Unknown. This source cannot reconstruct older visitor or location data.
Canceled due to fraud uses an order's recorded cancellation reason, not its risk warning. It includes an order only when it was cancelled and has one recorded void event whose reason is exactly fraud (ignoring capitalization and leading or trailing spaces). Upstorr currently records these events through Point of Sale order voids. Cancellations without that event, missing reasons, longer notes, and multiple void events are excluded. For example, a ₹118 sale on Monday and its ₹118 cancellation on Tuesday appear as ₹118 and −₹118, with a ₹0 Summary when both dates are selected. If Monday is outside the selected dates, only Tuesday's −₹118 appears. This report starts with the preceding 30 days and today, compares the previous period, and uses the same sale and reversal rules as Total sales.
Items sold by referrer, Total sales by referrer, and Total sales by social referrer use the visit recorded when an online order was placed. For example, a shopper comes from Instagram and buys two items. If they later return one, the items report shows one net item under the original social source. The sales reports include the recorded sale and later reversals, including GST and shipping where applicable. The social report includes only orders whose saved visit source is social.
These reports start with the preceding 30 days and today. Order referrer source shows direct, search, email, social, or unknown; Order referrer name shows the recorded referring site or a recognized campaign provider such as Google or Instagram. An arbitrary campaign source is not stored as a referring name. A known direct visit has no referring site. New online orders record this detail only when the shopper has allowed analytics cookies. Older orders, POS orders, previews, and orders without a recorded visit keep their source blank; they are not guessed to be direct. The Summary includes all matching rows even when Maximum rows hides some groups.
Searches with no results shows what shoppers typed when the store found no matching products. For example, if a shopper searches for “blue kurta” and there are no matches, that search appears here even if the page shows recommended products. The report starts with the preceding seven days and today, groups by Search query, and shows a horizontal bar chart. It uses Online store events with Event type set to SEARCH and Search results returned set to No. Yes means at least one matching product was found. Unknown means the number of matching products was not recorded; older searches with unknown results are excluded from the no-results report. Searches are recorded only when the shopper allows analytics cookies and uses the live store. Theme previews and blank searches are excluded. The Summary includes all matching searches even when Maximum rows hides some queries.
Searches with no clicks shows searches that found matching products, but the shopper did not click a product in those results. It starts with the preceding thirty days and today, groups by Search query, and shows a horizontal bar chart. It uses Online store search queries, with Search results returned set to Yes and Search result clicked set to No. Clicking a header link or a recommendation after an empty search does not count as clicking a search result. Repeated clicks on the same search count once. Only live-store searches with analytics consent and recorded human traffic are included. Older searches without linked click tracking are excluded; their missing history is not treated as proof that nobody clicked. You can change Search result clicked to Yes to see searches that received result clicks.
Search conversions over time shows how many search visits lead to product views, cart additions, and completed checkouts. It uses Online store search conversions, starts with the preceding thirty days and today, and compares the previous period. A shopper who searches three times during one visit adds one to Sessions with searches. A result click counts when the shopper opens that matching product's page. Cart and checkout steps require that same product, in that order. A failed cart addition or checkout does not count. Clicking a recommended product after a search with no matches does not count as a result click.
Each rate divides its visits by all search visits. For example, ten search visits, four visits with product views, two with cart additions, and one with a completed checkout give rates of 40%, 20%, and 10%. The Summary uses all matching date groups even when Maximum rows hides some dates. Only live-store visits with analytics consent, recorded human traffic, and the linked search steps are included. Older visits without this tracking cannot be reconstructed. Supported query edits, such as grouping dates by month, update the matching visual controls after Run query; saving and reopening keeps those choices.
Product recommendation conversions over time shows visits where shoppers saw recommended products, opened one, added that product to their cart, and completed checkout with it. It uses Online store recommendation conversions, starts with the preceding thirty days and today, and compares the previous period. Recommendations count when a product link becomes visible on a live product page. A recommendation section below the screen does not count until the shopper reaches it. Seeing or clicking several recommendations during one visit still counts that visit once at each step.
The product must be opened before its cart addition, then bought in a completed checkout. Failed cart additions and failed checkouts do not count. Each rate divides its visits by all visits with recommendations. For example, ten visits with recommendations and two completed-checkout visits give a 20% conversion rate. The Summary uses all matching dates even when Maximum rows hides some. Only visits with analytics consent, recorded human traffic, and the linked recommendation steps are included; older activity without this tracking cannot be reconstructed. Supported query changes, such as month grouping, update the matching visual settings after Run query. Inspect those settings beside the query in the same report workspace. Saving and reopening preserves them.
Product recommendations with low engagement groups product pages whose recommendations get fewer clicks than the store's average. It uses Online store recommendations with low engagement. A product needs more units sold than returned or cancelled during the preceding thirty days and today. This counts products, rather than rupees: a fully discounted sale can qualify. Its recommendation click rate must be below the store's average over that period. Products that have no tracked recommendation visits, no positive remaining units sold, or an equal or higher click rate do not appear. If the product's sale or reversal history is incomplete, the report shows an error instead of guessing.
Product title and Product type describe the product page where the shopper saw recommendations, rather than the product they clicked. Pages with the same recorded title and type combine into one row; add Product ID as a dimension to keep them separate. For example, a Ring page with a 20% recommendation click rate in a store averaging 50% has a Difference from average click rate of −30 percentage points. A negative difference means fewer clicks than average. Visits count once for each product page. The store average counts each visit once, even if the shopper saw recommendations on several product pages. The table starts with differences closest to zero: −10 comes before −30. Older events without recorded product-category tracking are excluded from this product list; an explicitly unassigned product type is blank. The Summary uses all matching products, including those hidden by Maximum rows.
Online store sessions, visitors, page views, events, loading, layout stability, and responsiveness use live analytics data, which keeps up to three months of history. All available activity means the recorded history still available there. Older dates and previous-year comparisons cannot show complete activity. Exit-page counts are not available from this live event source.
For very busy stores, the live analytics service can sample traffic. Page-view and event totals account for its sample weights. Counts of distinct sessions and conversion steps can still be estimates when sampling occurs.
You can change a saved report and select Save. More → Save as new creates another report; give it a different name first. More → Delete report asks for confirmation and removes that saved report. It does not delete orders, customers, stock, or the ready-made reports. You can also select saved reports using the checkboxes on Reports, select Delete, and confirm. Ready-made reports cannot be selected for deletion.
Common problems
- Run query is disabled: choose at least one measure, use dates in the right order, complete every filter, and enter a whole Maximum rows value from 1 to 1,000. A chart also needs a Dimensions field.
- No records matched: try a longer date range or fewer filters.
- A report with this name already exists: use a different name before saving.
- This report changed in another tab: reopen it to see the newest saved version before editing again.
- Some orders lack exchange rates: the report stops instead of showing an understated money total. Contact Upstorr support before using the result.
- Some payment disputes lack exchange rates: the money report stops until the missing conversion can be resolved. You can still inspect dispute counts without a money measure.
- A pie or donut chart does not appear for a negative number: choose a bar or line chart for that measure.
- Report builder could not be opened: check that the store subscription is active, then try Retry.
Open records and read wider columns
Report rows show readable names for campaigns, products, customers and orders. Select a linked name to open that record in the selected store. Records with the same name stay separate; charts can add a small number to their labels. A missing or inaccessible page does not change the recorded report figures.
Drag the edge of a table heading to widen its column. On a phone, drag with your finger and scroll inside the table. Rest on a heading to read its full name.