> ## 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, Adobe Commerce

> Top Refunding Customers for Adobe Commerce 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

> Customers and B2B Companies ranked by refund value over the rolling 90-day window. Helps Operations spot serial returners, fraud-pattern customers, and damaged-shipment-cluster B2B accounts. The card sits between "this is a normal returns operation" and "this is a possible fraud or chronic dispute" depending on context, the same customer at #1 means very different things in DTC vs B2B.

|                         |                                                                                                                                                                                                                                                                                                                                    |
| ----------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **What it counts**      | For each `customer_id` (and Adobe Commerce `company_id` where the B2B module is enabled): `SUM(creditmemo.grand_total)` and `COUNT(creditmemo)` over the 90-day window, ranked descending by sum. Top 20 returned by default. Guests aggregated by email address (`customer_email` on the order) since they have no `customer_id`. |
| **API field**           | `customer_id`, `customer_email`, `extension_attributes.company_attributes.company_id`, joined to `creditmemo.grand_total` and `creditmemo.created_at` from `GET /rest/V1/creditmemos`.                                                                                                                                             |
| **VAT / tax treatment** | Tax-inclusive (`grand_total`). For UK/EU merchants this is the customer-paid figure including refunded VAT. Net-of-tax view available via the breakdown column.                                                                                                                                                                    |
| **Shipping inclusion**  | Included in `grand_total`. Shipping-only Credit Memos contribute their shipping value.                                                                                                                                                                                                                                             |
| **Discounts**           | Already deducted in `grand_total`.                                                                                                                                                                                                                                                                                                 |
| **Cancelled orders**    | Excluded (no Credit Memo on cancel).                                                                                                                                                                                                                                                                                               |
| **Guest customers**     | Aggregated by `customer_email` since `customer_id IS NULL` for guests. A guest using two different emails (intentionally or not) appears as two rows. This is the most common false-negative for fraud detection.                                                                                                                  |
| **B2B Companies**       | When the Adobe Commerce B2B module is enabled, the card aggregates by `company_id` rather than per-buyer-within-company. A janitor and a head office buyer at the same hospital roll up to "Riverside Hospital Group".                                                                                                             |
| **Refund-rate column**  | Each top-N row shows `refund_value ÷ customer_lifetime_revenue` so you can distinguish "this customer refunds 80% of orders" (likely fraud or wrong-fit) from "this customer refunds 8%" (legitimate big-spender with normal return rate).                                                                                         |
| **Currency**            | Mixed-currency `grand_total` for ranking; `base_grand_total` available for FX-neutral.                                                                                                                                                                                                                                             |
| **Multi-store scope**   | All Store Views by default; per-Store-View slice available.                                                                                                                                                                                                                                                                        |
| **Time window**         | `90D` rolling.                                                                                                                                                                                                                                                                                                                     |
| **Alert trigger**       | None on this card directly; rely on watchlist rules in the Vortex IQ workspace (e.g. flag any customer whose 90D refund rate is >40% AND refund count is >3).                                                                                                                                                                      |
| **Roles**               | owner, operations                                                                                                                                                                                                                                                                                                                  |

## Calculation

Calculated automatically from your Adobe Commerce 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 B2B+DTC homewares merchant on Adobe Commerce 2.4.7 with B2B Companies enabled. Snapshot 13 May 26, 90-day rolling.

**Top 10 refunding customers/companies:**

| Rank | Customer / Company            | Type      | Refund value (90D) | Refund count | LTV (90D) | Refund rate (% of LTV) | Diagnosis                                     |
| ---- | ----------------------------- | --------- | ------------------ | ------------ | --------- | ---------------------- | --------------------------------------------- |
| 1    | Riverside Hospital Group      | B2B       | \$24,300           | 4            | \$284,000 | 8.6%                   | Normal for high-volume B2B                    |
| 2    | Westfield Schools District    | B2B       | \$18,100           | 3            | \$156,000 | 11.6%                  | Slightly elevated; uniform-line sizing issue  |
| 3    | `sara.h@personalemail.com`    | Guest DTC | \$4,820            | 11           | \$5,940   | 81%                    | **Fraud watch**                               |
| 4    | LeisureGroup Plc              | B2B       | \$4,210            | 2            | \$74,000  | 5.7%                   | Normal                                        |
| 5    | mike\_t\@... (registered DTC) | DTC       | \$3,640            | 7            | \$4,180   | 87%                    | **Fraud watch**                               |
| 6    | HotelChain UK                 | B2B       | \$3,180            | 1            | \$112,000 | 2.8%                   | Single high-AOV return; benign                |
| 7    | claire.j\@... (registered)    | DTC       | \$2,940            | 12           | \$11,200  | 26%                    | Serial returner, not fraud (consistent buyer) |
| 8    | StateGov Procurement          | B2B       | \$2,710            | 1            | \$87,000  | 3.1%                   | Normal                                        |
| 9    | jen.k\@... (registered)       | DTC       | \$2,180            | 9            | \$3,400   | 64%                    | **Fraud watch**                               |
| 10   | tony.r\@... (registered)      | DTC       | \$1,940            | 6            | \$7,200   | 27%                    | Serial; not fraud                             |

