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

# Return Status, Shopify

> Return Status for Shopify stores. Tracked live in Vortex IQ Nerve Centre. How to read it, why it matters, and how to act on it.

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

## At a glance

> A breakdown of returns in the window by their `Return.status` value (`OPEN`, `IN_PROGRESS`, `RESTOCKED`, `CLOSED`, `DECLINED`, `CANCELLED`). Tells operations whether returns are flowing through the workflow or piling up in a state.

|                               |                                                                                                                                                                                                                                      |
| ----------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **What it counts**            | `COUNT(returns) GROUP BY status`. Each return-record (one per RMA, not per line item) is one count regardless of value. Shopify's native Returns API surfaces this; pre-Returns-API stores only see refunds, not returns explicitly. |
| **VAT / tax treatment**       | Not applicable, count metric.                                                                                                                                                                                                        |
| **Shipping**                  | Not applicable; return-shipping costs sit on a separate refund-line.                                                                                                                                                                 |
| **Discounts**                 | Not applicable directly; discounts are applied to the original order, returns simply unwind line items.                                                                                                                              |
| **Refunds**                   | A return CAN exist without a refund (waiting for goods to arrive at warehouse) and a refund CAN exist without a return (digital refund, courtesy credit). The two records are linked but not identical.                              |
| **Cancelled / voided orders** | Original order may be `CANCELLED`; the return state is independent.                                                                                                                                                                  |
| **Currency**                  | Multi-currency safe (count metric).                                                                                                                                                                                                  |
| **Channels / sources**        | Returns originate from any channel: online store, POS, B2B. POS returns often skip the Returns API entirely (in-person refund at the till); those won't appear here.                                                                 |
| **Time window**               | `30D` (default rolling 30D, based on return-creation date)                                                                                                                                                                           |
| **Alert trigger**             | None on the card itself; pair with [Refund Rate](/nerve-centre/kpi-cards/shopify/refund-rate) for trend alerting.                                                                                                                    |
| **Roles**                     | owner, operations                                                                                                                                                                                                                    |

## Calculation

Calculated automatically from your Shopify 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 UK womenswear DTC brand on Shopify Plus. Returns API enabled. 30D window 12 Apr 26 to 12 May 26.

| Return status              | Count   | Share    | Note                                                   |
| -------------------------- | ------- | -------- | ------------------------------------------------------ |
| `OPEN`                     | 142     | 23.4%    | Customer raised RMA; goods not yet at warehouse        |
| `IN_PROGRESS`              | 88      | 14.5%    | Goods received; awaiting inspection / restock decision |
| `RESTOCKED`                | 311     | 51.2%    | Inspected and restocked; refund issued                 |
| `CLOSED`                   | 56      | 9.2%     | Resolved without restock (damaged, refund only)        |
| `DECLINED`                 | 4       | 0.7%     | Returned outside policy window                         |
| `CANCELLED`                | 6       | 1.0%     | Customer changed mind; kept item                       |
| **Total returns (window)** | **607** | **100%** |                                                        |

Six things to notice:

1. **The `OPEN` bucket is the customer-experience risk.** 142 customers are sitting on returns they've raised but not posted (or posted, not yet arrived). Every day a return sits open, customer-service volume rises. If the bucket grows week-over-week, the returns label flow is jamming.
2. **The `IN_PROGRESS` bucket is the operations risk.** 88 returns received but not processed. This is real warehouse work-in-progress. Pair with warehouse capacity reports; if `IN_PROGRESS` grows >2× normal, the QC team is over capacity.
3. **`RESTOCKED` share is the health metric.** 51% restocked-of-total is healthy for fashion (some items can't be resold: worn, damaged, customer-soiled). Below 35% suggests quality control is too strict or the QC team is being conservative on damage flags.
4. **`DECLINED` is small but important.** 4 declined returns is the legitimate "no" count, customers who tried to return outside policy. If `DECLINED` exceeds 5% of total, your return policy may be ambiguous; customers think they're entitled and learn they're not. That generates negative reviews.
5. **`CANCELLED` returns aren't refunds.** Customer raised the return then changed their mind (or didn't post). Treat these as signal: high cancellation rate means your return process is over-friction or customers are using "raise return" as a bargaining chip with support.
6. **POS returns are missing.** If the brand operates a London pop-up doing in-store returns, those refunds happen at the till and bypass the Returns API entirely. The full returns picture combines this card with the in-store refund count.

