Share of orders cancelled over the period.
At a glance
Cancelled orders divided by total orders over the rolling 30D window, shown as a gauge. On Ecwid a cancellation is an order that was created but voided before fulfilment, whether the customer changed their mind, the payment failed and the order was closed, or the merchant cancelled because of stock or address problems. A rising cancellation rate on a small store is rarely random; it usually traces to one fixable cause: a flaky gateway, an out-of-stock hero SKU, or a fulfilment delay that pushed customers to bail.
| What it counts | COUNT(orders WHERE status = CANCELLED) / COUNT(orders created) over the rolling 30D window, expressed as a percentage. |
| API endpoint | GET /v3/{store-id}/orders (paged, max 100 per call, OAuth2 with read_orders scope). The engine reads each order’s orderStatus/paymentStatus. Webhook updates fire on order.updated when an order is cancelled. |
| What “cancellation” includes | Customer-requested cancellations, merchant-initiated cancellations (stock, address, suspected fraud), and orders auto-closed after payment never completed where the store treats those as cancelled. |
| What it excludes | Refunds on fulfilled orders (those belong to Refund Rate); orders still AWAITING_PAYMENT that have not yet been closed. |
| Refunds vs cancellations | Distinct. A cancellation voids an order before it ships; a refund returns money on an order that was paid and usually shipped. The two cards measure different stages of the same risk. |
| VAT / tax / shipping | Not relevant; this is an order-count ratio, not a value. |
| Currency | percent. A dimensionless rate. |
| Time window | 30D vsP (rolling 30D vs prior 30D). |
| Alert trigger | >3%. Cancellation rate above three percent over the period flags an operational or payment problem worth investigating. |
| Sentiment | ecwid_cancellation_rate. Inverse gauge: lower is better. |
| Roles | owner, operations. |
Calculation
Calculated automatically from your Ecwid 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 small UK homeware maker running an Ecwid widget on their WordPress site, rolling 30D ending 27 Apr 26.| Metric | This 30D | Prior 30D | Change |
|---|---|---|---|
| Orders created | 140 | 118 | +18.6% |
| Cancelled orders | 7 | 2 | +250% |
| Cancellation Rate (this card) | 5.0% | 1.7% | +3.3pp |
| Reason | Count |
|---|---|
| Out of stock after order (one hero SKU) | 4 |
| Customer changed mind | 2 |
| Wrong shipping address, customer re-ordered | 1 |
Sibling cards merchants should reference together
| Card | Why it matters next to cancellation rate | What the combination tells you |
|---|---|---|
| Refund Rate | The other side of order loss. | Cancellations rising + refunds flat = pre-fulfilment problem; both rising = systemic quality or stock issue. |
| Out-of-Stock Products | Top cancellation cause. | Cancellations clustered on an OOS SKU means you sold stock you did not have. |
| Awaiting Payment Orders | Upstream stage. | Aged awaiting-payment orders that get closed feed the cancellation count; watch the handoff. |
| Avg Order Fulfillment Time | Patience driver. | Slow fulfilment pushes customers to cancel; rising fulfilment time often precedes rising cancellations. |
| Total Orders | The denominator. | Small order counts make the rate volatile; read the absolute cancelled count alongside the percentage. |
| Total Revenue | The cost. | Each cancellation is revenue that nearly closed and then evaporated; a rate spike dents revenue. |
| Conversion Rate | Reputation downstream. | A run of cancellations erodes trust and shows up later as softer conversion. |
| Pending Orders | Backlog link. | A pending backlog that ages out into cancellations connects the two cards directly. |
Reconciling against Ecwid
Where to look in Ecwid’s own dashboard:
Ecwid Control Panel (my.ecwid.com) -> My Sales -> Orders -> filter Order status = “Cancelled”
Count the filtered list against the same window’s total order count to recompute the rate by hand.
Why our number may differ:
| Reason | Direction | Why |
|---|---|---|
| Cancellation vs refund split | Either | We exclude refunds on fulfilled orders from this card and count them under refund rate; some Ecwid views blend the two. Reconcile by status, not by “lost order” feel. |
| Auto-closed unpaid orders | Either | Whether an order that never paid is counted as cancelled depends on store settings; we follow the order’s recorded status. |
| Time zone | Boundary days | Ecwid uses store-local time; we use UTC. The boundary effect on a 30D window is small. |
| Denominator choice | Either | We use orders created in the window; a manual count using orders paid will give a slightly different rate. |
| Sync lag | Marginal | Webhook-driven; a just-cancelled order may take a polling cycle to appear. |
ecwid_cancellation_rate = COUNT(cancelled orders) / COUNT(orders created) over the same 30D window.