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

# Metric dictionary

> Every figure Soran reports, what it means, and how it is calculated.

The reports and the overview show the same figures, calculated one way. This page
is the reference for each of them. Where a figure is *attributed*, it is credited
to a channel, campaign, ad set or ad by the attribution model you chose, and every
level of a report sums to the level above it. See
[Attribution models](/docs/concepts/attribution-models) for how the credit is split.

> [!NOTE]
>
> A blank cell means the figure is not knowable, never that it is zero. A cost
> with no rule behind it, a rate over sessions that were not measured, or money
> in a currency with no exchange rate all show as a dash rather than as a number
> that looks measured.

## Revenue and profit

| Metric | Meaning | Formula |
| - | - | - |
| **Gross revenue** | Order value before discounts came off it | Total revenue + Discounts |
| **Discounts** | Discounts given on the orders | |
| **Total revenue** | What customers were charged, tax and shipping included | Σ order totals |
| **Taxes** | Sales tax or VAT collected. Held for a government, never the seller's | |
| **Revenue after taxes** | | Total revenue − Taxes |
| **Shipping charged** | Shipping the customer paid. A pass-through to the carrier | |
| **Net revenue** | What the business earned | Total revenue − Taxes − Shipping charged |
| **Revenue per session** | | Total revenue ÷ Sessions |
| **COGS** | Cost of goods sold, from your [product costs](/docs/data/cogs). Blank without one | Σ unit cost × quantity |
| **Gross profit** | | Net revenue − COGS |
| **Gross margin** | | Gross profit ÷ Net revenue |
| **Processor fees** | The payment processor's cut, from your [transaction fee rules](/docs/data/transaction-fees) | |
| **Shipping costs** | What you paid the carrier, from your [shipping rules](/docs/data/shipping) | |
| **Unrecovered shipping** | Shipping cost the customer did not cover. Negative when they over-paid | Shipping costs − Shipping charged |
| **Contribution profit** | What the orders contributed before any ad spend | Gross profit − Processor fees − Unrecovered shipping |
| **Contribution margin** | | Contribution profit ÷ Net revenue |
| **Net profit** | The bottom line | Contribution profit − Ad spend |
| **Net margin** | | Net profit ÷ Net revenue |
| **Cost coverage** | How much of the revenue has a cost behind it. A margin at 40% coverage rests on 40% of the revenue | Costed revenue ÷ Line revenue |

## Orders

| Metric | Meaning | Formula |
| - | - | - |
| **Orders** | Orders of the property's primary goal, attributed | |
| **Customers** | Distinct people who ordered. Each customer counts once across all their orders in the period, then splits by the model's weights, so the total is the number of distinct buyers | |
| **AOV** | Average order value | Total revenue ÷ Orders |
| **Conversion rate** | | Orders ÷ Sessions |

## New customers

A new customer is an order the store flagged as the customer's first ever. Shopify
sets this from the customer's lifetime order count, which covers every order placed
before Soran was installed. Orders with no such flag are not counted as new.

| Metric | Meaning | Formula |
| - | - | - |
| **New customers** | First orders, attributed with the same weights as revenue | |
| **New customer share** | Whether a channel recruits or reactivates | New customers ÷ Orders |
| **New customer revenue** | Total revenue from first orders | |
| **New customer AOV** | | New customer revenue ÷ New customers |
| **Blended NC-CPA** | What buying a new customer costs | Ad spend ÷ New customers |
| **Blended NC-ROAS** | | New customer revenue ÷ Ad spend |
| **Blended NC-ACOS** | | Ad spend ÷ New customer revenue |

## Traffic

| Metric | Meaning | Formula |
| - | - | - |
| **Sessions** | Visits, classified by their entry source. See [Sessions and touchpoints](/docs/concepts/sessions-and-touchpoints) | |
| **Visitors** | Distinct people who did anything in the period. A period figure only: people do not partition across channels | |
| **New visitor sessions** | Visits by people never seen before that visit | |
| **New visitor share** | | New visitor sessions ÷ Sessions |
| **Bounce rate** | A bounce is a visit that saw one page and lasted ten seconds or less | Bounced sessions ÷ Sessions |
| **Avg session duration** | From a visit's first event to its last | Σ duration ÷ Sessions |

## Blended advertising

Blended figures put every connected platform's spend against every order Soran
attributed, including the orders no platform can claim. They are usually lower than
the sum of what the platforms report about themselves.

| Metric | Meaning | Formula |
| - | - | - |
| **Ad spend** | Spend across every connected platform, as each reported it | |
| **Blended ROAS** | | Total revenue ÷ Ad spend |
| **Blended net ROAS** | The return on money the business keeps | Net revenue ÷ Ad spend |
| **Blended ACOS** | ROAS the other way up | Ad spend ÷ Total revenue |
| **Blended CPA** | | Ad spend ÷ Orders |
| **Blended POAS** | Whether the return was profit | Contribution profit ÷ Ad spend |
| **Web MER** | Marketing efficiency on online-store orders. An order with no sales channel recorded counts as web; POS, subscription and other channels do not | Web revenue ÷ Ad spend |
| **Web aMER** | The same, for first-time customers only | New customer web revenue ÷ Ad spend |

> [!TIP]
>
> POAS here divides **contribution** profit by spend. Some tools divide gross
> profit instead. When you have no processor or shipping rules the two are the
> same; when you do, ours is the lower and truer figure.

## Platform reported

These come straight from each ad platform's own reporting and reflect what the
platform measured inside its own account, not what Soran attributed. Read them
against the blended figures rather than adding the two.

| Metric | Formula |
| - | - |
| **Platform spend**, **Impressions**, **Clicks** | As reported |
| **Platform orders**, **Platform revenue** | Purchases the platform credited to itself, under its own windows |
| **Platform ROAS** | Platform revenue ÷ Platform spend |
| **Platform ACOS** | Platform spend ÷ Platform revenue |
| **Platform CPA** | Platform spend ÷ Platform orders |
| **CPC** | Platform spend ÷ Clicks |
| **CPM** | Platform spend ÷ Impressions × 1000 |
| **CTR** | Clicks ÷ Impressions |

## Products

Product figures split each order across the products it contained by merchandise
value, so a product's share of an order's revenue, tax and shipping follows what it
sold for. Line facts (units, merchandise revenue) are exact and never split.

| Metric | Meaning | Formula |
| - | - | - |
| **Sessions**, **Views**, **Added to cart**, **Reached checkout**, **Added payment info** | The on-site funnel for the product, by the visit's entry source down to the campaign | |
| **Orders**, **Customers**, **New customers**, **New customer revenue** | As above, this product's share | |
| **Items sold** | Units, attributed | |
| **Avg units per order** | | Items sold ÷ Orders |
| **Merch revenue** | The lines' own value, no tax or shipping | Σ line totals |
| **Avg price** | | Merch revenue ÷ Items sold |
| **Total revenue**, **Discounts**, **Taxes**, **Shipping charged**, **Net revenue** | This product's share of the orders' figures | |
| **Avg discount** | | Discounts ÷ Orders |
| **COGS**, **Gross profit**, **Gross margin** | From each line's own product cost | |
| **Ad spend** | A campaign's spend divided across the products viewed in its sessions, by view share | |
| **ROAS**, **ACOS**, **POAS**, **CPA** | Over the allocated spend | |
| **Cost per unit** | | Ad spend ÷ Items sold |

> **[Reports overview](/docs/reports/overview)**
>
> What each report answers, and what they all share.


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