Skip to main content
Card class: Non-HeroCategory: Ecommerce Platform

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 countsCOUNT(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 treatmentNot applicable, count metric.
ShippingNot applicable; return-shipping costs sit on a separate refund-line.
DiscountsNot applicable directly; discounts are applied to the original order, returns simply unwind line items.
RefundsA 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 ordersOriginal order may be CANCELLED; the return state is independent.
CurrencyMulti-currency safe (count metric).
Channels / sourcesReturns 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 window30D (default rolling 30D, based on return-creation date)
Alert triggerNone on the card itself; pair with Refund Rate for trend alerting.
Rolesowner, 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 statusCountShareNote
OPEN14223.4%Customer raised RMA; goods not yet at warehouse
IN_PROGRESS8814.5%Goods received; awaiting inspection / restock decision
RESTOCKED31151.2%Inspected and restocked; refund issued
CLOSED569.2%Resolved without restock (damaged, refund only)
DECLINED40.7%Returned outside policy window
CANCELLED61.0%Customer changed mind; kept item
Total returns (window)607100%
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:
CardWhy pair it with Return Status
Refund RateThe £-weighted view. Returns = process; refunds = financial outcome. Both matter.
Refund CountOrder-count companion. Returns can be more than refunds (multiple refunds per return) or fewer (no-refund returns).
Refund ValueThe £ side of the same coin. Pair to compute average return value.
Refunds Over TimeTrend overlay. A spike in OPEN returns this week predicts a refund-value spike in 1 to 3 weeks.
Top Refunding CustomersCustomer-level drill-down on the people raising returns.
Refund-Rate Spike AlertReal-time alert when return-rate goes above 2× baseline.
Top Products by RevenueCross-reference, are returns concentrated on top-revenue SKUs (a quality issue) or scattered (random fit/changes)?
Cancellation RateCancellations 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:
ReasonDirectionWhy
Returns API enabled?If not, ours = 0Stores 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 returnsOurs lowerIn-store till refunds typically bypass the Returns API. They appear as refunds in the order but not as Return records.
Returns app integrationEitherIf 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 zoneBoundary daysUTC vs store time zone.
Sync lagOurs lower for “today”Most-recent 5 to 30 minutes of return-state updates may not be in the index.
Cross-connector reconciliation:
CardExpected relationshipWhat causes legitimate divergence
stripe.stripe_disputesIndirectA 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 (when connected)IndirectCustomer-service tickets correlate with OPEN returns; a backlog here typically inflates ticket volume by 10 to 30%.

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 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 or book a demo to see this metric running on your own data.