> For the complete documentation index, see [llms.txt](https://www.boxhero.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://www.boxhero.io/docs/key-features/purchase-and-sales/sales-reports.md).

# Sales Reports

<figure><img src="/files/0kwuok2mWD1lif95Sh8b" alt=""><figcaption></figcaption></figure>

***

## Key Highlights

* **Track metrics** like average sales price, sales quantity, net profit, and profit rate.
* Compare sales and purchase data to identify **trends and opportunities**.
* **Use data to identify** underperforming items and/or adjust pricing accordingly.

{% hint style="warning" %}
Sales Reports *only* include transactions recorded through the **Purchases & Sales** menus. Transactions made through regular inventory actions like **Stock In** or **Stock** **Out** *aren’t* included.
{% endhint %}

## Sales Report Tabs

BoxHero organizes sales data through two distinct tabs:

### A. Profit Analysis

Your team's profit is calculated based on completed sales order records. If you use only the <mark style="color:$primary;">`Sales`</mark> feature without recording <mark style="color:$primary;">`Purchases`</mark>, you can still view profit results in this tab.

<figure><img src="/files/lt5KphZa9ZrXTa79rJAU" alt=""><figcaption></figcaption></figure>

Get insights into your team's profitability with these key metrics:

<table><thead><tr><th width="275"></th><th></th></tr></thead><tbody><tr><td><strong>Average Sales Price</strong></td><td>Sales amount ÷ Sales quantity</td></tr><tr><td><strong>Sales Quantity</strong></td><td>The total number of items sold.</td></tr><tr><td><strong>Sales Amount</strong></td><td>Sales quantity × Sales price<br><sub><em>* Sales price is the price listed on the sales order.</em></sub></td></tr><tr><td><strong>Return Quantity</strong></td><td>The number of items returned and added back to stock.</td></tr><tr><td><strong>Return Amount</strong></td><td>Return quantity × Refund price<br><sub><em>* Refund price is the price listed on the return order.</em></sub></td></tr><tr><td><strong>Revenue</strong></td><td>Sales amount − refund amount</td></tr><tr><td><strong>Net Profit</strong></td><td><p>Revenue − (Cost × (Sales quantity − Return quantity))</p><p><sub><em>* Cost is the purchase price listed in the item details.</em></sub></p></td></tr><tr><td><strong>Profit Margin (%)</strong></td><td>Net profit ÷ Revenue</td></tr></tbody></table>

{% hint style="warning" %}
**Notes on Profit Analysis metrics:**

* **Sales amount** includes *discounts* and *taxes*.
* If you update an item’s cost, **net profit** is recalculated based on the updated purchase price.
* Only items with sales activity during the **selected period** are shown.
* **Return quantity** is reflected in profit calculations based on the date the return was processed.
  {% endhint %}

### B. Sales Summary

Sales summary data is calculated based on *completed* purchase orders (POs) and sales orders (SOs). If you use both the <mark style="color:$primary;">`Purchases`</mark> and <mark style="color:$primary;">`Sales`</mark> features, you can view the results in this tab.

<figure><img src="/files/I5w6TNN9yg1rM4iBD1eu" alt=""><figcaption></figcaption></figure>

Evaluate your purchase and sales performance with the following metrics:

<table><thead><tr><th width="275"></th><th></th></tr></thead><tbody><tr><td><strong>Sales Quantity</strong></td><td>The total number of items sold.</td></tr><tr><td><strong>Sales Amount</strong></td><td>Sales quantity × Sales price<br><sub><em>* Sales price is the price listed on the sales order.</em></sub></td></tr><tr><td><strong>Purchase Quantity</strong></td><td>The total number of items purchased.</td></tr><tr><td><strong>Purchase Amount</strong></td><td>Purchase quantity × Cost<br><sub><em>* Cost is the price listed on the purchase order.</em></sub></td></tr><tr><td><strong>Return Quantity</strong></td><td>The number of items returned and added back to stock.</td></tr><tr><td><strong>Refund Amount</strong></td><td>Return quantity × Refund price<br><sub><em>* Refund price is the price listed on the return order.</em></sub></td></tr><tr><td><strong>Revenue</strong></td><td>Sales amount − Refund amount</td></tr><tr><td><strong>Gross Profit</strong></td><td>Revenue − Purchase amount</td></tr></tbody></table>

{% hint style="success" %}
Select <mark style="color:$primary;">`View by Partner`</mark> to see sales by specific **customers** **and** **suppliers** for the selected period.
{% endhint %}

***

## Currency and Exchange Rates

<mark style="color:$primary;">`Sales Reports`</mark> always display amounts in your team's current [display currency](/docs/settings/team.md#currency), converting from each order's currency using the latest exchange rate.

The rate applied appears in the <mark style="color:$primary;">`Exchange Rates`</mark> indicator at the top of the report, labeled with the date and time it was retrieved (for example, "As of Jun 1, 2026 1:00 PM").

* If an order's currency matches your display currency, no conversion is applied.
* If an order's currency differs, its amounts are converted, so figures in the report may not match the raw amounts shown on the order itself.

<figure><img src="/files/Q2bppmyzynZ2AxTaWbxT" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
To keep a *fixed* record, export the report to Excel, which captures the values at the time of export.
{% endhint %}

If an item's amount looks far higher or lower than expected, it's usually a **currency mismatch**, not a pricing error. Open the order and confirm it was created in the correct currency.&#x20;

<figure><img src="/files/tfrCPjcYT7XzAbssMb94" alt=""><figcaption><p>For example, if your display currency is USD and an order was accidentally created in EUR, <br>its amounts get multiplied by the EUR → USD rate. </p></figcaption></figure>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://www.boxhero.io/docs/key-features/purchase-and-sales/sales-reports.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
