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

# Total Revenue (30d), Salesforce Commerce Cloud

> Total Revenue (30d), the sum of completed orders. The morning question every Salesforce Commerce Cloud merchant opens with. How to read it, why it matters, and how to act on it.

**Metrics type:** [Key Metrics](/nerve-centre/overview#metrics-types-explained)  •  **Category:** [Ecommerce Platform](/nerve-centre/connectors#connectors-by-type)

> Sum of completed orders. The morning question every Salesforce Commerce Cloud merchant opens with.

## At a glance

> Headline gross revenue across every Salesforce Commerce Cloud (SFCC, formerly Demandware) order in the period, summed across every site and locale in the realm. The arithmetic sum of `order_total` from SCAPI / Open Commerce API order responses, regardless of order status, locale, or currency.

|                               |                                                                                                                                                                                                                                                                                                                                                            |
| ----------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **What it counts**            | `SUM(order_total)` across every order returned by SCAPI (Salesforce Commerce API) or OCAPI (Open Commerce API) in the window. SFCC's `order_total` is the customer-paid figure including merchandise, shipping, and tax.                                                                                                                                   |
| **VAT / tax treatment**       | **Tax-inclusive by definition.** `order_total` is computed as `merchandise_total + adjusted_shipping_total + tax_total`. Pre-tax view sits in `merchandise_total` (or `product_subtotal` depending on API version). For UK / EU sites typically tax-inclusive line item pricing; for US sites typically tax-on-top, both result in the same `order_total`. |
| **Shipping**                  | **Included.** `adjusted_shipping_total` (post-shipping-discount) is added into `order_total`.                                                                                                                                                                                                                                                              |
| **Discounts**                 | Already deducted, both order-level and product-level promotion adjustments are netted.                                                                                                                                                                                                                                                                     |
| **Refunds**                   | **NOT deducted.** SFCC tracks refunds via separate Return / Credit objects on the Orders API. The original order's `order_total` does not change after a refund. Use the [Refund Rate](/nerve-centre/kpi-cards/salesforce-commerce-cloud/refund-rate) card for the leakage layer.                                                                          |
| **Cancelled / voided orders** | Included if SFCC kept the order record. SFCC has rich order statuses (`CREATED`, `NEW`, `OPEN`, `COMPLETED`, `CANCELLED`, `FAILED`, `REPLACED`, `REPLACEMENT`); this card sums all. To see "realised cash", filter by `confirmation_status = CONFIRMED` and `status = COMPLETED`.                                                                          |
| **Currency**                  | **Multi-currency, multi-locale, no FX conversion.** SFCC realms commonly run multiple sites (`siteId`), each with its own currency and locale (en\_US, en\_GB, de\_DE, fr\_FR, ja\_JP). This card sums `order_total` blindly across sites. For a realm-wide single-currency view, use the per-site filter or the (planned) base-currency card.             |
| **Channels / sources**        | **Multi-site, multi-locale by design.** SFCC's killer feature is one realm hosting many storefronts, this card sums every site (DTC US, DTC UK, B2B, headless React storefront via SCAPI, etc.). Per-site reporting is the default operational read.                                                                                                       |
| **Time window**               | `30D vsP` (default 30D vs the prior 30D)                                                                                                                                                                                                                                                                                                                   |
| **Alert trigger**             | `drop >15% WoW`, driven by `sentiment_key: revenue_trend`                                                                                                                                                                                                                                                                                                  |
| **Roles**                     | owner, marketing, finance                                                                                                                                                                                                                                                                                                                                  |

## Calculation

Calculated automatically from your Salesforce Commerce Cloud data. See the At a glance summary above for what the metric tracks and the worked example below for a typical reading.

## Worked example

A Fortune-500 fashion retailer running on Salesforce Commerce Cloud B2C, four DTC sites (US, UK, DE, JP), one B2B portal, and a headless React storefront on SCAPI for a sub-brand. The 30-day window covers 14 Mar 26 to 12 Apr 26.

| `siteId`                                      | Site / locale                       | Currency | Orders      | Avg `order_total` | Site revenue                                            |
| --------------------------------------------- | ----------------------------------- | -------- | ----------- | ----------------- | ------------------------------------------------------- |
| `RefArch-US`                                  | US DTC, en\_US                      | USD      | 184,200     | \$128             | \$23,577,600                                            |
| `RefArch-UK`                                  | UK DTC, en\_GB                      | GBP      | 62,400      | £108              | £6,739,200                                              |
| `RefArch-DE`                                  | Germany DTC, de\_DE (incl. EU MwSt) | EUR      | 41,800      | EUR118            | EUR4,932,400                                            |
| `RefArch-JP`                                  | Japan DTC, ja\_JP                   | JPY      | 28,600      | JPY16,800         | JPY480,480,000                                          |
| `RefArch-B2B`                                 | B2B trade portal (account-priced)   | USD      | 1,420       | \$4,850           | \$6,887,000                                             |
| `Headless-Subbrand`                           | Sub-brand on SCAPI / React          | USD      | 12,800      | \$94              | \$1,203,200                                             |
| **Total Revenue (this card, mixed currency)** |                                     |          | **331,220** |                   | **\$31.6M USD + £6.7M GBP + EUR4.9M EUR + JPY480M JPY** |

Three things to notice:

1. **The mixed-currency total is operationally meaningless on its own.** SFCC's strength is multi-site, multi-locale, multi-currency. Summing `order_total` across them without FX produces a number with four units of measure stitched together. **Enterprise SFCC merchants always report per-site or in a single base currency.** A realm-wide rollup card in base currency is on the connector roadmap; for now treat this card as a navigation surface and pin per-site panels for operational reads.
2. \*\*B2B revenue ($6.9M) is 4% of order volume but 22% of US-currency revenue.** Trade portal AOV ($4,850) is 38x DTC US AOV (\$128). On enterprise SFCC realms B2B portals are commonly larger than DTC sites by gross revenue. A single missing B2B order can move the headline; pair this card with [Total Orders](/nerve-centre/kpi-cards/salesforce-commerce-cloud/total-orders) and per-site filtering.
3. **The headless sub-brand on SCAPI is a separate `siteId` even though it ships from the same warehouse.** SFCC's React Storefront (PWA Kit) and any custom headless storefront authenticate via SCAPI but are still a `siteId` from a reporting standpoint. This is the right model, the headless front end is a different brand from the legacy ISML sites and should be measured separately.
4. **The 30-day prior US revenue was \$24,140,000.** US DTC is down 2.3% vsP, well below the `drop >15% WoW` alert threshold. Vortex IQ Nerve Centre stays quiet, but pinning per-site panels reveals UK is up 4% while DE is down 7% (a country-specific pattern that the realm-wide headline hides).

## Sibling cards merchants should reference together

| Card                                                                                                 | Why pair it with Total Revenue                                                                                                                                                    |
| ---------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Average Order Value](/nerve-centre/kpi-cards/salesforce-commerce-cloud/average-order-value)         | Total Revenue / Order Count = AOV. Tells you whether revenue moved on volume or basket size. SFCC B2B AOV is typically 30-50x DTC AOV; mix shifts move the headline meaningfully. |
| [Total Orders](/nerve-centre/kpi-cards/salesforce-commerce-cloud/total-orders)                       | The other half of the equation. If revenue moves but order count is flat, basket size changed.                                                                                    |
| [Refund Rate](/nerve-centre/kpi-cards/salesforce-commerce-cloud/refund-rate)                         | This card is **gross**. Refund Rate tells you how much of it leaks back via Returns / Credit Memos.                                                                               |
| [Conversion Rate](/nerve-centre/kpi-cards/salesforce-commerce-cloud/conversion-rate)                 | Per-site CR is the right granularity for SFCC, a realm-wide CR is rarely meaningful when sites have different traffic mixes.                                                      |
| [Top Products by Revenue](/nerve-centre/kpi-cards/salesforce-commerce-cloud/top-products-by-revenue) | Tells you *which* SKUs drove revenue. Useful for cross-locale read, the same product can sell at very different rates in US vs JP.                                                |
| [Out-of-Stock Products](/nerve-centre/kpi-cards/salesforce-commerce-cloud/out-of-stock-products)     | OOS in SFCC is per-inventory-list, not per-site. A stock-level shortage at the shared warehouse hits every site simultaneously.                                                   |
| [`adobe_commerce.total_revenue`](/nerve-centre/kpi-cards/adobe-commerce/total-revenue)               | Closest enterprise-tier peer for SFCC, both support multi-store, multi-locale, multi-currency. Documentation cross-link only.                                                     |
| [`shopify.total_revenue`](/nerve-centre/kpi-cards/shopify/total-revenue)                             | Same metric on Shopify. Useful when an SFCC merchant is evaluating a re-platform or running a Shopify Plus pop-up shop alongside the SFCC realm.                                  |

