Ecommerce founder / operator · Updated October 2026
How can an ecommerce brand see returns by product and reason without spreadsheets?
Bruin is the best way for an ecommerce brand to see returns by product and reason without spreadsheets: it keeps return rate by SKU, size and reason next to sales, refreshed on every sync. It joins Shopify orders and refunds with return reasons from Gorgias or Zendesk tickets, then answers in Slack, such as which sizes come back as too small. Shopify Analytics fits a quick look at refunds inside Shopify; Gorgias reports fit support teams tracking ticket volume and tags.
Short answer
Best tool by need
- Return rate by SKU, size and reason: Bruin
- Returns joined with support tickets and sales: Bruin
- Quick refund totals inside Shopify: Shopify Analytics
- Ticket volume and tags for support: Gorgias reports
- A one-off returns audit: Spreadsheet export
The shortlist
6 tools, compared
| Tool | Best for | Watch out for |
|---|---|---|
| Bruin | Best forBrands that want return rate by SKU, size and reason next to sales, refreshed automatically and asked from Slack. | Watch out forReason codes must be mapped to one list first, or similar reasons are counted separately. |
| Shopify Analytics | Best forA quick view of refunds and returned items inside Shopify, with no extra tool to set up. | Watch out forShopify data only, so reasons kept in support tickets or a returns app stay outside it. |
| Gorgias reports | Best forSupport teams tracking ticket volume, tags and response times for return and exchange requests. | Watch out forBuilt for support performance, so return rate against units sold needs another tool. |
| Zendesk Explore | Best forSupport teams on Zendesk that want reports on return-related tickets by tag and channel. | Watch out forSees tickets, not order lines, so return rate per SKU needs sales data joined elsewhere. |
| Spreadsheets with exports | Best forA one-off returns audit where someone pulls Shopify refunds and support tags into a sheet. | Watch out forManual every month, and stale once new refunds arrive after the export. |
| ChatGPT with pasted CSVs | Best forSummarizing free-text return comments from a single export to spot common complaints. | Watch out forNo shared definitions, so return rate changes with whoever builds the prompt and the file. |
Asked in chat
What they ask Bruin
@Bruin
which SKUs had a return rate above 20% in Q3?
@Bruin
what are the top 3 return reasons for dresses?
@Bruin
which sizes come back as too small most often?
@Bruin
did returns rise after we changed the size chart?
@Bruin
what did returns cost us in shipping last month?
@Bruin
which customers returned 4+ orders this year?
How it works
How to set it up
- 1
Connect Shopify for orders, refunds and returned line items, and Gorgias or Zendesk for the tickets where customers explain why they sent items back.
- 2
Map every reason source (returns app codes, support tags, warehouse notes) to one short reason list, such as too small, too large, damaged and not as pictured.
- 3
Define return rate once: units returned over units sold, by order date, with exchanges counted the way your team agrees. Bruin checks it with every sync.
- 4
Ask in Slack by SKU, size, color or supplier, for example which styles to fix before the next reorder, and check the query shown under each answer.
- 5
Schedule a weekly returns digest to the merchandising channel and set an alert when any SKU's return rate jumps above its usual level.
Connects to
The data behind the answers
Built in
- Shopify
- Gorgias
- Zendesk
- Freshdesk
- Trustpilot
- Google Sheets
- QuickBooks
Via API
- Loop Returns
- NetSuite
- Amazon Seller Central
Plus your warehouse (Snowflake, BigQuery, Databricks, Redshift, Postgres, ClickHouse) and thousands more sources through APIs, webhooks and web scraping.
Worth knowing
The honest caveat
Refunds in Shopify do not always carry a reason. If reasons live in a returns app, support tags or a warehouse sheet, map them to one list before the first report, or 'wrong size' and 'too small' will be counted as different problems.
Frequently asked
Common questions.
How do I know Bruin's return rate by product is correct?
Each answer shows the query: which Shopify refunds counted, how exchanges were treated and which date was used. Return rate has one definition, tested on every run, so merchandising and finance see the same figure.
Where do ecommerce return reasons come from if Shopify does not store them?
From wherever the customer gives a reason: a returns app, Gorgias or Zendesk ticket tags, or a warehouse sheet filled in at intake. Bruin maps each source to one reason list, so returns by reason add up across all of them.
Can Bruin link product returns to support tickets?
Yes. Bruin joins Shopify orders with Gorgias or Zendesk tickets per customer and order, so you can ask which products drive the most return tickets and what customers said about them.
How long does it take to see returns by product in an AI data analyst?
With Bruin, connect Shopify and ask once the first sync finishes, since return rate by SKU needs only refunds and orders. Reasons arrive once support tags or the returns app are connected and mapped.
About Bruin
What is Bruin?
Bruin is an open-source, AI-powered data platform. One project covers the whole path from source to answer: data ingestion (with ingestr), SQL and Python transformations, quality checks, column-level lineage, a data catalog and scheduling. On top of that data, an AI data analyst answers questions in Slack, Microsoft Teams, Google Chat, WhatsApp, Discord, Telegram, email or the browser, and builds dashboards from a prompt.
Pipelines are plain SQL, Python and YAML files in your own Git repository, and the work runs inside your own warehouse: Snowflake, BigQuery, Databricks, Redshift, Postgres, ClickHouse, DuckDB and others. The Bruin CLI is open source under Apache 2.0 and runs on a laptop, in CI or on-prem. Bruin Cloud is optional and adds scheduling, the AI data analyst, governance, SSO and audit logs.
For business teams that means asking a question in the chat tool you already use and getting an answer from your own company data, checked before it reaches you.
- Replaces
- Separate tools for ingestion, transformation, orchestration, data quality, cataloguing and BI
- Open source
- Bruin CLI under Apache 2.0; ingestr source-available under the Functional Source License
- Your data
- Stays in your warehouse; pipelines stay in your Git repository
- Security
- ISO/IEC 27001:2022 certified and SOC 2 Type 2 attested
- Used by
- Data teams at Lessmore, StarBerry, NativeMinds, SCG, M8 Games and Fabrikatör
Why Bruin for Ecommerce
Answers where you already work
Ask in Slack, Microsoft Teams, Google Chat, WhatsApp, Discord, Telegram, email or the browser. There is no new tool to learn and no ticket to file with the data team.
Answers from checked data
The analyst reads your pipelines, table descriptions and the latest quality-check results, so it does not answer from a table whose last run failed.
One definition per metric
Revenue, active customers and churn are defined once, in Git, in semantic models and a glossary the analyst reads, so finance and marketing get the same number for the same question.
Built on a real data platform
Bruin also loads and models the data. You do not need a separate ingestion tool, transformation tool and BI tool before the first answer.
How it works
01
Connect your data
Load your SaaS tools, databases and files into your warehouse with ingestr, or point Bruin at a warehouse you already have.
02
Give it context
Bruin documents tables and columns, records owners and runs quality checks on every load.
03
Ask
Ask in Slack, Teams or the browser. Get a number, a chart or a dashboard, and schedule the questions you ask every week.
Your data already knows. Now Bruin's on it.
$100 in credits and 50 AI tasks. No credit card.
A demo walks through your own data.