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 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
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% |
- 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.
- 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.
- 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 | The Shopify-channel version of the split. Read both: channels for storefront source, tags for commercial segment. |
| B2C Revenue Only | The B2C bar isolated as its own KPI card. |
| B2B Revenue | The B2B bar isolated as its own KPI card. |
| Marketplace Revenue | The marketplace bars (Mirakl, Debenhams, Rackhams) combined into one figure. |
| Total Revenue | The aggregate; allow-listed segments should sum towards it minus the untagged remainder. |
| 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 → filter by Tagged with each segment tag in turn, set the same window, and sumtotalPrice 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.
| 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. |
| 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. |