At a glance
Daily series of refund value issued through Viva Payments. Surfaces refund pattern shape (post-sale spikes, end-of-month batches, “free returns” promo aftermath) that the period summary hides.
| What it counts | SUM(refunds.Amount) bucketed by refund IssueDate (UTC day). Multi-currency stores get one trend per currency. |
| API endpoint | /api/transactions/{id}/refunds aggregated daily. |
| Currency | Multi-currency native, no FX. Per-currency lines. |
| Refunds counted | Both full and partial refunds. |
| Disputes / chargebacks | Excluded (not refunds). |
| Failed payments | Not relevant. |
| Refund-day vs sale-day | This card uses issue date. A refund of an April sale issued on 02 May lands on 02 May’s bucket. |
| Channels | Online + POS unified. |
| Time window | 90D rolling. |
| Alert trigger | Daily anomalies (>2σ from rolling mean), or monthly running average up >25% vs prior. |
| Roles | owner, 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 DTC brand on Smart Checkout, 30-day free returns, generous post-sale window. 90-day window 02 Feb 26 to 02 May 26.- Refunds lag sales by ~ 14, 21 days. A spike in mid-March refunds maps to a sale 14, 21 days earlier (typical “tried it, didn’t fit, returning at the end of the policy window”). Fashion’s standard return-window pattern.
- Mondays are the highest refund day. Customer service teams process the weekend’s return-request backlog on Monday. POS in-store returns over the weekend also get keyed on Monday. This is operational, not behavioural.
- Sale-end + 14d / 21d / 30d are predictable spikes. Map sale dates → expected refund spike dates. If your refund spike is bigger than expected, the sale’s product-quality or sizing was off.
- Multi-currency, separate lines. GBP refund line shows separately from EUR line; don’t conflate.
- Sentiment alert at 2σ catches single-day outliers. A normal Monday is EUR 800; an anomaly day at EUR 4,000 will alert. Useful for catching customer-service outages where 100 returns process in one batch.
Sibling cards merchants should reference together
| Card | Why pair it with Refunds Trend |
|---|---|
viva_refund_value | The summary; this card is its time-series. |
viva_refund_rate | The percentage view. Spikes here that don’t move the rate signal a one-off batch, not a behaviour change. |
viva_revenue_trend | The numerator equivalent. Subtract daily to read net. |
viv_chargeback_rate | High refund rate often prevents chargebacks; read together. |
Stripe stripe_refund_velocity_trend / PayPal refund trend | Cross-PSP comparison. |
| Commerce platform Returns trend | Upstream cause. Refund originating from Returns flow shows here on issue-date. |
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 (date filter, set granularity to “Daily”)The Sales → Reports → Net Sales view also shows daily refunds as a deduction overlay. Why our number may legitimately differ from the Viva Dashboard:
| Reason | Direction | Why |
|---|---|---|
| Time zone bucketing | Day boundaries shift | Athens vs UTC; refunds processed 22:00 Athens land in tomorrow’s UTC bucket. |
| Issue-date attribution | Match | Both this card and Viva use issue-date for refund timing. |
| Multi-currency | Per-currency vs rolled | Toggle in Viva Dashboard. |
| Comparison | Expected relationship | When divergence is legitimate |
|---|---|---|
viva_refunds_trend ↔ commerce-platform refund trend | Daily shapes match | Commerce-platform aggregate covers all rails; Viva is a subset. |
viva_refunds_trend ↔ Stripe refund trend | Independent | Two streams summed approximate commerce-platform total. |