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

# B2C Revenue Only, Shopify

> B2C Revenue Only for Shopify stores. Direct-to-consumer revenue isolated by the B2C order tag. 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)

> Direct-to-consumer revenue only. Filtered to orders tagged `B2C`.

## At a glance

> Gross revenue from your direct-to-consumer orders in the period, isolated by the `B2C` order tag. For a brand whose Shopify store carries both retail and wholesale traffic, this card strips out everything that isn't pure DTC so you can read consumer demand cleanly, free of lumpy wholesale and marketplace orders. It is gross revenue, the same arithmetic as Total Revenue, restricted to `B2C`-tagged orders.

|                               |                                                                                                                                                                                                                       |
| ----------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **What it counts**            | `SUM(totalPrice)` across orders in the window carrying the `B2C` tag. The pure direct-to-consumer slice of gross revenue.                                                                                             |
| **How "B2C" is identified**   | By the `B2C` order tag. **The tag must be applied consistently**, typically by an automation that tags every storefront order `B2C` unless it is wholesale or marketplace. An untagged consumer order is missed here. |
| **VAT / tax treatment**       | Follows each order's `taxesIncluded` mode. DTC orders on a UK store are usually VAT-inclusive, so this slice is inclusive while a wholesale slice may be ex-tax.                                                      |
| **Shipping**                  | **Included** (part of `totalPrice`).                                                                                                                                                                                  |
| **Discounts**                 | Already deducted. Consumer coupons and promotions are reflected in the post-discount total.                                                                                                                           |
| **Refunds**                   | **NOT deducted.** A refunded consumer order still contributes.                                                                                                                                                        |
| **Cancelled / voided orders** | Included if Shopify indexed them.                                                                                                                                                                                     |
| **Currency**                  | **Multi-currency arithmetic sum WITHOUT FX conversion.** Filter by currency for stores selling consumer in more than one currency.                                                                                    |
| **Channels / sources**        | Filtered by tag, not by sales channel. A `B2C`-tagged order on any channel counts.                                                                                                                                    |
| **Time window**               | `30D` (default 30D rolling)                                                                                                                                                                                           |
| **Alert trigger**             | Configurable. DTC revenue is the smoother, higher-volume segment, so trend alerts behave more sensibly here than on the wholesale card.                                                                               |
| **Roles**                     | owner, marketing                                                                                                                                                                                                      |

## Calculation

```
SUM(totalPrice WHERE tags CONTAINS 'B2C')
  WHERE date BETWEEN [period_start, period_end]
```

## Worked example

The same UK homewares brand from the B2B card, selling both DTC and wholesale through one Shopify store. An order automation tags every storefront order `B2C`. The 30-day window covers 14 Mar 26 to 12 Apr 26.

| Segment                                          | Orders    | Revenue      | Note                        |
| ------------------------------------------------ | --------- | ------------ | --------------------------- |
| B2C (this card)                                  | 1,810     | £162,000     | Consumer storefront demand  |
| B2B (wholesale tag)                              | 7         | £36,000      | Lumpy trade orders          |
| Marketplace (Mirakl / Debenhams / Rackhams tags) | 240       | £18,500      | Partner-fulfilled           |
| Untagged remainder                               | 12        | £1,100       | Manual orders nobody tagged |
| **Total store revenue**                          | **2,069** | **£217,600** | B2C is 74% of it            |

Three things to notice:

1. **B2C is the clean demand signal.** Stripping out the seven wholesale orders (which alone were £36,000) removes the noise that distorts blended trends. When you want to judge whether consumer marketing is working, read this card, not Total Revenue, because one big wholesale order can mask a soft consumer week.
2. **B2C carries the volume, wholesale carries the lumps.** 1,810 consumer orders versus 7 trade orders. The consumer segment is smooth enough to alert on; the wholesale segment is not. Treating them separately stops a missing wholesale order from triggering a false revenue-drop alarm.
3. **The untagged remainder is your tagging-coverage check.** £1,100 of orders carry no segment tag. That gap means B2C plus B2B plus Marketplace won't quite sum to Total Revenue. A growing untagged remainder is a sign the tagging automation needs attention.

## Sibling cards merchants should reference together