## Reconciling against the vendor's own dashboard

**Where to look in Business Manager:**

SFCC's admin tool is **Business Manager**, accessed at a per-realm URL like `https://business.demandware.net/on/demandware.store/Sites-Site/default/ViewApplication-DisplayWelcomePage` or the modern `https://<realm>.business.demandware.net`. Sandbox realms use a different host (the realm-staging or realm-development pattern).

The closest report is **Merchant Tools, Site, Reports & Dashboards, Sales** for any single site, or the cross-site **Reports & Dashboards, Sales** view if your role has multi-site read. Set the same date range, ensure the **Status** filter is set to "All" (not just COMPLETED), and look at **Total Sales**.

Other Business Manager views that *look* like the same number but aren't:

* **Reports & Dashboards, Sales (per-site)**: matches this card *for that site only*.
* **Reports & Dashboards, Returns**: returns / refunds total, not revenue.
* **Order Search, filtered by date**: counts orders, also lets you sum `order_total` via export.
* **Pricing & Promotion reports**: revenue attributed to specific promotions, narrower than this card.

For multi-realm enterprise customers (e.g. RefArch-Production and RefArch-Staging), be sure you're comparing the same realm; sandbox order data should never appear in this card on a production-only Vortex IQ workspace.

**Why our number may legitimately differ from Business Manager:**