## Sibling cards merchants should reference together

Return status is the workflow view. The companions:

| Card                                                                               | Why pair it with Return Status                                                                                      |
| ---------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
| [Refund Rate](/nerve-centre/kpi-cards/shopify/refund-rate)                         | The £-weighted view. Returns = process; refunds = financial outcome. Both matter.                                   |
| [Refund Count](/nerve-centre/kpi-cards/shopify/refunded-orders)                    | Order-count companion. Returns can be more than refunds (multiple refunds per return) or fewer (no-refund returns). |
| [Refund Value](/nerve-centre/kpi-cards/shopify/refund-value)                       | The £ side of the same coin. Pair to compute average return value.                                                  |
| [Refunds Over Time](/nerve-centre/kpi-cards/shopify/refunds-over-time)             | Trend overlay. A spike in `OPEN` returns this week predicts a refund-value spike in 1 to 3 weeks.                   |
| [Top Refunding Customers](/nerve-centre/kpi-cards/shopify/top-refunding-customers) | Customer-level drill-down on the people raising returns.                                                            |
| [Refund-Rate Spike Alert](/nerve-centre/kpi-cards/shopify/refund-rate-spike-alert) | Real-time alert when return-rate goes above 2× baseline.                                                            |
| [Top Products by Revenue](/nerve-centre/kpi-cards/shopify/top-products-by-revenue) | Cross-reference, are returns concentrated on top-revenue SKUs (a quality issue) or scattered (random fit/changes)?  |
| [Cancellation Rate](/nerve-centre/kpi-cards/shopify/cancellation-rate)             | Cancellations and returns are both order-failure modes; their patterns often diverge meaningfully.                  |

## Reconciling against the vendor's own dashboard

**Where to look in Shopify Admin:**

> **Shopify Admin → Orders → Returns** (Shopify Plus / Shopify with Returns enabled)

The Returns inbox shows every return record with status filter chips. Sum by status, the totals should match this card to within sync-lag tolerance (5 to 15 minutes).

Older Shopify stores without the native Returns API see only refunds, not returns. For those merchants:

* **Orders → Filter by `Refunded`**: lists orders with at least one refund. Not exactly the same population (returns can be open without refund).
* **Reports → Returns**: legacy, less rich than the Returns inbox.
* **Apps like Loop Returns, Returnly, ReturnLogic, AfterShip Returns**: most large brands run a returns app. Those apps have their own status taxonomies; reconciliation against this card requires mapping the app's statuses to Shopify's 6 native states.

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

| Reason                      | Direction              | Why                                                                                                                                                                                                |
| --------------------------- | ---------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Returns API enabled?**    | If not, ours = 0       | Stores on Shopify pre-Returns-API see no return objects. The card will report empty buckets even when refunds are happening. Upgrade plan or migrate to a returns app that creates Return objects. |
| **POS returns**             | Ours lower             | In-store till refunds typically bypass the Returns API. They appear as refunds in the order but not as Return records.                                                                             |
| **Returns app integration** | Either                 | If Loop / Returnly creates a Return in Shopify, the status maps but with custom labels (e.g. "Awaiting Pickup" → `OPEN`). Some apps don't write back.                                              |
| **Time zone**               | Boundary days          | UTC vs store time zone.                                                                                                                                                                            |
| **Sync lag**                | Ours lower for "today" | Most-recent 5 to 30 minutes of return-state updates may not be in the index.                                                                                                                       |

**Cross-connector reconciliation:**