| Card                                                                                           | Why pair it with B2C Revenue Only                                                              |
| ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- |
| [B2B Revenue](/nerve-centre/kpi-cards/shopify/b2b-revenue)                                     | The wholesale counterpart. The two should sum towards total revenue minus any untagged orders. |
| [Revenue by Sales Channel (Tag)](/nerve-centre/kpi-cards/shopify/revenue-by-sales-channel-tag) | The full per-tag breakdown; B2C is one bar of it.                                              |
| [Total Revenue](/nerve-centre/kpi-cards/shopify/total-revenue)                                 | The aggregate; B2C as a share shows how DTC-led the store is.                                  |
| [Average Order Value](/nerve-centre/kpi-cards/shopify/average-order-value)                     | DTC AOV is the consumer basket size, far smaller and steadier than wholesale.                  |
| [New Customers](/nerve-centre/kpi-cards/shopify/new-customers)                                 | Consumer acquisition drives B2C revenue; pair to see if new buyers or repeat buyers moved it.  |
| [Repeat Customer Rate](/nerve-centre/kpi-cards/shopify/repeat-customer-rate)                   | DTC growth from repeat buyers is healthier than growth purely from paid acquisition.           |

## Reconciling against Shopify Admin

**Where to look in Shopify Admin:**

[Orders](https://admin.shopify.com/orders) → filter by **Tagged with** `B2C`, set the same window, and sum `totalPrice` on the export. That is the direct reconstruction. Shopify has no native "consumer-only" report, the tag is the mechanism, so reconciliation depends on the same tag this card reads.

Other Shopify Admin views and why they differ:

* **Reports → Sales over time** (unfiltered): the all-segment total, higher than this card by the wholesale and marketplace slices.
* **Customer segments**: Shopify can segment customers (new, returning) but not split revenue by your B2C / B2B order tags without the tag filter.

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

| Reason                 | Direction     | Why                                                                                    |
| ---------------------- | ------------- | -------------------------------------------------------------------------------------- |
| **Tagging gaps**       | Ours lower    | A consumer order that wasn't tagged `B2C` is missed. The biggest source of divergence. |
| **Tagging over-reach** | Ours higher   | A wholesale or marketplace order wrongly tagged `B2C` is wrongly counted.              |
| **Refund treatment**   | Ours higher   | This card is gross; net reports deduct returns.                                        |
| **Multi-currency**     | Ours blended  | No FX conversion here.                                                                 |
| **Time zone**          | Boundary days | UTC vs store time zone.                                                                |

**Cross-connector reconciliation:**

| Card                                                                                          | Expected relationship                         | What causes legitimate divergence                                                                                                                                                                     |
| --------------------------------------------------------------------------------------------- | --------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [`google_analytics.ga_revenue_trend`](/nerve-centre/kpi-cards/google-analytics/revenue-trend) | GA4 consumer revenue should track B2C closely | GA4 sees storefront purchases (mostly B2C) but misses 10 to 25% to ad-blockers and consent; wholesale rarely flows through GA4 at all, so GA4 is naturally closer to this card than to Total Revenue. |

***

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

  The same tagged-DTC 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.b2c_revenue`](/nerve-centre/kpi-cards/bigcommerce/b2c-revenue-only)
  * [`adobe_commerce.b2c_revenue`](/nerve-centre/kpi-cards/adobe-commerce/b2c-revenue-only)
</details>

## Known limitations / merchant FAQs

**Why does this not equal Total Revenue minus B2B?**
Because some orders carry neither tag (manual orders, marketplace orders, or storefront orders the automation missed). B2C plus B2B usually sums to slightly less than Total Revenue; the difference is the untagged and marketplace remainder.

**Why is B2C lower than I expect?**
A tagging gap. This card counts only orders tagged `B2C`. If your tagging automation failed for a period, or new order sources weren't included in it, consumer orders fall out of this card and into the untagged remainder. Check tagging coverage before reading it as a demand drop.

**Can I change which tag means B2C?**
The card keys on the `B2C` tag by default. Align it to your own convention under the card configuration if you tag consumer orders differently. The card is only as accurate as the tag.

**Is this the right card for judging marketing performance?**
Yes, usually. Because it excludes lumpy wholesale and partner-marketplace orders, B2C Revenue Only is the cleanest read on whether consumer demand and marketing are working. One large wholesale order can hide a weak consumer week in Total Revenue but not here.

**Does it include POS and social-channel consumer orders?**
Yes, if those orders carry the `B2C` tag. The card filters by tag, not by sales channel, so any consumer order tagged `B2C` on any channel counts. Make sure your tagging automation covers POS and social orders, not just the online store.

**My store is pure DTC with no wholesale. Do I need this card?**
If you have no wholesale or marketplace orders, B2C Revenue Only and Total Revenue will be nearly identical (minus any untagged orders), so Total Revenue is simpler to read. This card earns its place once you run mixed B2C and B2B through one store.

***

### Tracked live in Vortex IQ Nerve Centre

*B2C Revenue Only* 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.