| Reason                                                                                                                                                                                                                                 | Direction of divergence                        |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------- |
| **Time-zone**. Business Manager site reports run in the site's configured time zone (per Site preferences, often US Eastern or local locale time); Vortex IQ runs on UTC by default. Boundary days off.                                | ±1 day at boundary                             |
| **Multi-currency rollup**. Business Manager Sales reports per-site report in the site's currency; cross-site rollup uses the **base currency** (configured on the realm). Vortex IQ sums `order_total` in display currency without FX. | Material for international realms              |
| **Site filter scope**. Business Manager defaults to the currently-selected site; Vortex IQ sums every site unless filtered.                                                                                                            | Vortex IQ higher than per-site BM report       |
| **`CANCELLED` and `FAILED`**. Business Manager Sales reports filter status by default; Vortex IQ includes everything unless filtered. The Reports & Dashboards "All" filter matches Vortex IQ behaviour.                               | Vortex IQ higher than filtered BM              |
| **Order export lag**. SFCC's data warehouse / Reports & Dashboards has a known 5-30 minute lag from real-time order placement; SCAPI / OCAPI returns near-real-time.                                                                   | Vortex IQ slightly higher for current-day data |
| **B2B account orders**. Some B2B-only sites use a separate workflow with delayed confirmation (`confirmation_status = NOT_CONFIRMED`); whether to include in revenue is an operational decision.                                       | Either, depends on filter                      |

**Cross-connector reconciliation (when the merchant has connected payment processors and analytics):**

These connectors see *the same transactions through different lenses*. Divergence is a data-quality signal worth investigating.

| Card                                                                                           | Expected relationship                                               | What causes legitimate divergence                                                                                                                                                        |
| ---------------------------------------------------------------------------------------------- | ------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [`stripe.stripe_total_revenue`](/nerve-centre/kpi-cards/stripe/total-charge-volume)            | Stripe is typically a small subset of SFCC Total Revenue            | SFCC enterprise merchants typically use multiple payment service providers (CyberSource, Adyen, Braintree, Worldpay, PayPal). Stripe is usually one of several, never the whole picture. |
| [`cybersource.cybersource_total_revenue`](/nerve-centre/cybersource/cybersource_total_revenue) | CyberSource is the most common SFCC PSP and may match a large share | CyberSource and Adyen have native SFCC LINK cartridges; expect them to be the dominant processors on legacy SFCC implementations.                                                        |
| [`google_analytics.ga_revenue_trend`](/nerve-centre/kpi-cards/google-analytics/revenue-trend)  | GA4 \~ SFCC Total Revenue x (1 − tracking gap)                      | GA4 typically misses 10, 25% of orders due to ad blockers, cookie rejection, and tag-fire failures. **Treat SFCC as the source of truth for revenue.**                                   |

**Net of all processors:** if you sum CyberSource + Adyen + PayPal + Worldpay + any other payment connectors, the total should sit very close to this card. A persistent gap > 2% means either a payment processor is missing from your Vortex IQ workspace, or one of them is double-counting refunds.

***

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

  The same definition of Total Revenue lives on other commerce platforms. This is **not a reconciliation**, your SFCC realm doesn't have a parallel store on Shopify or BigCommerce or Adobe Commerce to compare numbers against. These cross-links exist so agencies running multi-platform client books can navigate between identical metrics across the docs.

  * [`adobe_commerce.total_revenue`](/nerve-centre/kpi-cards/adobe-commerce/total-revenue), closest enterprise-tier peer
  * [`shopify.total_revenue`](/nerve-centre/kpi-cards/shopify/total-revenue), useful for Shopify Plus comparisons
  * [`bigcommerce.total_revenue`](/nerve-centre/kpi-cards/bigcommerce/total-revenue), enterprise BC implementations
