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

# Revenue by Sales Channel (Tag), Shopify

> Revenue by Sales Channel (Tag) for Shopify stores. Per-tag revenue across a configurable allow-list of segments. How to read it, why it matters, and how to act on it.

**Card class:** [Non-Hero](/nerve-centre/overview#card-classes-explained)  •  **Category:** [Ecommerce Platform](/nerve-centre/connectors#connectors-by-type)

> Per-tag revenue. Default allow-list: B2C, B2B, Mirakl, Debenhams, Rackhams. Configure under the card to add or remove segments.

## At a glance

> Gross revenue broken down by order tag, across a configurable allow-list of segments. Where [Revenue by Channel](/nerve-centre/kpi-cards/shopify/revenue-by-channel) splits by Shopify's own sales-channel source (Online Store, POS, social), this card splits by the *tags you apply to orders*, so it captures business segments Shopify's channel taxonomy can't, like a specific marketplace partner or a B2C / B2B distinction. The default allow-list is B2C, B2B, Mirakl, Debenhams, and Rackhams.

|                               |                                                                                                                                                                                                                                                                                              |
| ----------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **What it counts**            | `SUM(totalPrice) GROUP BY tag` for each tag in the allow-list, over the window. Each bar is one segment's gross revenue.                                                                                                                                                                     |
| **Why tags, not channels**    | Shopify's sales-channel field tells you the storefront an order came through; it cannot distinguish, for example, a Debenhams marketplace order from a Mirakl one if both arrive via the same integration. Tags are how merchants encode commercial segments Shopify doesn't model natively. |
| **The allow-list**            | Defaults to B2C, B2B, Mirakl, Debenhams, Rackhams. **Configure it under the card** to add or remove segments to match your own tagging scheme. Only tags on the allow-list become bars; everything else is excluded from the chart.                                                          |
| **VAT / tax treatment**       | Each segment inherits its orders' `taxesIncluded` mode. Wholesale (B2B) tags may be ex-tax while consumer (B2C) tags are inclusive; bars are not normalised to one tax basis.                                                                                                                |
| **Shipping**                  | **Included** (part of `totalPrice`).                                                                                                                                                                                                                                                         |
| **Discounts**                 | Deducted (post-discount).                                                                                                                                                                                                                                                                    |
| **Refunds**                   | **NOT deducted.** Each bar is gross.                                                                                                                                                                                                                                                         |
| **Cancelled / voided orders** | Included if Shopify indexed them.                                                                                                                                                                                                                                                            |
| **Currency**                  | Multi-currency arithmetic without FX. Filter by currency for cross-segment comparison when segments transact in different currencies.                                                                                                                                                        |
| **Channels / sources**        | Orthogonal to Shopify channels. An order can be tagged `Debenhams` regardless of which Shopify channel created it.                                                                                                                                                                           |
| **Time window**               | `30D` (default 30D rolling)                                                                                                                                                                                                                                                                  |
| **Alert trigger**             | Configurable per segment. Lumpy segments (B2B, single marketplace partners) need looser thresholds than smooth ones (B2C).                                                                                                                                                                   |
| **Roles**                     | owner, marketing                                                                                                                                                                                                                                                                             |

## Calculation

```
SUM(totalPrice) GROUP BY tag
  WHERE tag IN [allow-list]
    AND date BETWEEN [period_start, period_end]
```

## Worked example

A UK homewares brand selling DTC, to trade accounts, and through three marketplace partners. Every order is tagged with exactly one segment. The 30-day window covers 14 Mar 26 to 12 Apr 26. Allow-list left at the default five segments.

| Segment (tag)                 | Revenue      | Share of tagged | Note                          |
| ----------------------------- | ------------ | --------------- | ----------------------------- |
| B2C                           | £162,000     | 71.0%           | Consumer storefront demand    |
| B2B                           | £36,000      | 15.8%           | Lumpy trade orders            |
| Debenhams                     | £11,200      | 4.9%            | Department-store marketplace  |
| Mirakl                        | £10,800      | 4.7%            | Marketplace operator platform |
| Rackhams                      | £8,200       | 3.6%            | Regional department store     |
| **Total (allow-listed tags)** | **£228,200** | **100%**        |                               |

Three things to notice:

1. **This is the view Shopify's channel report can't give you.** All three marketplace partners (Debenhams, Mirakl, Rackhams) may arrive through the same integration and look identical to Shopify's sales-channel field. Tagging is the only way to see them separately, and this card surfaces that split directly.
2. **The allow-list keeps the chart honest.** Only the five configured tags appear. If a stray order carried an off-list tag (a campaign tag, a fulfilment tag), it would not pollute the chart. That is also the trap: a real segment you forgot to add to the allow-list is silently invisible. Review the allow-list when you launch a new partner.
3. **Each segment moves for different reasons.** B2C tracks consumer marketing; B2B tracks a few trade accounts; the marketplace bars track partner demand and partner promotions you don't control. Reading them together tells you whether a soft month was broad or concentrated in one segment.

## Sibling cards merchants should reference together

| Card                                                                       | Why pair it with Revenue by Sales Channel (Tag)                                                                   |
| -------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- |
| [Revenue by Channel](/nerve-centre/kpi-cards/shopify/revenue-by-channel)   | The Shopify-channel version of the split. Read both: channels for storefront source, tags for commercial segment. |
| [B2C Revenue Only](/nerve-centre/kpi-cards/shopify/b2c-revenue-only)       | The B2C bar isolated as its own KPI card.                                                                         |
| [B2B Revenue](/nerve-centre/kpi-cards/shopify/b2b-revenue)                 | The B2B bar isolated as its own KPI card.                                                                         |
| [Marketplace Revenue](/nerve-centre/kpi-cards/shopify/marketplace-revenue) | The marketplace bars (Mirakl, Debenhams, Rackhams) combined into one figure.                                      |
| [Total Revenue](/nerve-centre/kpi-cards/shopify/total-revenue)             | The aggregate; allow-listed segments should sum towards it minus the untagged remainder.                          |
| [Top Discount Codes](/nerve-centre/kpi-cards/shopify/top-discount-codes)   | Marketplace partners often run their own promotions; a segment spike may trace to a partner discount.             |

## Reconciling against Shopify Admin

**Where to look in Shopify Admin:**

[Orders](https://admin.shopify.com/orders) → filter by **Tagged with** each segment tag in turn, set the same window, and sum `totalPrice` on each export. Repeating the filter once per tag reconstructs the chart. There is no native Shopify report that groups revenue by arbitrary order tag, which is exactly why this card exists.

Other Shopify Admin views and why they differ:

* **Reports → Sales by sales channel**: groups by Shopify channel, not by tag. A single channel can carry several of these tags, and several channels can carry one tag, so the two views won't line up.
* **Order tags list** (in the Orders filter): shows which tags exist but not their revenue.

**Why our number may legitimately differ from Shopify:**

| Reason                 | Direction             | Why                                                                                                                                   |
| ---------------------- | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| **Allow-list scope**   | Ours lower than total | The chart sums only allow-listed tags. Untagged or off-list orders are excluded by design, so the chart total is below Total Revenue. |
| **Tagging discipline** | Either                | A mis-tagged or double-tagged order lands in the wrong bar or two bars. Tag hygiene drives accuracy.                                  |
| **Refund treatment**   | Ours higher           | Gross here; net in Shopify net reports.                                                                                               |
| **Multi-currency**     | Ours blended          | No FX conversion.                                                                                                                     |
| **Time zone**          | Boundary days         | UTC vs store time zone.                                                                                                               |

**Cross-connector reconciliation:**

| Card                                                      | Expected relationship                                           | What causes legitimate divergence                                                                                             |
| --------------------------------------------------------- | --------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
| Marketplace operator dashboards (Mirakl, partner portals) | Each marketplace bar should track its operator's reported sales | Partner portals report on their fulfilment timeline and may net returns differently; expect timing and refund-treatment gaps. |

***

<details>
  <summary><em>Same-metric documentation cross-reference (for agencies running multiple platforms)</em></summary>

  The same tag-grouped revenue concept lives on other commerce platforms. This is **not a reconciliation**, your Shopify store doesn't have a parallel store on BigCommerce or Adobe Commerce. These cross-links exist so agencies running multi-platform client books can navigate between identical metrics.

  * [`bigcommerce.revenue_by_tag`](/nerve-centre/kpi-cards/bigcommerce/revenue-by-sales-channel-tag)
  * [`adobe_commerce.revenue_by_tag`](/nerve-centre/kpi-cards/adobe-commerce/revenue-by-sales-channel-tag)
</details>

## Known limitations / merchant FAQs

**How is this different from Revenue by Channel?**
Revenue by Channel groups by Shopify's own sales-channel source (Online Store, POS, social). This card groups by the *tags you put on orders*. Tags capture commercial segments Shopify doesn't model, like distinguishing three marketplace partners that all arrive through one integration. Use both views together.

**Why is a segment I run not showing on the chart?**
Because its tag isn't on the allow-list. The card only charts allow-listed tags (default B2C, B2B, Mirakl, Debenhams, Rackhams). Add your tag under the card configuration. This is the most common reason a real segment looks missing.

**Why don't the bars add up to Total Revenue?**
Only allow-listed tags are summed. Untagged orders and orders carrying off-list tags are excluded by design, so the chart total is below Total Revenue. The gap is your untagged-plus-off-list remainder.

**What if an order has two of these tags?**
It can be counted in two bars, which inflates the chart total above the true revenue. Keep tagging mutually exclusive (one segment tag per order) so the bars partition cleanly.

**Can I add campaign or fulfilment tags as segments?**
Yes, the allow-list is freeform, any order tag can become a bar. But mixing commercial-segment tags with operational tags (campaign, fulfilment status) makes the chart hard to read and can double-count. Keep one allow-list for one purpose.

**My marketplace partner's portal shows a different number, why?**
Marketplace operators report on their own fulfilment timeline and net returns on their own schedule. Timing differences and refund treatment cause small gaps. Treat this card as your Shopify-side view and the partner portal as theirs; reconcile on a monthly cadence rather than daily.

***

### Tracked live in Vortex IQ Nerve Centre

*Revenue by Sales Channel (Tag)* is one of hundreds of KPI pulses Vortex IQ tracks across Shopify and 70+ other ecommerce connectors. Nerve Centre runs the detection layer; Vortex Mind investigates the cause when something moves; Ask Viq lets you interrogate any number in plain English.

[Start for free](https://app.vortexiq.ai/login) or [book a demo](https://www.vortexiq.ai/contact-us) to see this metric running on your own data.
