> ## Documentation Index
> Fetch the complete documentation index at: https://spreecommerce.org/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Reports

> Answer questions about sales, payments and stock with saved reports you can group, filter, compare and export.

Reports answer questions about your store: what sold, where the money came from, what moved through the warehouse. Every report is built from the same two ingredients — **metrics** (the numbers) and a way to **group** them — so once you can read one, you can read them all.

Find them under **Reports** in the dashboard.

## Built-in reports

Every store comes with a set of ready-made reports. They cover the questions most merchants ask first:

| Area | Reports |
| - | - |
| Sales | Sales over time · Net sales over time · Sales by channel · Sales by market · Sales by country · Top products · Top categories · Top customers · Top companies · Product margin · Returns over time · First-time vs returning · Orders by payment status · Orders by fulfillment status |
| Payments | Payments over time · Payments by method · Failed payments |
| Stock | Stock movement over time · Sell-through by variant |
| Marketplace | Seller payouts |

Built-in reports are marked **Built-in** and cannot be edited directly. Use **Save a copy** to make your own version and change it.

## Reading a report

Open a report and it runs for the selected time range. What you see depends on how the report is grouped:

* grouped by **time** — a chart, with one point per day, week or month
* grouped by anything else — a ranked list, such as products by net sales
* grouped by **nothing** — the totals

Switch **Compare with previous period** on to see each figure against the same span before it.

## Building your own

Click **New report** and choose:

* **Metrics** — at least one. Pick from the same vocabulary the built-in reports use: total sales, orders, average order value, net sales, units sold, gross profit, payments received, units shipped and so on.
* **Group by** — the axis: a time interval, or a dimension such as product, category, channel, market, country, customer, company, seller or payment method. Or none, for totals only.
* **Time range** — a preset, or a custom range.
* **Filters** — narrow the rows, for instance to one channel or one market.
* **Sort** and **Rows** — order the list and cap how many rows come back.

Save it and it appears in the list for anyone on your team who can read reports.

> [!NOTE]
>
> A report draws from one area at a time — sales, payments or stock. They are anchored on different moments (when the order completed, when the payment was taken, when stock moved), so a payment total beside a units-received count would be two reports wearing one table. The builder keeps them apart.

## Money and currency

A report answers in **one currency** — the one you choose, or the store's default. Amounts are never converted between currencies, so a store selling in several has as many answers as it has currencies. Percentages read the way a merchant reads them: a margin of 42.5%, not 0.425.

## What the sales figures mean

The built-in sales reports follow one chain, so a figure means what the same word means anywhere else:

* **Gross sales** − discounts − returns = **Net sales**
* Net sales + shipping + duties + fees + taxes = **Total sales**

**Returns** counts money refunded in the period the refund was issued, not the period of the original sale.

## Exporting

**Export CSV** downloads the report's rows as a file. Exports run in the background and you are emailed when the file is ready.

## Related

* [Orders](https://spreecommerce.org/docs/user/orders/orders.md) — row-level order data rather than aggregates
* [Sales Channels](https://spreecommerce.org/docs/user/settings/sales-channels.md) and [Markets](https://spreecommerce.org/docs/user/settings/markets.md) — the dimensions many reports group by


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.