At a glance
Daily series of viva_total_revenue. Surfaces day-of-week patterns, paydays, weekends, sales events, and anomalies that summary-card numbers hide.
| What it counts | SUM(transactions.Amount WHERE StatusId = F) bucketed by day, in each transaction’s CurrencyCode. Multi-currency stores get one trend per currency. |
| API endpoint | /api/transactions aggregated by InsDate (UTC day). |
| Currency | Multi-currency native, no FX. Per-currency lines stacked. |
| Refunds / disputes | NOT deducted (gross daily revenue). Use viva_refunds_trend for the deduction trend. |
| Failed / declined payments | Excluded. |
| Channels | Online + POS unified. Channel split available via filter (SourceCode). |
| 3DS late completion | A challenge completed late in UTC may land on the next day’s bucket; small drift on day-boundary. |
| Time window | 90D rolling (default). |
| Alert trigger | revenue_trend sentiment_key flags daily anomalies (>2σ deviation from rolling mean). |
| Sentiment key | revenue_trend |
| 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 Greek omnichannel retailer (“Ouzeri Supplies”) on Smart Checkout + 4 Smart POS. 90-day window 02 Feb 26 to 02 May 26.- Saturday is the peak. Athens Saturday foot-traffic on top of online weekend browsing produces the biggest day. Greek Sunday is the quietest day, many small businesses closed for trading by tradition.
- Greek-Easter (12, 14 Apr 26) is a 3-day spike, not single-day. Orthodox Easter is the largest commerce moment in Greek retail. The trend chart shows the lift starting Friday (food shopping for Sunday lunch).
- Easter Monday is a public holiday. Smart POS volume drops to near-zero (stores closed); online stays flat. If your blended trend dips on Easter Monday, this is structural, not a problem.
- Spring Sale single-day spike (28 Apr 26) is the typical “one-day-flash” pattern. Compare the spike day’s transaction count and avg transaction to a normal day, did you sell more units, or did you just discount the same units? The trend on its own can’t tell you; pair with
viva_total_transactionsandviva_avg_transaction. - Multi-currency stores see multiple trends stacked. EUR line is the bulk; GBP line is a smaller separate stream visible in the same chart but read as a separate currency.
Sibling cards merchants should reference together
| Card | Why pair it with Revenue Trend |
|---|---|
viva_total_revenue | The summary number; this card is its time-series. |
viv_volume_trend | Same time-axis, transaction count. Combine to read avg-transaction trend. |
viva_refunds_trend | Refund time-series; subtract from this for net trend. |
viva_total_transactions | Transaction-count summary. |
viva_avg_transaction | Per-transaction view. |
viva_payment_methods | When trend moves, method-mix often drives it. |
Stripe stripe_revenue_trend / PayPal pp_revenue_trend | Cross-PSP comparison. |
| Commerce platform total revenue trend | Upstream view. Discrepancies between Viva and commerce-platform trend usually indicate a non-Viva-method spike or refund timing. |
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 overview (line chart, period selector top-right; “Daily” granularity)The Reports → Net Sales view also exposes a chart of net daily revenue (post-refund). Why our number may legitimately differ from the Viva Dashboard:
| Reason | Direction | Why |
|---|---|---|
| Time zone bucketing | Day boundaries shift | Viva buckets by account timezone (Athens EET / EEST = UTC+2/+3); we use UTC. A late-evening Athens transaction lands in tomorrow’s UTC bucket but today’s Athens bucket. For “today” / “yesterday” cards this can move material amounts; for 90-day rolling averages the effect is small. |
| Multi-currency | Ours per-currency, theirs may roll | FX-rolled view available in Viva Dashboard. |
| 3DS late completion | Day-boundary drift | A challenge completed late in the day may land on the next bucket. |
| Comparison | Expected relationship | When divergence is legitimate |
|---|---|---|
viva_revenue_trend ↔ commerce-platform daily revenue | Daily shapes should match | If commerce-platform shows a spike that Viva doesn’t, it’s a non-Viva-method spike (PayPal sale, Klarna campaign). |
viva_revenue_trend ↔ stripe.stripe_revenue_trend | Independent | Two streams summed approximate the commerce platform trend. |
Known limitations / merchant FAQs
Why does the chart not match my Viva Dashboard chart day-for-day? Time-zone bucketing. We use UTC; Viva Dashboard uses your account timezone. For Greek merchants this is a 2, 3 hour offset, transactions late at night Athens-time land in the next UTC day. Aggregate views (7-day, 30-day) match; individual days can shift. There’s a single-day spike, what’s likely? Top causes: (1) sale or promotion, (2) a single very-large B2B / wholesale transaction, (3) a recurring rebill batch fired (some Viva merchants set rebill day on the 1st of the month, creating a day-1 spike), (4) a fraud-related test where many small transactions ran in minutes (rare but worth checking). My weekend dip is normal? Greek and Mediterranean retailers often see Sunday as the lowest day (cultural). Northern European stores see Saturday-Sunday combined as the highest. Trend shape depends on customer geography. Easter, Christmas, Greek bank holidays, do they show? Yes, public holidays show structurally lower POS volume (stores closed) and roughly-flat online. Greek-Easter is the largest commerce moment in Greek retail, similar in scale to UK Christmas. Can I filter to online-only? Use theSourceCode = e-commerce filter (or physical for POS) in the Viva Dashboard. The card’s default is blended.
Multi-currency view, what do I see?
Per-currency lines stacked on the same chart. Don’t read the EUR line as the total if you also take GBP, GBP is shown separately.
JP Morgan ownership, trend changes?
None. Trend mechanics, sync cadence, and bucketing unchanged.
Why is yesterday’s bucket lower than today’s halfway through the day?
Refresh lag. The most recent few minutes of transactions haven’t synced. By next refresh, today’s bucket catches up.