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

# Top Refunding Customers, Shopify

> Top Refunding Customers 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

> Top customers ranked by total refund value over the 90-day window. Surfaces the chronic-refunder tier, fraud risk, and customers whose net economic value to the business may be negative.

|                               |                                                                                                                                                             |
| ----------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **What it counts**            | `SUM(refund.amount) GROUP BY customerId ORDER BY sum DESC LIMIT 25`. Refund records linked to the customer; gross refund value (not net of original spend). |
| **VAT / tax treatment**       | Refund amounts inherit store's tax treatment.                                                                                                               |
| **Shipping**                  | Refunded shipping included in refund amount if Shopify refunded shipping line.                                                                              |
| **Discounts**                 | Reflected; refunds for discounted-orders carry the discounted amount.                                                                                       |
| **Refunds**                   | This is the metric.                                                                                                                                         |
| **Cancelled / voided orders** | Excluded; cancellations don't create refund records.                                                                                                        |
| **Currency**                  | Multi-currency arithmetic without FX. Per-currency totals are accurate; cross-currency aggregate is not.                                                    |
| **Channels / sources**        | All channels. POS-till refunds count if Shopify creates refund records (most do).                                                                           |
| **Time window**               | `90D` (default 90D rolling)                                                                                                                                 |
| **Alert trigger**             | None directly; pair with refund-value thresholds for fraud-detection rules.                                                                                 |
| **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. 90D window 12 Feb 26 to 12 May 26.

| Rank             | Customer   | 90D refunds | 90D spend | Refund rate (per customer) | Note                              |
| ---------------- | ---------- | ----------- | --------- | -------------------------- | --------------------------------- |
| 1                | Customer A | £1,840      | £2,520    | 73%                        | Try-on-and-return pattern         |
| 2                | Customer B | £1,420      | £2,860    | 50%                        | Multi-size order with returns     |
| 3                | Customer C | £1,180      | £1,290    | 91%                        | **Fraud red flag**                |
| 4                | Customer D | £980        | £3,640    | 27%                        | Healthy buyer, occasional returns |
| 5                | Customer E | £820        | £1,440    | 57%                        | Try-and-return                    |
| ...              |            |             |           |                            |                                   |
| 25               | Customer Y | £190        | £640      | 30%                        | Threshold                         |
| **Top-25 total** |            | **£14,200** |           |                            | \~22% of all refunds              |

Six things to notice:

1. **Customer C is a fraud signal.** £1,180 refund on £1,290 spend = 91% refund rate. This is either chronic try-and-return (intentional zero-cost wardrobing) or outright fraud (returning empty boxes, returning different items). Investigate the support history.
2. **Customer A is high-risk-but-legitimate.** 73% refund rate is excessive but consistent with apparel-shopping behaviour. Some customers buy 4 sizes intending to return 3. Operationally costly for the brand (return-shipping + restock time + write-offs from damage); flag for "single-size order" policy or requested-size confirmation.
3. **Customer D is normal.** 27% refund rate at £3,640 spend = a regular shopper who refunds occasionally. Healthy customer; the refunds are part of the service experience.
4. **Top-25 = 22% of refund value**. Power-law concentration. The top-5 do most of the damage; addressing them addresses most of the cost.
5. **The list reveals systematic issues.** If 8 of top-25 have similar refund-reason patterns ("size too small", "fit too tight"), the brand has a sizing problem on a specific product family, not a customer problem.
6. **POS in-store returns may be missing.** If a customer brings 3 dresses to the London showroom for in-store returns, those don't always create native Refund records (depends on POS-API config). The list under-counts hybrid-channel refunders.

## Sibling cards merchants should reference together

Top Refunders is the chronic-refunder list. Companions:

| Card                                                                               | Why pair it with Top Refunding Customers                               |
| ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------- |
| [Top Customers (by spend)](/nerve-centre/kpi-cards/shopify/top-customers)          | The flip-side; cross-reference to find apparent VIPs who are net-loss. |
| [Refund Rate](/nerve-centre/kpi-cards/shopify/refund-rate)                         | Aggregate refund rate; this card surfaces who drives it.               |
| [Refund Value](/nerve-centre/kpi-cards/shopify/refund-value)                       | Aggregate £ refunded; this card breaks down by customer.               |
| [Refund Count](/nerve-centre/kpi-cards/shopify/refunded-orders)                    | Order-count companion.                                                 |
| [Return Status](/nerve-centre/kpi-cards/shopify/return-status)                     | Process-state of the return cohort.                                    |
| [Refund-Rate Spike Alert](/nerve-centre/kpi-cards/shopify/refund-rate-spike-alert) | Acute event detection; this card is for chronic-pattern detection.     |
| [Customer Segments](/nerve-centre/kpi-cards/shopify/customer-spend-segments)       | Cohort context; some segments inherently refund more.                  |

## Reconciling against the vendor's own dashboard

**Where to look in Shopify Admin:**

Shopify doesn't expose a top-refunder ranking directly. Reconstruct from:

