At a glance
The percentage of Viva Payments revenue refunded to customers in the period. The merchant-initiated returns view (separate from chargebacks). High refund rates often signal product quality, sizing, expectation-mismatch, or fulfilment problems upstream.
| What it counts | SUM(refunds.Amount) ÷ SUM(transactions.Amount WHERE StatusId = F) × 100, in matching currency. Both counted in the same window (issue-date for refunds, transaction-date for revenue). |
| API endpoint | /api/transactions/{id}/refunds for refund detail; aggregates joined with /api/transactions for the gross. |
| Currency | Multi-currency native, no FX. Per-currency rate. EUR refunds vs EUR revenue, GBP vs GBP. |
| Refunds counted | Both full and partial refunds. A partial refund of 30% on a EUR 100 transaction counts as EUR 30 in the numerator. |
| Refund timing | Issue date. A refund issued on 02 May 26 for an April sale is in May’s rate denominator (paired with May’s revenue), not April’s. Standard accounting treatment. |
| Disputes / chargebacks | Not counted here. Disputes / chargebacks are buyer-initiated through the issuing bank and tracked in viv_chargeback_rate. Refunds are merchant-initiated. |
| Failed payments | Excluded (refunds are post-success). |
| Channels | Online + POS unified. Online refund rates typically higher (returns-friendly DTC); POS card-present rates lower (try-before-buy in-store reduces returns). |
| Time window | 30D vsP (default 30D). |
| Alert trigger | >10% absolute, OR +25% relative spike vs prior period. sentiment_key: refund_rate. |
| Roles | owner, operations, finance |
Calculation
Calculated automatically from your Viva Payments 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 pan-EU fashion retailer (“Mistral Mode”) on Smart Checkout, free returns within 30 days. Window 03 Apr 26 to 02 May 26.| Channel | Successful Revenue | Refunds Issued | Refund Rate |
|---|---|---|---|
| Online checkout EUR | EUR 312,800 | EUR 28,400 | 9.1% |
| Online checkout GBP | GBP 48,600 | GBP 5,200 | 10.7% |
| Smart POS Athens (try-on in-store) | EUR 84,200 | EUR 1,100 | 1.3% |
| Recurring rebills | EUR 12,400 | EUR 0 | 0.0% |
- Fashion-typical online refund rate is 8, 12% in the EU. A 9.1% online figure is acceptable; 10.7% on UK is at the upper edge but not yet alerting. The 10% threshold is a generic guard; fashion-specific benchmarking should reset it higher.
- POS at 1.3% is the structural floor. Customers who try-on before buying rarely return. The blended rate is dragged toward the online figure because online is 79% of revenue.
- GBP rate higher than EUR rate is a signal. Possible causes: shipping delay to UK customers (Brexit customs friction), sizing preference difference (UK customers buy aspirationally and return more), or returns-policy clarity in English vs French is poorer. Worth investigating.
- Subscription rebills at 0% is good. Recurring rebill refund rate above 1% suggests dunning or churn-management flow is too generous (auto-refunding cancellations). Watch the upstream subscription platform.
- A 1pp jump in refund rate ≈ EUR 4,000 less monthly net. On EUR 397k revenue, every 1% in refund rate represents roughly EUR 4,000 in deducted gross. Quick-win analysis: top 3 refund SKUs almost always drive 50, 70% of the volume.
Sibling cards merchants should reference together
| Card | Why pair it with Refund Rate |
|---|---|
viva_refund_value | The absolute amount, not the rate. |
viva_refunds_trend | Time-series view, catches rate movement before period close. |
viva_total_revenue | The denominator. |
viva_net_revenue | The post-refund residual. |
viv_chargeback_rate | Buyer-initiated cousin. High refund rate often prevents chargebacks. |
viv_dispute_rate | Disputes-in-flight, the precursor to chargebacks. |
Stripe stripe_refund_rate / PayPal pp_refund_rate | Cross-PSP same-archetype comparison. |
| Commerce platform refund / cancellation cards | Upstream cause. Refunds often originate from the commerce-platform Returns flow. |
Reconciling against the vendor’s own dashboard
Where to look in the Viva Payments Dashboard: viva.com/business/account/login. Closest comparable view:Viva Business → Sales → Refunds (filter same date range; “Refund / Net Sales” tile)Other relevant views:
- Disputes view: chargeback cases, separate from refunds.
- Sales overview: shows refund total but rate has to be calculated.
- Per-product Returns (where commerce platform integrated): SKU-level breakdown.
| Reason | Direction | Why |
|---|---|---|
| Time zone | Boundary days off | Athens timezone vs UTC. |
| Refund attribution | Different on month-boundaries | We pair issue-date refund with same-window revenue; Viva Dashboard sometimes uses original-sale-date attribution. |
| Multi-currency | Ours per-currency, theirs may roll | Viva Dashboard can convert to EUR; this card preserves native. |
| Partial refund handling | Either | Both Viva and this card include partial refunds in the rate; small drift possible if a partial-refund spans periods. |
| Comparison | Expected relationship | When divergence is legitimate |
|---|---|---|
viva_refund_rate ↔ commerce-platform refund rate | Should be close | Commerce-platform aggregate includes non-Viva-method orders. For Viva-primary stores expect within ±2pp. |
viva_refund_rate ↔ stripe.stripe_refund_rate | Often differ by card-mix | Different traffic on different rails sees different return propensity. |