| Card                                                                                  | Expected relationship | What causes legitimate divergence                                                                                            |
| ------------------------------------------------------------------------------------- | --------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| [`stripe.stripe_disputes`](/nerve-centre/stripe/stripe_disputes)                      | Indirect              | A high `OPEN` return count often precedes Stripe disputes if returns aren't refunded promptly; a 7 to 14-day lag is typical. |
| [`zendesk.zd_ticket_volume`](/nerve-centre/zendesk/zd_ticket_volume) (when connected) | Indirect              | Customer-service tickets correlate with `OPEN` returns; a backlog here typically inflates ticket volume by 10 to 30%.        |

***

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

  * [`bigcommerce.return_status`](/nerve-centre/kpi-cards/bigcommerce/return-status)
  * [`adobe_commerce.return_status`](/nerve-centre/kpi-cards/adobe-commerce/return-status)
</details>

## Known limitations / merchant FAQs

**My card shows zero returns. Are we really not getting any?**
Almost certainly not. Two likely causes:

1. **Returns API not enabled on your plan.** Stores on older Shopify plans or stores that use third-party returns apps without write-back may see zero native Return records, even when refunds are happening. Confirm by visiting Shopify Admin → Orders → Returns; if the inbox doesn't exist or is empty, the API isn't writing.
2. **All returns happen in-store.** POS-based brands often process returns at the till, which creates a refund but not a Return record. Pair with [Refund Count](/nerve-centre/kpi-cards/shopify/refunded-orders) to verify refunds are happening.

**What's a healthy `RESTOCKED` share?**
Category-dependent:

* **Apparel and footwear**: 50 to 75%. Tried-on returns can mostly be resold.
* **Beauty and skincare**: 5 to 20%. Hygiene rules prevent restock.
* **Furniture and homewares**: 30 to 60%. Damage during transit is common.
* **Electronics**: 60 to 85%. Modern products typically resell after light QC.

If your `RESTOCKED` share is below the lower bound, your QC team may be over-strict or your return-condition rules are too tight.

**Why does my `OPEN` bucket grow on Mondays?**
Customers raise returns over the weekend (when they have time at home), but warehouse processing happens weekday-only. Mondays show every weekend-raised return that hasn't moved yet. The bucket clears Tue-Wed. Structural; don't react.

**Should I refund before goods arrive?**
Trade-off question. Refunding-on-RMA-creation is great for customer experience (instant trust) but exposes the brand to return-fraud (RMA raised, no goods sent, refund taken). Most brands sit somewhere in the middle: refund on receipt at warehouse, with an exception path for VIP customers or low-value items. The `OPEN` count is your population for this decision; if it's persistently high, the policy is friction.

**Why are some returns `CLOSED` not `RESTOCKED`?**
`CLOSED` means resolved without restock: item damaged in transit, customer-soiled, missing parts. The refund still went out; the goods can't be resold. Pair with destruction / write-off cost: high `CLOSED` share is direct margin loss.

**What's the difference between `CANCELLED` and `DECLINED`?**

* `CANCELLED`: customer raised the return then withdrew it (changed mind, kept item). Often happens when the return process feels too friction-y.
* `DECLINED`: brand rejected the return (outside policy window, incorrect items, fraud suspicion). The customer can't push it through.

Customer-experience scores typically fall most around `DECLINED` returns; reviewers vent online when refused.

**My subscriptions store, do recurring billings count if returned?**
Each subscription billing is a separate order. If a customer returns the November box, that creates one Return for that one order; subsequent boxes in October/December are unaffected. The Return record links only to the specific billing.

**Action playbook based on bucket health:**

1. **`OPEN` growing**: print-label friction; investigate whether your returns portal is failing to issue labels.
2. **`IN_PROGRESS` growing**: warehouse capacity issue; escalate to operations.
3. **`RESTOCKED` share dropping**: QC team change or policy tightening; confirm intentional or fix.
4. **`CLOSED` rising**: damage rate up; investigate transit packaging and returns-shipment quality.
5. **`DECLINED` >5%**: policy clarity issue; rewrite returns FAQ in plain language.
6. **`CANCELLED` >3%**: customer-changed-mind rate too high; returns process too cumbersome or customers using as bargaining chip.

***

### Tracked live in Vortex IQ Nerve Centre

*Return Status* 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.
