> ## 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.

# How Order Numbers Work

> The rules behind every order report: trust marks, native currency, complete days, coverage, estimates, the margin ladder and what changed from the old pages.

Every order page in WISEPIM follows the same rules. Money stays in each store's currency. Days count only when they are complete. A number that is not known is shown as unknown, with a reason, and never as zero. This page explains those rules once, so each report page can stay short.

**What this page enables:** read any order report without second-guessing it. When you see **Known so far**, **≈** or **Not sent by Shopify**, you know what it means and what to do about it.

**Where to find it:** these rules are not a page in the app. Each order report shows its own version under **About these numbers**, with **What this shows**, **How we calculate**, **Included** and **Missing**.

> [!NOTE]
>
> The order pipeline is rolling out per account. Some stores may not show order data yet. The rules below apply as soon as a store's orders are imported.

## Evidence, not estimates

The imported order records are the evidence. Everything else on the order pages, from daily totals to margins and forecasts, is calculated from them and can be rebuilt at any time. Each page states which kind of number you are looking at: imported, calculated or estimated.

## Trust marks

Every value on an order page carries one of four marks:

| Mark | What it means | Example |
| - | - | - |
| No mark | The value is complete for every order in the scope | **Orders 899** |
| **Known so far** | A subset: only the orders where this part is known are counted | **from 737 of 899 orders** |
| **≈** and **Estimated** | Calculated from an estimate, such as a catalog cost price | **≈ 4,300 with catalog cost prices (estimated)** |
| A short reason with an info glyph | Unknown. Hover or click for the long version | **Needs product costs** |

The reasons you will meet most:

| Reason | Long version |
| - | - |
| **Not sent by `{platform}`** | "`{platform}` doesn't send this, so we keep it unknown rather than guess." |
| **No amounts from bol** | bol sends order lines but no confirmed order total or currency, so bol orders stay out of money totals |
| **Needs product costs** | Orders include products with no recorded cost |
| **Needs an exchange rate** | Orders in a foreign currency have no rate for their order date |
| **Needs product matching** | Order lines are not linked to a product in your catalog |
| **Refund split unknown** | Refunded orders have no breakdown of what was refunded |
| **Not imported yet** | "We don't import this from `{platform}` yet." |
| **History not confirmed** | "We haven't confirmed that our import covers every order on these days." |
| **Not over yet** | The period has not ended |
| **Too few orders** | Below the minimum needed to say anything reliable |
| **Today is still running** | Today is left out of comparisons |
| **No comparison yet** | Comparison needs complete days with full history on both sides |
| **Not in this view** | The store or currency is outside the current filter |
| **Data changed, refresh** | The readings changed while loading |

Each reason also names who can act on it: **You can fix this**, **Comes from `{platform}`**, **On our side** or **Fills in by itself**.

> [!WARNING]
>
> A known subset that covers no orders is shown as unknown, not as 0. Zero only ever means a zero the platform confirmed.

## Order totals and measures

An **Order total** is the amount a store sent for an order, tax and shipping included, with refunds not subtracted. It is not net sales and not captured cash. The **Report measure** filter picks what the daily and per-store reports show:

| Measure | What it is |
| - | - |
| **Recorded order totals** (default) | Exact amounts where the store confirmed them; otherwise the amount from an older import in its stored currency, marked **Imported amounts; source currency not reverified** |
| **Order totals** | Only amounts the store sent and confirmed |
| **Orders** | Counts, no money |
| **Gross product sales** | Product lines before discounts |
| **Product sales after discounts** | Product lines after discounts, before refunds |

The order list itself never changes with the measure.

## Native currency

Every total is kept per store and per currency. Nothing is summed across currencies and nothing is converted on its own. Two consequences:

