Skip to main content
Card class: Non-HeroCategory: Ecommerce Platform

At a glance

Day-by-day revenue (SUM(grand_total)) over the last 90 days. The headline time-series card. Plotted with a 7-day moving average overlay to smooth weekly seasonality and a year-over-year overlay for stores with sufficient history.
What it countsFor each day in the 90-day window: SUM(grand_total) over orders created in that day.
API fieldgrand_total, created_at from the orders index. Adobe Commerce REST: GET /rest/V1/orders.
VAT / tax treatmentTax-inclusive (grand_total). Toggle to net-of-tax via grand_total - tax_amount for VAT-net revenue.
Shipping inclusionIncluded (in grand_total).
DiscountsAlready deducted, post-promotion paid revenue.
Cancelled ordersIncluded by default (matches Total Revenue). Toggle to exclude for “captured-only” view.
RefundsNot subtracted, the card is creation-time. For net-of-refund revenue, subtract Credit Memo grand_total from Refunds Over Time.
CurrencyMixed-currency display by default (visual-shape friendly). base_grand_total for FX-neutral.
Multi-store scopeAll Store Views by default. Per-Store-View slicing exposes regional patterns.
Time window90D rolling. Configurable to 30D, 180D, 365D.
Alert triggerNone on this card directly. The hourly canary is on Revenue Drop Alert.
Sentiment keyrevenue_trend
Rolesowner, marketing

Calculation

DATE_HISTOGRAM SUM(grand_total)
  WHERE date BETWEEN [period_start, period_end]

Worked example

A B2B+DTC homewares merchant on Adobe Commerce 2.4.7. UK base, GBP. Snapshot 13 May 26, 90-day rolling. Aggregate stats:
MetricValue
Days90
Total revenue£2,840,000
Mean revenue / day£31,556
Median revenue / day£30,200
Min day (Sun 7 Apr 26)£8,400
Max day (Mon 14 Apr 26, post-Easter)£52,800
Standard deviation£8,200
Notable events on the chart:
DateRevenueWhat happened
24 Feb 26£48,200flash sale (SPRING25 launched), +52% vs Tue median
14 Mar 26£18,200-42% vs Sat median; storefront 502 outage at 11:00 GMT
14 Apr 26£52,800post-Easter Monday catch-up
28 Apr to 5 May 26£19k-£24k/daysustained dip; supplier sizing PR crisis
6 May 26 onwardsrecoverymerchant’s PR response landed
Insight pattern:
  1. Mean ≈ median (£31,556 vs £30,200). Distribution roughly symmetric over the 90 days. Mean would be much higher than median if a single huge promotion dominated; here it’s balanced.
  2. The 14 Mar 502 outage is the canary; cross-link with Revenue Drop Alert which fired at 11:00. £18,200 day vs £30,200 median = £12,000 lost. Recovery the following day was complete.
  3. The 28 Apr to 5 May sustained dip is the most concerning. Eight days below the 7-day moving average, with the average itself trending down. £19k average per day vs £30k median = £88,000 cumulative shortfall over the 8 days. Cross-link with Refunds Over Time for the parallel uniform-line return wave. Recovery began 6 May after the merchant’s PR team posted corrections.
  4. Compare to Orders Over Time: order count dropped less proportionally during the 28 Apr-5 May dip (~12% drop in orders vs 35% drop in revenue). That means AOV dropped during the dip, customers were cautious, ordering low-value test purchases rather than full baskets. Healthy sign that demand wasn’t lost; just AOV.
  5. YoY overlay: when 365-day data is available, year-over-year overlay reveals seasonality (Black Friday peak, January post-Christmas dip). The card supports the overlay automatically once history exists.
  6. Cancelled orders included. The card includes ~1-3% canceled revenue. Toggle to exclude for true cash-flow signal; minor difference but matters for finance.

Sibling cards merchants should reference together

CardWhy pair it with Revenue Over Time
Total RevenueAggregate of this card.
Orders Over TimeOrder count companion; AOV diagnoses divergence.
Revenue by Day of WeekThe DOW pattern this card displays.
Refunds Over TimeSubtracted view for net revenue.
Revenue Drop AlertReal-time canary; this is the historical context.
AOVPer-order average; complements daily revenue.
Customer TrendCustomer count over time; pair to disentangle AOV vs traffic.
shopify.revenue_over_timeCross-platform peer.
google_analytics.ga_revenue_trendGA4 traffic-attributed revenue; usually 10-25% lower due to tracking gaps.