**Insight pattern:**

1. **B2B-dominated top of the list (5 of top 10).** This is normal for a B2B-leaning merchant; high-volume accounts produce high-value returns even at low rates.
2. **Three fraud watch flags.** Customers at ranks 3, 5, and 9 have refund rates above 60% with multiple Credit Memos. That is a fraud pattern: they buy, return, repeat. Often reselling on secondary markets, sometimes "wardrobing" (wear once, return). Action: add to a watchlist and require manual approval on next order.
3. **Serial returners that are NOT fraud (ranks 7 and 10).** Refund rates of 26-27% with consistent buying behaviour signal a customer who routinely buys multiple items to choose from, then returns the rest. This is "try-before-you-buy" behaviour, common in apparel. Customer service decision: keep them (they are net positive) or block them (they are net negative once handling cost is included). Compute net contribution: `LTV × gross_margin − handling_cost × refund_count`. For most DTC merchants, a 25% refund rate at \$400+ of net LTV is still profitable.
4. **Westfield Schools at #2, refund rate 11.6%.** Higher than the B2B norm of 2-5%. Drilling into [Top Refunded Products](/nerve-centre/kpi-cards/adobe-commerce/top-refunding-customers) by-customer view: 14 of 16 returned line items are uniform line items affected by the supplier sizing error. Not their fault; not fraud. Sales should reach out with the corrected sizing and a goodwill credit to retain the relationship.
5. **Cross-link with [Refund Value](/nerve-centre/kpi-cards/adobe-commerce/refund-value):** the top-10 customers here account for $67,920 of $284,600 90-day refund value, or 24%. Pareto-typical; the long tail is healthy normal-customer returns.
6. **Action queue for Operations:** (a) flag the 3 fraud watches for next-order manual review, (b) Sales call to Westfield Schools with sizing correction, (c) audit Riverside Hospital's 4 returns to ensure they were genuine damage claims (B2B fraud is rare but exists).

## Sibling cards merchants should reference together

| Card                                                                                  | Why pair it with Top Refunding Customers                                                                            |
| ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
| [Refund Value](/nerve-centre/kpi-cards/adobe-commerce/refund-value)                   | The aggregate. This card is the per-customer concentration view.                                                    |
| [Refund Rate](/nerve-centre/kpi-cards/adobe-commerce/refund-rate)                     | Overall rate. The customers in this card are the contributors.                                                      |
| [Refund Count](/nerve-centre/kpi-cards/adobe-commerce/refunded-orders)                | Per-customer count vs value: high count + low value = small partial returns; low count + high value = whale events. |
| [Refunds Over Time](/nerve-centre/kpi-cards/adobe-commerce/refunds-over-time)         | Time pattern. A new customer appearing here usually shows up as a single-day spike there.                           |
| [Return Status](/nerve-centre/kpi-cards/adobe-commerce/return-status)                 | Pipeline; many of these customers have open RMAs in addition to closed Credit Memos.                                |
| [Customer Count](/nerve-centre/kpi-cards/adobe-commerce/unique-customers)             | The denominator. Top-10 refunding customers as % of total customers shows concentration.                            |
| [B2B Account Silence](/nerve-centre/kpi-cards/adobe-commerce/b2b-accounts-gone-quiet) | A B2B account on this list whose order cadence stops is a churn-risk red flag.                                      |
| [`klaviyo.high_refund_segment`](/nerve-centre/klaviyo/high_refund_segment)            | Suppression list candidates; remove fraud-watch customers from acquisition email flows.                             |

## Reconciling against the vendor's own dashboard

**Where to look in Adobe Commerce Admin:**

Adobe Commerce does not have a native "Top Refunding Customers" report. Closest equivalents:

> **Reports > Customers > Customers by Number of Orders** is the inverse view (top buyers, not top refunders). No native top-refunders ranking.

To verify any single customer's refund value:

> **Customers > All Customers > \[customer]** > Orders tab. Manually count Credit Memos against that customer's orders. Tedious but exact.

For B2B Companies:

> **Customers > Companies > \[company]** > Orders tab. Same logic at the Company level.

**Why our number may legitimately differ from a manual Admin count:**