* **Share of sales** on the By store view is a share of one currency.
* A reporting currency only appears in the card **All stores in `{currency}`** on the Orders page, and only after you entered your own rate for each order date in [Analytics settings](https://docs.wisepim.com/en/analytics/analytics-settings.md). Rates are exact, one per day, and WISEPIM never falls back to the day before or to an inverse rate.

An order counts as having a confirmed currency only when the platform confirmed it. bol never does, and some older imports do not. Those orders are marked **Currency not confirmed** and left out of money totals.

## Complete days

Yesterday in your analytics timezone is the last complete day. Today is partial, so it is excluded from comparisons, targets, schedules and forecasts. The default period is **Last 30 complete days**, and a closed-window label such as **Last 30 days (to 13 Oct)** tells you where it stops. Order pages show up to 366 days; bookmarks for longer periods are moved to 12 months with a notice.

A day with no orders counts as a zero day only when the import's history for that day is confirmed. Otherwise it is a gap, and the daily charts leave it as a gap.

## Coverage

Coverage says how many orders a value is built from, never how much money. You see it as **from 737 of 899 orders**, as cost coverage per store and cost kind, as exchange-rate coverage per currency and day, as **Matched to products** for order lines, and as a history state per store: **Full history since the store opened**, **History since your first import** or **History not confirmed**.

## Estimates

The catalog cost price is snapshotted when an order line is first imported. Margins built on it are marked **≈**. Only a purchase-price import or a posted invoice gives an exact cost, and an exact cost is never replaced by an estimate. Forecasts on [Reorder Planning](https://docs.wisepim.com/en/analytics/reorder-planning.md) are estimates too, with a tested likely range.

## The margin ladder

[Margin](https://docs.wisepim.com/en/analytics/margin.md) uses contribution margins, not accounting profit:

| Row | Definition |
| - | - |
| **Margin after product costs** (CM1) | Product sales after discounts and refunds minus cost of goods |
| **Margin after selling costs** (CM2) | CM1 plus shipping charged, minus marketplace, payment, shipping, fulfilment and return costs |
| **Margin after marketing** (CM3) | CM2 minus advertising |

A full margin shows only when every cost in it is known. Partial margins are marked **(known costs only)**.

## Customers at equal age

[Customer Insights](https://docs.wisepim.com/en/analytics/customer-insights.md) groups customers by the month of their first observed order, per store, and compares cohorts at the same number of months since that order. "First observed" is not "first ever": a buyer from before your first import looks new. Under **Products in the first order**, a customer counts under every product in that order, so the rows overlap and do not add up.

## Reconciliation

For each order, the parts the store sent (products, discounts, tax, shipping, fees, duties, tips, gift cards, adjustments) are checked against the store's total: **Adds up**, **Off by `{amount}`** or **Can't check the total yet**. Parts that balance prove the arithmetic, not that the order was paid or that every line is matched to a product.

## Previews and posted data

Actions that change data, such as posting costs, importing purchase prices, linking order lines to products and marking duplicate orders, always run in two steps: a preview that shows what will change, then an apply. The preview is valid for 15 minutes, and the apply refuses if the data changed in between. Posted costs and exchange rates cannot be edited afterwards; product links are versioned, so the history is kept.

## How the old reports changed

![The notice the retired Channels report showed before it redirected: order totals by store in each native currency, with unknown amounts left unknown](https://mintcdn.com/swiftsyncai/MllHzI8wlqBZvkUg/images/marketing-screenshots/analytics/order-evidence-legacy-channels-light-branded.webp?fit=max\&auto=format\&n=MllHzI8wlqBZvkUg\&q=85\&s=dfebf4346d11b4917ecec3028748e61e)

The old Revenue, Gross margin, Returns and Channels reports pooled amounts without an agreed definition of sales, costs or currency. For a while they showed a bridge with **Order totals by store** and the note "The old report had no checked definition of sales, costs and currency. These are the order totals your stores reported." Now they redirect:

| Old page | Now |
| - | - |
| [Channel Analytics](https://docs.wisepim.com/en/analytics/channels) | The By store view in [Orders](https://docs.wisepim.com/en/analytics/orders.md) |
| [Returns & Refunds](https://docs.wisepim.com/en/analytics/returns) | The Returns view in [Orders](https://docs.wisepim.com/en/analytics/orders.md) |
| [Profitability](https://docs.wisepim.com/en/analytics/profitability) | [Margin](https://docs.wisepim.com/en/analytics/margin.md) |
| [Stock-Out Loss](https://docs.wisepim.com/en/analytics/stockouts) | [Reorder Planning](https://docs.wisepim.com/en/analytics/reorder-planning.md) |
| Customer Insights (old) | [Customer Insights](https://docs.wisepim.com/en/analytics/customer-insights.md), rebuilt on the same rules |
| [Revenue & Sales](https://docs.wisepim.com/en/analytics/revenue-sales.md) | Kept, rebuilt on imported orders |

Redirects keep your period, stores and currency where the new page supports them. The notice **`{old}` moved to `{new}`. Your bookmark still works.** confirms it. There is no comparison between old and new figures, because they measured different things.

## Act on what you find

> **A number is lower than your store's own dashboard**
>
> Check the measure and the period first: order totals by order date, in the store's currency, refunds not subtracted, today excluded. Then compare the reasons: orders with **Currency not confirmed** or without a total are left out here, where a store dashboard may include them. The Reconciliation view under [Data health](https://docs.wisepim.com/en/analytics/data-health.md) compares your own CSV export part by part.

> **Two stores sell in different currencies and you want one total**
>
> Set a reporting currency in [Analytics settings](https://docs.wisepim.com/en/analytics/analytics-settings.md) and add a rate for each order day. Until every day has a rate, the converted card shows **N orders need an exchange rate.** with the rest as a known subset.

> **A value is marked Known so far**
>
> Open **About these numbers** and read **Missing**. It names the part that is unknown, how many orders it affects and who can fix it. [Fix queue](https://docs.wisepim.com/en/analytics/fix-queue.md), [Costs](https://docs.wisepim.com/en/analytics/costs.md), [Unmatched products](https://docs.wisepim.com/en/analytics/unmatched-products.md) and [Analytics settings](https://docs.wisepim.com/en/analytics/analytics-settings.md) cover the four fixes that are on your side.

> **You changed the timezone or currency settings**
>
> Reports keep the old settings until you click **Update reports** in [Analytics settings](https://docs.wisepim.com/en/analytics/analytics-settings.md). Targets show **Check the dates** after a timezone change, because the day boundaries moved.

## Related

> **[Orders](https://docs.wisepim.com/en/analytics/orders.md)**
>
> Where most of these marks show up first.

> **[Margin](https://docs.wisepim.com/en/analytics/margin.md)**
>
> The ladder, the estimates and what is blocking a full margin.

> **[Order Detail](https://docs.wisepim.com/en/analytics/order-detail.md)**
>
> Reconciliation and amount source for one order.

> **[Today](https://docs.wisepim.com/en/analytics/today.md)**
>
> The setup steps that turn unknown into known.


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