</details>

## Known limitations / merchant FAQs

**Why does this card show a single mixed-currency number when our realm runs five sites in five currencies?**
SFCC's strength is multi-site, multi-locale, multi-currency, and the archetype-default view sums `order_total` blindly. The number is operationally meaningless on its own at the realm level. Two practical workarounds today: (1) pin per-site panels in the Nerve Centre so each site reads in its native currency, and (2) export the per-site rows and roll them up in your finance system using your own spot or month-end FX rates. A base-currency rollup card is on the connector roadmap for this reason.

**Which SFCC API does Vortex IQ read from, SCAPI or OCAPI?**
Both, depending on what's available in the realm. SCAPI (Salesforce Commerce API) is the modern REST surface that Salesforce now positions as the long-term path; OCAPI (Open Commerce API) is the legacy surface, still widely used on older realms. The card reads order data via whichever is configured during the connector setup. Field shapes are essentially equivalent for the headline `order_total`.

**Why are there so many order statuses in SFCC and which ones count as revenue?**
SFCC's order lifecycle is rich because enterprise merchants use it for B2B, subscriptions, replacements, and managed-checkout flows. Statuses include `CREATED`, `NEW`, `OPEN`, `COMPLETED`, `CANCELLED`, `FAILED`, `REPLACED`, `REPLACEMENT`. The card sums all of them. For "realised cash" (i.e. orders the merchant will actually invoice for), filter to `confirmation_status = CONFIRMED` and `status IN [OPEN, COMPLETED]` and exclude `REPLACED` (the original of a replacement pair). Vortex IQ exposes this filter in the per-card config.

**My BI team's number from the SFCC data warehouse is different. Who is right?**
SFCC's data warehouse (Reports & Dashboards) has a 5 to 30 minute lag from real-time API and applies its own status filters. Treat SCAPI / OCAPI as the source of truth for "what the customer paid right now" and the data warehouse as the right tool for governed historical reporting. They will reconcile within 1% for windows older than 24 hours.

**Does this include B2B trade-portal revenue at account-priced contract rates?**
Yes. SFCC B2B sites use the same Order object as B2C, just with `customerType = registered_b2b` and account-priced line items. Trade-portal revenue is included by default, and on enterprise realms it is often the dominant revenue stream by basket size (typical B2B AOV is 30 to 50 times DTC AOV). Pair with [Total Orders](/nerve-centre/kpi-cards/salesforce-commerce-cloud/total-orders) to detect mix shifts.

**The Salesforce account team showed us a number from "Reports & Dashboards" that doesn't match. Why?**
Reports & Dashboards is a per-site report by default; Vortex IQ aggregates every site in the realm. Click into a single site in the Salesforce report and compare against a per-site filter in Vortex IQ. The two should match within rounding. The mismatch is almost always (a) site filter scope, (b) status filter ("All" vs "Confirmed only"), or (c) timezone (BM uses site-local time, the card uses UTC).

**We're considering re-platforming from SFCC to Shopify Plus / Adobe Commerce. Will this card help me decide?**
Indirectly. The card gives you the gross revenue baseline. For a re-platform decision, you need the cost-of-running-SFCC view (license + cartridge maintenance + B2C Cloud entitlements) divided by this revenue, and the effort estimate to migrate cartridges, ISML pages, and SCAPI consumers. Vortex IQ's role is to give you the trustworthy revenue baseline and ongoing parity tracking once a migration is under way. See `adobe_commerce.total_revenue` and `shopify.total_revenue` for the parallel docs.

**Why does the card show a small but persistent gap from CyberSource / Adyen totals?**
Three usual reasons. (1) **Refund timing.** SFCC `order_total` does not change after a refund; the payment processor's number does. Over a 90-day window the gap closes, in a 7-day window it can be 1 to 3%. (2) **Authorisation-only orders.** Some flows (e.g. "Save card for later", store credit redemptions) hit SFCC as orders without a full payment-processor charge. (3) **Multi-processor orders.** A single SFCC order paid part-PayPal-part-credit-card lands in two processors but one SFCC row. The card sums the SFCC row once.

**How does SFCC handle subscription / repeat-purchase revenue?**
SFCC does not have native subscriptions; merchants use cartridges (Subscribe Pro, Ordergroove, Bold) to layer recurring billing on top. Each recurring charge is a separate SFCC order with its own `order_total`, so a customer paying $20/month for 12 months shows up as 12 orders summing to $240. The card sums them naturally.

***

### Tracked live in Vortex IQ Nerve Centre

*Total Revenue* is one of hundreds of KPI pulses Vortex IQ tracks across Salesforce Commerce Cloud 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.
