Refunded orders / total orders. Persistent >5% signals product quality or expectation mismatch.
At a glance
Refunded order count divided by total order count over the rolling 30 days. The first canary on product quality, sizing accuracy, or post-purchase expectation issues. APAC fashion and homeware merchants typically sit at 3 to 6%; persistent >5% signals an issue worth investigating before retention erodes.
| What it counts | COUNT(orders WHERE has_refund = true) / COUNT(orders) over rolling 30D. A partial refund counts the same as a full refund (the buyer signalled dissatisfaction either way). |
| API endpoint | Numerator: GET /v1/refunds. Denominator: GET /v1/orders count. Both filtered to the same 30D window and excluding cancelled-before-payment orders. |
| What “refund” includes | Any refund recorded in Shopline’s refunds array, regardless of reason code. Includes return-driven refunds, customer-cancellation refunds, and price-adjustment refunds. |
| What it excludes | Cancelled-before-payment orders (no money moved, nothing to refund). Disputes that have not yet completed are excluded until they resolve. |
| VAT / tax treatment | Order-count rate; tax is not the variable being measured. |
| Shipping | The refund value (separate card) includes shipping where the merchant refunded shipping. The rate itself is order-count based. |
| Currency | Per-store native currency on values; the rate is dimensionless. |
| APAC-specific drivers | HK / TW / SG buyers refund predominantly for sizing (apparel), late delivery (homeware), and condition issues (electronics). Cross-border buyers refund more often for customs delays. |
| Time window | 30D vsP. |
| Alert trigger | >5%. Hero-tier threshold reflects typical APAC fashion floor; configurable per category. |
| Sentiment | refund_rate. Inverse gauge; lower is better. |
| Roles | owner, operations, finance. |
Calculation
Calculated automatically from your Shopline data. See the At a glance summary above for what the metric tracks and the worked example below for a typical reading.Worked example
An APAC fashion brand running a Hong Kong Shopline store, rolling 30D ending 27 Apr 26. The brand sells womenswear with sizes XS to XL. Their target refund rate is below 6% (category benchmark). Last 30 days:| Metric | This 30D | Prior 30D | Change |
|---|---|---|---|
| Total orders | 712 | 658 | +8.2% |
| Refunded orders | 51 | 33 | +54.5% |
| Refund Rate (this card) | 7.16% | 5.02% | +2.14pp |
| Reason | Count | % of refunds |
|---|---|---|
| Size too small | 22 | 43% |
| Size too large | 8 | 16% |
| Colour different from photo | 9 | 18% |
| Late delivery | 6 | 12% |
| Damaged in transit | 4 | 8% |
| Other | 2 | 4% |
Sibling cards merchants should reference together
Refund rate is best read alongside the cards that explain why and what value:| Card | Why it matters next to refund rate | What the combination tells you |
|---|---|---|
| Refund Value | Money lost. | Rising rate + rising value = consistent refunds; rising rate + flat value = small-AOV refunds (often photo or size issues on cheaper SKUs). |
| Refunds Over Time | The 90D shape. | Lets you see whether the spike is a launch event (single SKU) or a structural drift. |
| Cancellation Rate | Pre-fulfilment dissatisfaction. | If both rise together, the issue is upstream (delivery promise, OOS); if only refund rate rises, the issue is post-arrival. |
| Avg Time to Fulfil (hrs) | Late-delivery refunds. | Late-delivery refund cluster correlates strongly with avg fulfilment hours. Fix the warehouse, fix this. |
| Top Products by Revenue | Cross-reference to find the offending SKU. | Refunds are usually concentrated; the top-3 refunding SKUs explain most of the rate. |
| Refund-Rate Spike Alert | Real-time anomaly. | This is the 30D-rolling view; the alert card catches sudden movement. |
| Shopline Health Score | Composite. | Refund rate is one input to the health score; rising refund rate drags it. |
| Repeat Customer Rate | The downstream consequence. | Customers who refund are 60 to 80% less likely to return; persistent refund-rate rise erodes repeat rate over 90D. |
Reconciling against the vendor’s own dashboard
Where to look in Shopline’s own dashboard:Shopline Admin -> Reports -> Refunds report Filter by date range; the “refund count / order count” tile is the apples-to-apples comparison.Why our number may legitimately differ from Shopline’s Admin:
| Reason | Direction | Why |
|---|---|---|
| Time zone | Boundary days | Shopline Admin uses store-local time; we use UTC. The boundary effect on a 30D window is small. |
| Cancellation handling | Either | Shopline counts cancelled-after-payment orders as refunds in some views (the money was returned); we treat them as cancellations and exclude. |
| Partial refund counting | Marginal | A partial refund counts as one refunded order in our card; some Shopline reports show it as a fraction of an order. |
| Dispute pending | Theirs higher | Shopline Admin counts dispute-in-progress as refunded immediately; we wait for resolution. The lag is typically 7 to 14 days. |
| Sync lag | Marginal | Refund webhooks fire reliably; the gap is usually under 60 seconds. |
shopline_refund_rate = COUNT(refunded orders) / COUNT(total orders) over the same 30D window. The numerator is the refund count surfaced by shopline_refunds_over_time; the denominator is shopline_order_count. Mathematical identity, not reconciliation.
Known limitations / merchant FAQs
What is a normal refund rate for an APAC fashion brand? 3 to 6% for established brands; up to 8% for fast-fashion or sizing-heavy categories. The threshold of 5% is the rule-of-thumb floor; sustained >7% is a quality or expectation problem worth investigating. Why is the alert at 5% not 10%? Because by 10% the damage is already structural, retention has dropped, customer-acquisition cost has not been recovered, and the brand reputation has likely taken a hit. 5% catches the issue while it is still a 30 to 45 day fix, not a 6-month rebuild. My refund rate spiked overnight; what should I check first? (1)shopline_alert_refund_spike for the rolling 24h delta, (2) drill-down on this card to see refund reason codes (sizing, photo, delivery, damage), (3) cross-reference shopline_top_products to find the SKU concentration. Sudden spike + single SKU dominance = product-quality issue on a recent batch; sudden spike + spread across SKUs = process issue (delivery, packaging).
Does this include cancelled orders?
No. Cancelled-before-payment orders never had a refund (no money moved). Cancelled-after-payment orders trigger a refund and would count, but we treat the cancellation as primary and exclude from this rate to avoid double-counting with shopline_cancellation_rate.
My refund rate dropped because I tightened my returns policy. Is that good?
Operationally yes, strategically maybe not. Refund rate dropping while shopline_repeat_rate also drops means the policy hardening cost you customer trust. The healthier signal is refund rate dropping while repeat rate holds or rises; that means the underlying quality improved, not just the policy.
Why does this exclude pending disputes?
Because a dispute can take 14 to 60 days to resolve, and including pending disputes inflates the rate during the dispute window then deflates it on resolution. We wait for resolution to count consistently. The drill-down shows pending disputes separately for awareness.
How does this compare to refund rate on Shopify or BigCommerce?
Definitionally the same; the threshold “good vs bad” is the same; the underlying data is similar. The APAC-specific note is reason-code mix: APAC merchants see a higher proportion of sizing and customs refunds than Western markets, which changes the action playbook (more sizing-photography fixes, more cross-border-fulfilment investment).
Does this include subscription order refunds?
Yes. Each subscription order is a separate order record in Shopline, so a refunded monthly subscription contributes to both numerator and denominator the same as a one-time purchase.
Should I aim to drive this to zero?
No. A refund rate near zero usually indicates an over-strict returns policy that is suppressing genuine returns at the cost of customer trust. The healthy band is 3 to 6% for fashion; near-zero is rarely a quality signal, more often a policy signal.