> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vortexiq.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Revenue Over Time, Adobe Commerce

> Revenue Over Time for Adobe Commerce stores. Tracked live in Vortex IQ Nerve Centre. How to read it, why it matters, and how to act on it.

**Metrics type:** [Supporting Metrics](/nerve-centre/overview#metrics-types-explained)  •  **Category:** [Ecommerce Platform](/nerve-centre/connectors#connectors-by-type)

## 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 counts**      | For each day in the 90-day window: `SUM(grand_total)` over orders created in that day.                                                                                                       |
| **API field**           | `grand_total`, `created_at` from the orders index. Adobe Commerce REST: `GET /rest/V1/orders`.                                                                                               |
| **VAT / tax treatment** | Tax-inclusive (`grand_total`). Toggle to net-of-tax via `grand_total - tax_amount` for VAT-net revenue.                                                                                      |
| **Shipping inclusion**  | Included (in `grand_total`).                                                                                                                                                                 |
| **Discounts**           | Already deducted, post-promotion paid revenue.                                                                                                                                               |
| **Cancelled orders**    | Included by default (matches [Total Revenue](/nerve-centre/kpi-cards/adobe-commerce/total-revenue)). Toggle to exclude for "captured-only" view.                                             |
| **Refunds**             | Not subtracted, the card is creation-time. For net-of-refund revenue, subtract Credit Memo `grand_total` from [Refunds Over Time](/nerve-centre/kpi-cards/adobe-commerce/refunds-over-time). |
| **Currency**            | Mixed-currency display by default (visual-shape friendly). `base_grand_total` for FX-neutral.                                                                                                |
| **Multi-store scope**   | All Store Views by default. Per-Store-View slicing exposes regional patterns.                                                                                                                |
| **Time window**         | `90D` rolling. Configurable to 30D, 180D, 365D.                                                                                                                                              |
| **Alert trigger**       | None on this card directly. The hourly canary is on [Revenue Drop Alert](/nerve-centre/kpi-cards/adobe-commerce/revenue-drop-alert).                                                         |
| **Sentiment key**       | `revenue_trend`                                                                                                                                                                              |
| **Roles**               | owner, 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:**

| Metric                               | Value      |
| ------------------------------------ | ---------- |
| Days                                 | 90         |
| 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:**

| Date               | Revenue       | What happened                                          |
| ------------------ | ------------- | ------------------------------------------------------ |
| 24 Feb 26          | £48,200       | flash 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,800       | post-Easter Monday catch-up                            |
| 28 Apr to 5 May 26 | £19k-£24k/day | sustained dip; supplier sizing PR crisis               |
| 6 May 26 onwards   | recovery      | merchant'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](/nerve-centre/kpi-cards/adobe-commerce/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](/nerve-centre/kpi-cards/adobe-commerce/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](/nerve-centre/kpi-cards/adobe-commerce/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

| Card                                                                                          | Why pair it with Revenue Over Time                                         |
| --------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
| [Total Revenue](/nerve-centre/kpi-cards/adobe-commerce/total-revenue)                         | Aggregate of this card.                                                    |
| [Orders Over Time](/nerve-centre/kpi-cards/adobe-commerce/orders-over-time)                   | Order count companion; AOV diagnoses divergence.                           |
| [Revenue by Day of Week](/nerve-centre/kpi-cards/adobe-commerce/revenue-by-day-of-week)       | The DOW pattern this card displays.                                        |
| [Refunds Over Time](/nerve-centre/kpi-cards/adobe-commerce/refunds-over-time)                 | Subtracted view for net revenue.                                           |
| [Revenue Drop Alert](/nerve-centre/kpi-cards/adobe-commerce/revenue-drop-alert)               | Real-time canary; this is the historical context.                          |
| [AOV](/nerve-centre/kpi-cards/adobe-commerce/average-order-value)                             | Per-order average; complements daily revenue.                              |
| [Customer Trend](/nerve-centre/kpi-cards/adobe-commerce/customer-acquisition-trend)           | Customer count over time; pair to disentangle AOV vs traffic.              |
| [`shopify.revenue_over_time`](/nerve-centre/kpi-cards/shopify/revenue-over-time)              | Cross-platform peer.                                                       |
| [`google_analytics.ga_revenue_trend`](/nerve-centre/kpi-cards/google-analytics/revenue-trend) | GA4 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:**

| Reason                                                                                        | Direction 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):**

| Card                                                                                           | Expected relationship                                                | What divergence tells you                                                                                                    |
| ---------------------------------------------------------------------------------------------- | -------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| [`google_analytics.ga_revenue_trend`](/nerve-centre/kpi-cards/google-analytics/revenue-trend)  | GA4 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_time`](/nerve-centre/stripe/stripe_charge_volume_over_time) | Stripe daily volume ≤ this card                                      | Gap = 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.                                                          |

***

<details>
  <summary><em>Documentation cross-reference (for agencies running multiple platforms)</em></summary>

  * [`shopify.revenue_over_time`](/nerve-centre/kpi-cards/shopify/revenue-over-time)
  * [`bigcommerce.revenue_over_time`](/nerve-centre/kpi-cards/bigcommerce/revenue-over-time)
</details>

## 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](/nerve-centre/kpi-cards/adobe-commerce/order-state-breakdown) 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](/nerve-centre/kpi-cards/adobe-commerce/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](https://app.vortexiq.ai/login) or [book a demo](https://www.vortexiq.ai/contact-us) to see this metric running on your own data.