* **Customers → Filter by *number of refunds* or *refund total***: not directly available; use Shopify customer-segment builder with custom criteria.
* **Reports → Returns**: aggregate; doesn't rank by customer.
* **Apps like Loop Returns / Returnly / AfterShip Returns**: their dashboards expose chronic-refunder rankings.

**Why our number may legitimately differ:**

| Reason                | Direction              | Why                                                                                                                |
| --------------------- | ---------------------- | ------------------------------------------------------------------------------------------------------------------ |
| **Customer linking**  | Either                 | Identity-resolution edge cases (typo'd email, phone-only) sometimes resolve in Shopify Admin and not in our index. |
| **Time zone**         | Boundary               | UTC vs store time zone.                                                                                            |
| **Refund definition** | Either                 | We count all refund records; some apps filter to specific reason codes.                                            |
| **POS in-store**      | Either                 | Till-time refunds may not always create refund records.                                                            |
| **Sync lag**          | Ours lower for "today" | Most-recent 5-15 min may not be in.                                                                                |

**Cross-connector reconciliation:**

| Card                                                                                        | Expected relationship | What causes legitimate divergence                                                                                        |
| ------------------------------------------------------------------------------------------- | --------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| [`stripe.stripe_disputes`](/nerve-centre/stripe/stripe_disputes)                            | Indirect              | Customers who dispute on Stripe overlap with chronic refunders; not all top-refunders dispute, not all disputers refund. |
| [`zendesk.zd_complaint_volume`](/nerve-centre/zendesk/zd_complaint_volume) (when connected) | Indirect              | Chronic refunders may also be heavy support-ticket users.                                                                |
| [`klaviyo.kl_unsubscribe_rate`](/nerve-centre/klaviyo/kl_unsubscribe_rate)                  | Lagging               | After bulk refunds, customers often unsubscribe.                                                                         |

***

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

  * [`bigcommerce.top_refunded`](/nerve-centre/kpi-cards/bigcommerce/top-refunding-customers)
  * [`adobe_commerce.top_refunded`](/nerve-centre/kpi-cards/adobe-commerce/top-refunding-customers)
</details>

## Known limitations / merchant FAQs

**How do I tell the difference between "fraud" and "fashion"?**
Fraud signatures:

* **Refund rate >85%**: nearly every order returned. Legitimate customers don't behave this way.
* **High-velocity short-window orders**: 5-10 orders in 2 weeks then bulk return.
* **Multiple addresses or payment cards**: same customer using different details to avoid detection.
* **Returned-empty-box pattern**: if your warehouse flags items "received but missing", that's deliberate fraud.

Fashion signatures (legitimate but expensive):

* **Refund rate 30-60%**: chronic try-and-return; common in apparel.
* **Single-customer cluster**: same shipping address, same name, normal payment patterns.
* **Multi-size orders**: customer ordered 3 sizes intending to return 2.

For fraud, blacklist; for fashion, communicate (size-guide push, "single size only" policy, restocking fee for >X% return rate).

**My #1 refunder is a VIP. What do I do?**
Conflict resolution. The customer spends £3,000+ but returns £2,000. Net: £1,000 contribution but operationally costly. Three approaches:

1. **Maintain the relationship** if margin on the £1,000 net is acceptable.
2. **Restocking fee policy** for orders with >X% return rate; signals the cost.
3. **Direct conversation** via account manager: "we love your business, but we need to align on returns expectations."

VIPs are sensitive; handle with care.

**Should I blacklist top refunders?**
Conservatively. Blacklisting risks customer-relations PR (a wronged customer goes public). Only blacklist on clear evidence of fraud (empty-box, address mismatch, payment-card fraud-flag). For fashion-pattern refunders, prefer policy adjustment (restocking fee, single-size policy) over blanket bans.

**My subscription store, do recurring refunds count?**
Yes. Each subscription billing's refund creates a refund record; a customer who refunds 3 monthly billings appears with 3 refund records summed.

**Why are some customers anonymous?**
Guest-checkout customers without account creation may show as "Anonymous" or with email-only identifiers. The refund record exists but customer-resolution is incomplete. POS walk-ins are similarly anonymous.

**Action playbook for using Top Refunders:**

1. **Weekly review**: scan top-10 for new entrants. Compare to last week's top-10; new arrivals deserve immediate attention.
2. **Investigate top-3**: pull their order history, refund reasons, and customer-service interactions. Identify pattern.
3. **For fraud-signature**: blacklist via Shopify customer-tagging or block-list, escalate to fraud team if multiple cards involved.
4. **For fashion-signature**: implement policy (restocking fee on >X% return-rate, single-size order suggestion) or proactive communication.
5. **For VIP-conflict**: route to account-management; the spend often justifies the cost, but the conversation matters.
6. **Quarterly category audit**: if top-10 reveals systematic issue (sizing on a specific product family), fix the product / merchandising rather than the customer.

***

### Tracked live in Vortex IQ Nerve Centre

*Top Refunding Customers* 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.
