At a glance
The daily time-series of total revenue over the rolling 90-day window. The most-viewed chart on most BigCommerce dashboards: it answers “are we growing?” with a single line. Pair it with channel and category breakdowns to answer “growing where?”. The single-number BC Total Revenue tells you the magnitude in the window; this card tells you the shape, the seasonality, the trend, and the anomalies.
| What it counts | SUM(total_inc_tax) GROUP BY DATE(date_created). Daily buckets by default; toggleable to weekly or monthly. |
| VAT / tax treatment | Tax-inclusive. Same definition as BC Total Revenue. |
| Shipping | Included. |
| Discounts | Deducted. |
| Refunds | Not deducted (gross). |
| Cancelled orders | Excluded. |
Incomplete orders | Excluded. |
| Currency | Multi-currency: per-currency lines if multi-currency, or summed (without FX) for the headline view. |
| Channels / sources | All channels aggregate by default; per-channel toggle available in the chart legend. POS, Channel Manager, B2B all contribute. |
| Time-zone bucketing | Daily buckets use store time zone, not UTC, so the DoW patterns and weekday peaks read intuitively for the merchant’s local-time reality. |
| Bucket size | Daily on the 90D window. Switch to weekly for 180D+; monthly for 365D+. |
| Time window | 90D (rolling 90 days; settings allow 30D, 90D, 180D, 365D). |
| Alert trigger | None on the chart itself; threshold alerts fire from BC Alert Revenue Drop. |
| Sentiment key | revenue_trend |
| Roles | owner, marketing |
Calculation
Worked example
A US apparel brand on BigCommerce, 90-day window 14 Feb 26 to 14 May 26.| Period | Daily avg revenue ($) | Trend vs prior period | Notes |
|---|---|---|---|
| 14 Feb 26 to 28 Feb 26 | $14,800 | +2% (vs Jan) | Steady-state |
| 1 Mar 26 to 14 Mar 26 | $15,200 | +3% | Continuing growth |
| 15 Mar 26 to 21 Mar 26 | $22,400 | +47% | Spring promo, Mar 17-19 |
| 22 Mar 26 to 31 Mar 26 | $13,900 | -38% (vs spike) | Promo hangover |
| 1 Apr 26 to 14 Apr 26 | $15,800 | +14% | Recovery, returning to growth |
| 15 Apr 26 to 30 Apr 26 | $16,400 | +4% | Stable growth |
| 1 May 26 to 14 May 26 | $17,200 | +5% | Continuing |
- The spring promo (Mar 17-19) is clearly visible. Three days at ~15k baseline = $45k incremental revenue. This is the headline result; the post-promo hangover is the subtler signal.
- Promo hangover effect (Mar 22-31) shows -38% vs the promo days. Customers pulled forward purchases they would have made later. The honest promo P&L is the spike minus the hangover, not the spike alone. Net incremental from this promo: roughly +$25k after hangover absorption.
- Underlying trend is +3-5% month over month, ignoring the promotional distortion. This is a healthy growth trajectory; doubling-time is roughly 18-24 months at this pace.
- No major down days outside the promo hangover. Healthy pattern. Weekend dips are visible but not concerning. One down day below 70% of the rolling-7-day-average should trigger investigation; this store has none.
- The chart-screenshot is the weekly executive read. A boss who wants 15-second status reads should see this chart and the 90D number; everything else is detail.
- Identify and explain anomalies on the chart. Every spike should have a known cause (promo, marketplace event, viral product, channel launch). Unexplained spikes warrant investigation; they’re often the start of a fraud wave.
- Watch the underlying trend, not the spikes. Use the rolling 7-day or rolling 14-day average overlay (chart toggle) to see through promotional noise.
- Compare to prior year if available. Year-over-year on the same DoW removes seasonality.
- Check for hangover after every promo. Without the hangover view, promo P&Ls overstate impact by 30-60%.
- Pair with BC Revenue by Day of Week to interpret day-to-day variance through the DoW lens; what looks like a “Tuesday drop” might just be the normal Tuesday level.
Sibling cards merchants should reference together
| Card | Why pair it with Revenue Over Time |
|---|---|
| Total Revenue | Single-number aggregate. This card is the shape; that one is the magnitude. |
| BC Revenue by Day of Week | The DoW interpretation lens for daily noise. |
| BC Revenue by Hour | Sharper time resolution within days. |
| BC Revenue Breakdown | Composition view of the same total. |
| Order Count Over Time | Twin chart. Revenue rising with orders flat = AOV rise; revenue rising with orders rising = volume rise. |
| BC Channel Revenue Trend | Per-channel time series. When the total moves, this shows which channel drove it. |
| Discount Over Time | Overlay to see promotional impact. |
| Refunds Over Time | Subtract from gross to see net. |
| BC Alert Revenue Drop | The anomaly detector watching this curve. |
| BC Weekend vs Weekday | Aggregated 5+2 view; smoother for trend analysis. |
| GA Revenue Over Time | Cross-connector validation. The two curves should track within 5-10%. |
Reconciling against the vendor’s own dashboard
Where to look in BigCommerce’s own dashboard: The native chart is BC Control Panel → Analytics → Insights → Sales Over Time (Plus and Enterprise) or Reports → Sales Reports → Sales by Date (all tiers). Both expose a daily revenue chart that should match this card directly when configured to the same window. For finance-grade reconciliation, use the Settings → Data Solutions → Export → Orders CSV and pivot bydate_created in spreadsheet.
Why our number may legitimately differ from the vendor’s:
| Reason | Direction | Why |
|---|---|---|
| Time zone | Boundary days off | Both use store time zone; should match exactly except for DST transition days. |
| Tax treatment | Either | If the merchant has a Tax-Exclusive Sales report enabled, BC may show the figure exclusive of VAT; we use total_inc_tax consistently. |
| Sync lag | Ours lower for last 30 minutes | Webhook fanout. |
| Cancellation handling | Either | We exclude cancelled orders; some BC sales reports include them in gross. |
| Refund treatment | Either | We show gross (refunds not deducted); BC reports may show net (refunds deducted) depending on the report variant chosen. |
| Currency | Either | We sum per-currency without FX; BC may convert to display currency at daily-average FX rate. |
| Card | Expected relationship | Notes |
|---|---|---|
google_analytics.ga_revenue_over_time | Curve shape within ±5%, magnitude within ±15% | GA4 typically under-reports due to ad-blockers and cookie-consent rejection. Shape should track. |
stripe.stripe_charges_over_time | Web-channel slice should match within ±2% | Stripe is the gateway truth for Stripe-paid web orders. |
klaviyo.klaviyo_revenue_over_time | Always lower (email-attributed subset) | Klaviyo only sees email-attributed; should be 10-30% of total. |
Known limitations / merchant FAQs
Why does my chart show a drop on Sunday but BC Insights shows a flat line? We bucket strictly by date in store time zone; BC Insights smooths weekly by default on long ranges. Toggle BC Insights to daily resolution for direct comparison. My promo day shows lower than expected, why? Two possible reasons: (1) the promo had a hangover effect that pulled forward sales rather than creating new ones (the days before the promo show higher than baseline; the promo day itself looks normal), (2) the discount level reduced revenue per order proportionally to the volume lift. Cross-reference BC Total Discount for the period. Should I use 30-day or 90-day window? 30D for operational triage (is something wrong this month?), 90D for trend analysis (is the underlying business growing?), 365D for strategic review. The 90D is the default because it balances signal and recency. Why is the Y-axis inconsistent with last week’s chart? The chart auto-scales to the visible range. A new spike re-scales the axis; older data may look smaller than it did before. Toggle “fixed scale” in chart settings if you want consistent comparisons. Can I overlay last year’s chart for comparison? Yes via the chart toggle “show year-over-year overlay”. The prior-year line appears in lighter colour; useful for seasonality interpretation. My chart shows a steady -3% trend over 60 days, what should I check? In order: (1) channel-revenue-trend per channel (is one channel declining?), (2) BC Top Products for SKU-level decay, (3) BC Customer Trend for customer-base contraction, (4) marketing spend changes, (5) competitor-action checks (price drops, new launches in your category). A 3% gradual decline is the classic signature of structural retention loss; investigate with retention cards. Why is my POS revenue not visible separately? Toggle the channel filter in the chart legend to expose per-channel lines. By default the chart aggregates for headline view. My chart shows zero revenue on a recent day, what’s wrong? Sync lag or webhook delivery failure. The most recent 30-60 minutes of orders may not be indexed; if the day persists at zero past 2-3 hours, check Settings → Integrations → BigCommerce for webhook delivery failures. Can I download the underlying daily data? Yes via Ask Viq: “export daily revenue for last 90 days as CSV”. Includes date, channel_id, revenue, order_count. Why does the chart show different totals when I switch from daily to weekly? It shouldn’t, the totals should be identical (just different bucketing). If they differ, you’re hitting a sync-lag boundary issue on the most recent week. Reload the chart after a sync interval. My multi-currency store shows multiple lines, which is the “real” total? None of the lines is the real total because we don’t FX-convert. The chart shows per-currency series for transparency. For a single-currency view, use Ask Viq withconvert_to_currency: USD parameter.
Should I worry about a single-day spike if I can’t explain it?
Always investigate. Unexplained spikes are the early signature of: (1) a fraud wave, (2) a viral product moment (Reddit, TikTok), (3) a marketplace promotion you didn’t know about, (4) a sync catchup flushing through.
Does this include B2B Edition revenue?
Yes, B2B orders contribute normally. They typically spike on weekday-mornings (procurement-team activity).