| Reason                                                                                                                                                                                                                                                                                                           | Direction of divergence               |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------- |
| **Guest aggregation by email**. A single guest using two emails (e.g. work + personal, typo) splits across rows in this card. The merchant might mentally consolidate them as "the same person" but the data does not.                                                                                           | Card under-aggregates per-real-person |
| **Customer email change**. If a registered customer changes their email in Adobe, historical orders retain the old `customer_email`; the customer record uses `customer_id` which is stable. The card aggregates by `customer_id` for registered customers (correct) but by `customer_email` for guests (lossy). | Inconsistent across registered/guest  |
| **B2B Company aggregation**. The card rolls up to `company_id` when present. A merchant manually checking a single buyer's history will see only that buyer's slice, not the Company total.                                                                                                                      | Card shows higher than per-buyer      |
| **Currency**. The ranking is `grand_total` (mixed currency). For an FX-neutral ranking switch the column to `base_grand_total`.                                                                                                                                                                                  | Material for international            |
| **Time-zone, sync lag**. Standard ±5-15 min sync lag; ±1 day at UTC vs locale boundaries.                                                                                                                                                                                                                        | Minor                                 |

**Cross-connector reconciliation (when these connectors are connected for this merchant):**

| Card                                                                                       | Expected relationship                                                                 | What divergence tells you                                                               |
| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- |
| [`klaviyo.refund_segment_size`](/nerve-centre/klaviyo/refund_segment_size)                 | Klaviyo profiles flagged as "high refund" should overlap with the top-N here          | If Klaviyo has a different list, the suppression flow is out of date; sync the segment. |
| [`google_analytics.refund_attribution`](/nerve-centre/google_analytics/refund_attribution) | GA4 sees only refund events fired by the storefront, not the per-customer aggregation | Do not directly reconcile; GA4 customer identity is unreliable.                         |

***

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

  * [`shopify.top_refunded_customers`](/nerve-centre/shopify/top_refunded_customers)
  * [`bigcommerce.top_refunded_customers`](/nerve-centre/bigcommerce/top_refunded_customers)
</details>

## Known limitations / merchant FAQs

**A guest customer is at #1, can I see their order history?**
Click through on the row to the customer email's order list. Adobe Commerce stores guest orders by `customer_email` and `customer_is_guest=1`. The Vortex IQ workspace renders an aggregated profile by email, including all guest orders matched.

**Why is my B2B Company at #1, isn't that bad?**
Not necessarily. High-volume B2B accounts have high absolute refund value because they have high absolute order value. The refund-rate column normalises: an account with $284k LTV and $24k of refunds is at 8.6%, well within B2B norms. The customers to worry about are the ones with refund rate >40%.

**A customer's `customer_id` changed, why is their history split?**
Customer ID is stable in Adobe Commerce; it doesn't change. What can change is `customer_email`. Registered customers are aggregated by `customer_id`, so an email change doesn't split them. Guests are aggregated by email, so a guest changing emails does split. There is no clean way to merge guest profiles in Adobe.

**Should I block fraud-watch customers from buying?**
Use a graduated response: (1) flag for manual review on next order; (2) require pre-payment via wire transfer (no chargeback risk); (3) blacklist if the pattern repeats. Adobe Commerce supports per-customer blocking via **Customers > All Customers > \[customer]** > Account Information > "Disable account". Use it sparingly; false positives create CS load.

**A wholesale account showed up here for one bulk return, isn't that misleading?**
The card is a snapshot. A single $24k Credit Memo on a $284k LTV account is not a problem. The diagnostic column (refund rate) gives context. Look at it together with the count column; one whale return at 8% rate is benign, four returns at the same rate suggest a pattern.

**Why isn't fraud detection automatic?**
Because the false-positive rate of pure-statistical fraud detection in B2B and certain DTC verticals is too high. A fashion DTC merchant who accepts try-before-you-buy will see legitimate 25-40% refund rates for repeat customers; flagging those automatically would alienate good buyers. The card surfaces the data; the merchant applies context.

**My multi-store, can I see top refunders per Store View?**
Yes. Apply the Store View filter to the card. Useful when, e.g., the US site has different refund norms than the UK site (US allows 90-day returns vs UK statutory 14-day; rates structurally differ).

**Can I export this list to Klaviyo as a suppression segment?**
Yes via the connector to Klaviyo. The fraud-watch flag becomes a Klaviyo profile property; you can build a segment "exclude where vortex\_fraud\_watch = true" and use it on acquisition flows.

**Why does the same customer appear in two rows?**
Three causes: (1) guest using two emails; (2) one email registered, the other not; (3) data quality issue (typo in `customer_email`). The Vortex IQ workspace supports merge-by-email for cases (2) and (3); case (1) cannot be resolved without manual intervention.

***

### Tracked live in Vortex IQ Nerve Centre

*Top Refunding Customers* is one of hundreds of KPI pulses Vortex IQ tracks across Adobe Commerce 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.
