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

# Margin

> See what each store keeps after product, selling and marketing costs. Margin shows only when every cost is known, and the page lists what is missing.

Margin shows what you keep per store for the orders placed in a period. It walks down a ladder from product sales to margin after product costs, after selling costs and after marketing. A full margin shows only when every cost in it is known. Until then you get a partial figure marked as such, and a list of what is blocking the rest.

**What this page enables:** know which store earns and which one only sells, without a spreadsheet, and see the exact import that will complete the picture.

**Where to find it:** open **Analytics**, then click **Margin** under **Sales** in the sidebar.

> [!NOTE]
>
> Margin needs costs. The catalog cost price gives an estimated margin (≈) on orders imported after you set it. For orders you already have, import your purchase prices on [Costs](https://docs.wisepim.com/en/analytics/costs.md). Payment, carrier and marketplace fees come from fee imports or bol invoices.

## The margin ladder

![The Margin page with a per-store ladder from product sales after discounts and refunds down to margin after marketing, and the list of what is blocking margin](https://mintcdn.com/swiftsyncai/e5lHCbnPIlrrYMyG/images/marketing-screenshots/analytics/order-evidence-contribution-light-branded.webp?fit=max\&auto=format\&n=e5lHCbnPIlrrYMyG\&q=85\&s=baf8b3bcf8c0fed98e351633cf30b406)

Each store gets its own ladder in its own currency. The rows, top to bottom:

| Row | What goes in |
| - | - |
| **Product sales after discounts and refunds** | Net product sales for orders placed in the period, updated as refunds come in |
| **Cost of goods** | The cost on each order line, from a purchase-price import or the catalog cost price |
| **Margin after product costs** | Sales minus cost of goods (CM1) |
| **Shipping charged** | What customers paid for shipping |
| **Selling and fulfilment costs** | Marketplace fees, payment fees, shipping, fulfilment and return handling |
| **Margin after selling costs** | CM1 plus shipping charged, minus selling and fulfilment costs (CM2) |
| **Marketing** | Advertising costs posted for the period |
| **Margin after marketing** | CM2 minus marketing (CM3) |

The glossary on the page is written for your accountant: "CM1 is product sales after discounts and refunds minus cost of goods. CM2 adds shipping income and subtracts marketplace, payment, shipping, fulfilment and return costs. CM3 subtracts advertising. These are contribution margins, not accounting profit."

### Partial and estimated values

A row that cannot be completed does not show 0. It shows one of these instead:

* **Margin after product costs (known costs only)** or **Margin after selling costs (known costs only)**: a partial margin over the orders where every cost is known. A line such as **Margin after product costs on 737 of 899 orders: 4,120 (31% of their product sales)** tells you the coverage.
* **≈ 4,300 with catalog cost prices (estimated)**: the margin using the cost price in your catalog at the time of sale. It is an estimate, not an invoiced cost.
* A short reason, such as **Needs product costs** or **Not sent by WooCommerce**, when nothing can be calculated yet.

Under the ladders, **Margin known for 2 of 3 stores.** and **64% of orders have a cost for every line.** summarise coverage.

> [!WARNING]
>
> Partial margins use only the costs we have so far and may miss some. Full margins after selling costs and after marketing show once every cost is known.

## What's blocking margin

This section lists every reason a margin is partial, each with a button to the fix:

| Reason | What to do |
| - | - |
| **48 orders include products with no recorded cost.** | **Import purchase prices** for the orders you have, or **Add cost prices for new orders** in the catalog |
| **120 orders use estimated catalog costs. Import purchase prices for an exact margin.** | Import purchase prices to replace the estimates |
| **12 orders have no complete sales breakdown from WooCommerce, so margin stays unknown for them.** | Nothing on your side; the platform did not send the parts |
| **Payment fees are imported up to 30 Sep.** | **Import fees** for the days after that |

The **Cost postings** list shows every cost posted for the period by kind: **Cost of goods**, **Marketplace fees**, **Payment fees**, **Shipping**, **Fulfilment**, **Return handling**, **Advertising**. Before anything is posted it reads **No costs posted yet. Missing costs stay unknown, never zero.**

Coverage counts sit alongside: **Orders with unknown sales**, **Orders with a line without a cost**, **Estimated costs (≈)** and **Costs left out for a different currency**. The last one matters when your cost prices are in a currency other than the store's; set **Currency of your cost prices** in [Analytics settings](https://docs.wisepim.com/en/analytics/analytics-settings.md).

> [!NOTE]
>
> Costs are posted, not edited. A purchase-price import replaces a catalog estimate on the same lines, but never a cost that was already exact. That is why the page can always tell you which figure is an estimate.

## Act on what you find

> **Margin is unknown for every store**
>
> Start with **Confirm reporting basics** on [Today](https://docs.wisepim.com/en/analytics/today.md). Without a cost currency the page cannot pair costs with sales. Then open [Costs](https://docs.wisepim.com/en/analytics/costs.md) and import purchase prices for the period you care about. Catalog cost prices alone only cover orders imported after you set them.

> **Margin after product costs looks fine but the next step is missing**
>
> **Margin after selling costs** needs marketplace, payment, shipping, fulfilment and return costs. Check **Payment fees are imported up to `{date}`** and the **Cost coverage** table on [Costs](https://docs.wisepim.com/en/analytics/costs.md) to see which cost kind and which days are missing. For bol, post the invoice from the bol invoices tab.

> **One store earns far less than it sells**
>
> Compare the **Selling and fulfilment costs** row across stores. Marketplace commission and return handling often explain the gap. Then open the Returns view in [Orders](https://docs.wisepim.com/en/analytics/orders.md) for that store and look for products marked **Fix with product data**.

> **The page says the period is too large**
>
> **This period is too large to calculate live. Pick a shorter period or fewer stores.** Margin is calculated per order line, so narrow the period or the stores, or build a frozen report on [Reports](https://docs.wisepim.com/en/analytics/reports.md) for the full range.

## Related

> **[Orders](https://docs.wisepim.com/en/analytics/orders.md)**
>
> The product sales and refunds the top of the ladder is built from.

> **[Order Detail](https://docs.wisepim.com/en/analytics/order-detail.md)**
>
> One order's lines and the costs that were posted to them.

> **[Today](https://docs.wisepim.com/en/analytics/today.md)**
>
> The setup checklist that lists the cost, rate and fee steps still open.

> **[How Order Numbers Work](https://docs.wisepim.com/en/analytics/how-order-numbers-work.md)**
>
> Estimated, known so far and the CM1, CM2, CM3 definitions.


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