Share of orders moved to CANCELLED status. A fast read on checkout, payment, and fulfilment friction.
At a glance
The proportion of Salesforce Commerce Cloud (SFCC, formerly Demandware) orders that ended up inCANCELLEDstatus during the period, computed asCOUNT(orders WHERE status = CANCELLED) ÷ COUNT(orders). Cancellations are not refunds: a cancellation voids an order before fulfilment completes, whereas a refund reverses money on a shipped order. Watch both, but treat them as separate signals.
| What it counts | COUNT(orders WHERE status = CANCELLED) ÷ COUNT(orders) over the window, pooled across every site (siteId) and locale in the realm. SFCC sets an order to CANCELLED when a shopper, a CS agent in Business Manager, or an automated job voids it before fulfilment. |
| Why it matters | A rising cancellation rate is one of the earliest, cheapest signals of friction: a payment-authorisation problem, a fraud-screening rule that is too aggressive, a stock-sync error that oversells, or a pricing / promotion bug that customers spot at checkout. It moves before refunds do, because cancellation happens pre-fulfilment. |
| Reading the value | A gauge from 0% upward. Lower is better. The realm-wide rate is dominated by the highest-volume site, so per-site reads are the right operational granularity. |
| Cancellation vs refund | A cancellation voids an order in the order workflow (status = CANCELLED); a refund reverses payment on an order that was fulfilled, tracked on separate Return / Credit Memo objects. Use Refund Rate for the post-fulfilment leakage layer. The two rarely move together. |
| What counts as cancelled | Any order SFCC marks CANCELLED, whether triggered by the shopper, a CS agent, a fraud-screening LINK cartridge, or a scheduled job that voids unpaid CREATED orders. FAILED orders (payment-gateway hard failures) are a separate status and are not counted here, see Failed Orders (24h). |
| Currency | n/a, this is an order-count ratio. The denominator pools orders across every currency and locale on the realm. |
| Channels / sources | Multi-site by design. B2B trade portals (typically very low cancellation) and DTC sites (higher, especially where COD or manual-review fraud rules apply) pool together. Per-site filtering is the right operational view. |
| Unit | Percent |
| Time window | 30D vsP (default 30 days vs the prior 30 days) |
| Alert trigger | >3%, driven by sentiment_key: scc_cancellation_rate |
| Sentiment key | scc_cancellation_rate |
| Roles | owner, operations |
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 and one B2B portal. The 30-day window covers 14 Mar 26 to 12 Apr 26. Order data read via SCAPI / OCAPI; statuses confirmed in Business Manager Order Search.siteId | Site / locale | Orders | Orders CANCELLED | Cancellation Rate | vs prior 30D |
|---|---|---|---|---|---|
RefArch-US | US DTC, en_US | 184,200 | 3,130 | 1.7% | 1.6% (up 0.1pp) |
RefArch-UK | UK DTC, en_GB | 62,400 | 1,310 | 2.1% | 2.0% (flat) |
RefArch-DE | DE DTC, de_DE | 41,800 | 1,090 | 2.6% | 2.5% (flat) |
RefArch-JP | JP DTC, ja_JP | 28,600 | 1,830 | 6.4% | 3.1% (up 3.3pp) |
RefArch-B2B | B2B trade portal | 1,420 | 6 | 0.4% | 0.4% (flat) |
| Realm-wide (volume-weighted) | 318,420 | 7,366 | 2.3% | 1.9% |
- The realm headline (2.3%) sits below the
>3%alert, but JP is the story. The Japan site jumped from 3.1% to 6.4% in 30 days, a 3.3pp move that the volume-weighted realm reading almost completely hides. This is the recurring lesson on SFCC: the realm-wide gauge is dominated by the highest-volume site (RefArch-US), so per-site panels are where the operational signal lives. Pin JP as its own panel. - A cancellation spike on one site usually has one of three causes. (a) Payment-authorisation friction, a PSP rule change or a new 3-D Secure flow in CyberSource / Adyen that drops shoppers at the auth step, leaving
CREATEDorders that a scheduled job later voids. (b) Oversell from a stock-sync gap, the inventory record showed available-to-sell but the warehouse could not fulfil, so CS cancels. (c) A fraud-screening rule in a LINK cartridge tuned too aggressively for a specific locale. For JP, the COD-heavy market and stricter fraud rules make (a) and (c) the usual suspects. - B2B cancellation (0.4%) is structurally low and should stay there. Trade orders are buying-team-vetted, scheduled, and often contractually non-cancellable. A B2B cancellation rate climbing above 1% points at a process failure (wrong account pricing, a broken approval workflow), not shopper behaviour.
- Cancellation and refund are different leaks. This realm runs a 12.9% refund rate (see Refund Rate) and a 2.3% cancellation rate. They do not move together: refunds spike on quality / sizing issues after delivery; cancellations spike on payment / stock / fraud friction before fulfilment. Reading them as one number masks both.
Sibling cards merchants should reference together
| Card | Why pair it with Cancellation Rate |
|---|---|
| Refund Rate | The post-fulfilment counterpart. Cancellations void before shipping; refunds reverse after. A site with low cancellation but high refund has a quality / sizing problem, not a checkout problem. |
| Failed Orders (24h) | FAILED and CANCELLED are adjacent failure modes. A payment-gateway issue often shows first as failed orders, then as a wave of cancellations when scheduled jobs void the stuck CREATED orders. |
| Pending Orders (created/new/open) | Cancellations frequently come out of the pending pool. A backlog of CREATED orders that never get paid converts to cancellations downstream. |
| Payment Status Distribution | If cancellation is climbing because of payment friction, the not-paid / authorised share moves first. Read them together to confirm the root cause is payment. |
| Total Orders | The denominator. A cancellation-rate move is only meaningful against the order base; the same percentage on a 200k-order realm is a very different absolute number from a 2k-order one. |
| Conversion Rate | A fraud rule or auth flow tightened to cut cancellations can also cut conversion at checkout. Watch the pair after any payment or fraud change. |
Reconciling against Salesforce Commerce Cloud
Where to look in Business Manager: SFCC’s admin tool is Business Manager, reached at a per-realm URL likehttps://<realm>.business.demandware.net. The most direct way to verify this card is Merchant Tools, Ordering, Order Search, filter Status = Cancelled for a single site and the same date range, then divide by total orders in that window. For a reporting view, Merchant Tools, Site, Reports & Dashboards, Operations breaks orders down by status.
Other Business Manager views that look like the same number but aren’t:
- Order Search filtered to
FAILED: payment hard-failures, a different status, counted by Failed Orders (24h), not here. - Reports & Dashboards, Returns: returns / refunds, the post-fulfilment leak, not cancellations.
- Custom order-status workflows: some realms add custom statuses on top of the standard set; confirm a custom “cancelled-equivalent” status is mapped before comparing.
| Reason | Direction of divergence |
|---|---|
| Time-zone. Business Manager Order Search and reports run in the site’s configured time zone; Vortex IQ runs on UTC by default. Boundary days shift. | ±1 day at boundary |
| Site filter scope. Business Manager defaults to the currently-selected site; Vortex IQ pools every site unless filtered. | Direction depends on per-site mix |
| Custom status mapping. Realms with custom order-status workflows may label a cancellation under a non-standard status that Business Manager reports separately. | Vortex IQ may read lower until the custom status is mapped |
FAILED vs CANCELLED. Some merchants treat payment-failed orders as cancellations in their mental model; this card keeps them separate per SFCC’s status field. | Vortex IQ lower than a “failed + cancelled” hand count |
| Window anchor. This card anchors the numerator on the order’s cancellation event date and the denominator on confirmation date, a slight lag after a cancellation spike. | Either, small except right after a spike |
| Order export lag. SFCC’s Reports & Dashboards warehouse runs 5 to 30 minutes behind real-time; SCAPI / OCAPI is near-real-time. | Vortex IQ slightly higher for current-day data |
Known limitations / merchant FAQs
What is the difference between a cancellation and a refund on SFCC? A cancellation voids an order before fulfilment completes and setsstatus = CANCELLED. A refund reverses money on an order that was fulfilled and is tracked on separate Return / Credit Memo objects. They are different layers and rarely move together: cancellations spike on payment, stock, or fraud friction at or just after checkout; refunds spike on quality and sizing issues after delivery. This card measures only the cancellation layer; use Refund Rate for the other.
Why is my cancellation rate climbing this month?
Three usual causes in order. (1) Payment-authorisation friction, a PSP rule change, a new 3-D Secure flow, or an expired credential in a CyberSource / Adyen LINK cartridge leaving CREATED orders unpaid until a scheduled job voids them. (2) Oversell from a stock-sync gap, the inventory record showed available-to-sell but the warehouse could not fulfil, so CS cancels. (3) A fraud-screening rule tuned too aggressively for a locale. Check Payment Status Distribution first to confirm or rule out payment.
Does this include FAILED orders?
No. FAILED is a distinct SFCC status for hard payment-gateway or fraud-screening failures, counted by Failed Orders (24h). This card counts only CANCELLED. The two are adjacent, a gateway outage often shows first as failed orders and then as a wave of cancellations when jobs void the stuck orders, so read them together.
Does this include B2B cancellations?
Yes. B2B and DTC orders share the same Order object and status field, so B2B cancellations are pooled in. B2B cancellation rates are structurally very low (trade orders are vetted and often contractually non-cancellable), so they pull the realm rate down. Filter out the B2B siteId for a DTC-only view.
What is a “good” cancellation rate on SFCC?
Category and market dependent, but useful rough benchmarks: DTC sites in card-paying Western markets typically run 1 to 3%; markets with cash-on-delivery or stricter fraud rules can run materially higher; B2B trade portals usually sit well below 1%. The >3% alert is a reasonable cross-category default; tune per-site for markets where COD or fraud rules push the baseline up.
Why does Business Manager show a different cancellation rate?
Usually one of three reasons. (1) Site-scope, Business Manager defaults to one site while this card pools the realm. (2) Time-zone, Business Manager uses site-local time while the card uses UTC, so boundary days shift. (3) Custom status mapping, realms with custom order workflows may file cancellations under a non-standard status. Confirm all three before treating a gap as an error.
My cancellation rate dropped suddenly. Is that always good?
Not always. A sudden drop can mean a fraud rule was relaxed too far (watch chargebacks and Refund Rate downstream), or that a scheduled job which voids unpaid CREATED orders stopped running, in which case the cancellations are simply piling up as pending orders instead. Pair this card with Pending Orders (created/new/open) to tell the two apart.
Can a customer-initiated cancellation and a CS-agent cancellation be told apart?
Both end up as CANCELLED in the status field, so this card pools them. SFCC records the actor and reason on the order’s modification history in Business Manager, which is where you go to diagnose a spike: a wave of self-service cancellations from one locale points at checkout or pricing friction; a wave of CS cancellations points at stock or fulfilment.