Reconciling against the vendor’s own dashboard

Where to look in Adobe Commerce Admin:
Reports > Sales > Orders with “Show By” set to “Day”, date range matching this card. The chart and revenue column should approximately match.
Dashboard > Sales > Revenue Chart is a built-in chart on the Admin dashboard. Limited to 30 days and uses base currency. Useful for sanity-checking the most-recent month.
Why our number may legitimately differ from Adobe Commerce Admin:
ReasonDirection of divergence
Currency. Admin uses base_grand_total; this card defaults to mixed grand_total.Material for multi-currency stores
Reports indexer lag. Reports use the nightly sales_order_aggregated_* tables.Vortex IQ ahead by ~12-24h on most-recent day
Status filter. Reports default to “Any”. Match unless overridden.Standard
Cancelled inclusion. Card includes by default; Admin Reports include depending on filter.None expected
Time-zone. UTC vs Store View locale.±1 day at edges
Sync lag. 5-15 min.Standard
Cross-connector reconciliation (when these connectors are connected for this merchant):
CardExpected relationshipWhat divergence tells you
google_analytics.ga_revenue_trendGA4 daily revenue ≈ this card × (1 − tracking gap, typically 10-25%)Persistent <70% means tracking is broken or consent is blocking events. Look at GA4’s [Realtime] view to confirm.
stripe.stripe_charge_volume_over_timeStripe daily volume ≤ this cardGap = orders paid via PayPal, Authorize.Net, manual transfer + orders in pending_payment/canceled that never hit Stripe.
Bank deposit per day (manual)Lags this card by 1-3 days (capture-to-deposit)Deposit shape should mirror this card’s shape with a 1-3 day delay.

Known limitations / merchant FAQs

Why does today’s last data point look low? Because today is incomplete. The trailing point is in-progress; mentally exclude or wait for the day to close. Why is mixed-currency the default? For trend visualisation, mixed-currency works because the shape doesn’t depend on FX. For absolute reconciliation against finance, switch to base_grand_total (FX-converted to store base currency at order time). My multi-store revenue per Store View doesn’t sum to the headline, why? Currency mixing is the most common cause. Switch to base currency for both views. Otherwise: orders without an assigned Store View (rare), or sync-lag making the per-Store-View totals slightly out of sync with the combined. Cancelled orders are included by default. Why? For the headline trend, cancelled orders represent demand that almost-converted; including them gives a fuller customer-intent picture. For “actual cash received” view, exclude cancelled. The sentiment trend uses the included version. A long horizontal line near zero, what’s that? Either an outage that wiped a day, or a Store View was disabled for that period. Cross-check against deployment logs and the Order State Distribution for that day. Why doesn’t Stripe agree? Stripe is a subset (Stripe-paid orders only). PayPal, Authorize.Net, manual bank transfer revenue is in this card but not in Stripe. Sum (Stripe + PayPal + manual) should approximately match this card. Year-over-year overlay isn’t showing, why? Need at least 365 days of order history. The card auto-disables YoY if data is shorter than that. Net-of-tax view, when do I use it? For Finance dashboards reconciling to GL revenue lines (which are net of VAT). For marketing dashboards (gross is the impressed-on-customer figure), keep the default. Net-of-refund view, when? For finance “true cash” dashboards. The Vortex IQ workspace can compute net-of-refund automatically when Refunds Over Time is on the same dashboard. Why does my Black Friday spike not appear? Either the 90-day window doesn’t reach back to Black Friday, or you toggled off the year-over-year overlay. Extend the window to 180D or 365D.

Tracked live in Vortex IQ Nerve Centre

Revenue Over Time is one of hundreds of KPI pulses Vortex IQ tracks across Adobe Commerce and 70+ other ecommerce connectors. Nerve Centre runs the detection layer; Vortex Mind investigates the cause when something moves; Ask Viq lets you interrogate any number in plain English. Start for free or book a demo to see this metric running on your own data.