At a glance
Daily revenue per channel_id plotted over the trailing 90 days. The trend view that complements BC Channel Revenue Mix (single-snapshot pie) and BC Alert Channel Revenue Drop (real-time alarm). Surfaces channel cyclicality, growth slope per channel, and the leading indicators of channel decay before the alert fires. For BC stores running 5+ channels, this is the canonical “where is the business going” card.
| What it counts | SUM(total_inc_tax) GROUP BY channel_id, date over the trailing 90 days, plotted as a stacked or grouped line chart. Includes a 7-day moving average overlay to dampen daily noise. |
| API endpoint | GET /stores/{store_hash}/v2/orders aggregated by channel_id and date_created. The OpenSearch index materialises per-channel-per-day revenue. |
| VAT / tax treatment | Tax-inclusive. |
| Shipping | Included. |
| Discounts | Deducted. |
| Refunds | Not deducted (gross trend). For net trend including refunds, configure under Settings → Refund handling. |
| Cancelled orders | Excluded. |
Incomplete orders | Excluded. |
| Currency | Multi-currency, displayed in primary or converted. Configure under Settings → Currency. |
| Channel coverage | All BC channels. POS shows weekday-bias. B2B portal shows order-cycle bias (often 1-2 large peaks per month). Marketplaces show daily noise but stable trend. Web shows promo-cycle bias. Different channels have different normal-shape patterns; this card surfaces the shape. |
| B2B Edition behaviour | B2B portal trend is choppy (one big PO can spike a day by 10x). Don’t try to read daily B2B trend; read 30-day rolling. The chart auto-applies a 14-day smoother for B2B portal series. |
| Promo cycles | Web channel trend has promotion-driven spikes that look like channel growth but reset. Cross-reference with BC Top Coupons to identify promo-day spikes vs underlying growth. |
| Holiday handling | The chart marks public holidays per relevant country (US, UK, AU). The visual annotation prevents misreading “Memorial Day low” as a channel decay. |
| Alert trigger | any channel drop >20% WoW. Cohort thresholds apply: marketplaces need looser threshold (sub-channel volatility), B2B needs MoM rather than WoW. Configure under Settings → Alerts → Channel cohort. |
| Sentiment key | revenue_trend |
| Time window | 90D rolling. |
| Roles | owner, finance, marketing |
Calculation
Calculated automatically from your BigCommerce 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 US homewares brand on BigCommerce Enterprise. Window 1 Feb to 30 Apr 26 (90 days). Per-channel weekly totals smoothed.| Week | Web | Amazon | Facebook Shop | B2B portal | POS |
|---|---|---|---|---|---|
| Feb 1 | $58k | $13k | $1.2k | $42k | $4.8k |
| Feb 8 | $62k | $14k | $1.3k | $0 | $5.0k |
| Feb 15 | $61k | $13k | $1.4k | $58k | $4.9k |
| Feb 22 | $63k | $14k | $1.3k | $0 | $5.1k |
| Mar 1 | $80k (promo) | $14k | $1.5k | $48k | $4.9k |
| Mar 8 | $59k (post-promo) | $13k | $1.2k | $0 | $5.0k |
| Mar 15 | $61k | $14k | $1.3k | $66k | $5.0k |
| Mar 22 | $63k | $14k | $1.4k | $0 | $5.1k |
| Mar 29 | $65k | $15k | $1.4k | $52k | $5.0k |
| Apr 5 | $66k | $15k | $0.4k | $0 | $5.1k |
| Apr 12 | $67k | $16k | $0.3k | $58k | $5.2k |
| Apr 19 | $68k | $16k | $1.4k (recovered) | $0 | $5.3k |
| Apr 26 | $70k | $17k | $1.5k | $62k | $5.4k |
- Facebook Shop two-week dip 5-12 Apr to 1.3k baseline (a -75% drop). The alert correctly fired during this window. Investigation revealed a Meta policy flag triggered by an automated content review; the merchant resolved with a single Business-Manager click and revenue recovered the next week. The 90-day trend view makes the dip-and-recovery shape obvious; the daily alert catches the dip in real time; together the two views are complementary.
- B2B portal shows extreme bi-weekly cyclicality. 0 in between. This is the structural PO-cycle pattern; this merchant’s largest wholesale customers all order on a Tue-of-odd-weeks cadence. Reading B2B portal at daily granularity is meaningless; always read at 14-day or monthly rollups.
- Mar 1 web spike + Mar 8 dip is a promotion’s signature. 59k (-7%) on Mar 8. The post-promo dip is normal and not a problem; customers who would have bought in the post-promo week pulled forward to take advantage of the discount. Net effect across both weeks is +$8k vs baseline; the promo lifted net revenue, just not as much as the spike suggests.
- Web channel underlying growth is +20% over the 90 days (70k). Modest but healthy DTC growth. Amazon also +30% (17k) suggesting strong cross-channel demand. Facebook Shop flat ex-incident. The growth pattern is “DTC + Amazon both up, Facebook flat, B2B flat”, suggesting the brand is succeeding with discoverability channels (web, Amazon) but not with social (Facebook).
- POS is the steady eddy. 5.4k over 90 days, a steady 12% growth, no spikes, no dips. The flagship store has built loyal regulars; the trend is the regulars-base growth, not promotional flux. POS trend is the truest customer-loyalty proxy on this dashboard.
- Smooth daily noise. Read at 7-day moving average for web, 14-day for B2B, weekly for POS.
- Annotate promo cycles. Cross-reference BC Top Coupons to mark spike-and-dip patterns as promo-driven rather than channel-strength signals.
- For dips like the Facebook Shop incident, the per-channel trend tells you the recovery shape; combine with BC Alert Channel Revenue Drop for real-time response.
- Compute slope per channel. A flat 90-day trend on a channel that should be growing is the leading indicator of channel decay.
- For multi-currency stores, view in constant-currency mode to separate FX from genuine growth.
Sibling cards merchants should reference together
| Card | Why pair it with Channel Revenue Trend |
|---|---|
| BC Channel Revenue Mix | The single-snapshot pie; this card is the over-time view. |
| BC Alert Channel Revenue Drop | The real-time alarm; pair to read alarm in trend context. |
| Total Revenue | The headline rollup. |
| BC Orders by Channel | Volume context per channel; trend differences may reflect order-count vs AOV. |
| BC Channel AOV | AOV trend; revenue trend = AOV trend × volume trend. |
| BC Channel Conversion Rate | Surfaces whether trend reflects funnel quality or volume. |
| BC Top Coupons | Identifies promo-driven spikes vs underlying growth. |
| BC Channel Top Products | Identifies which SKUs drive each channel’s trend. |
Reconciling against the vendor’s own dashboard
Where to look in BigCommerce Control Panel: Analytics → Sales shows store-wide daily revenue; per-channel decomposition is available on Plus / Pro / Enterprise as “Sales by channel”. For B2B-specific trend: Channel Manager → B2B Edition → Analytics. For per-marketplace trend: Channel Manager → individual marketplace → Reports. Why our trend may differ from BC Sales by channel:| Reason | Direction |
|---|---|
| Refund handling. Default we show gross trend (no refund deduction); BC’s view varies by plan tier. | Vortex IQ HIGHER on high-refund stores |
| Currency aggregation. We support converted-currency display; BC’s view shows native currency per channel. | Different display |
| Time-zone boundaries. We allow merchant-configured TZ; BC uses store TZ. | Up to 24h shift on day boundaries |
| B2B inclusion. BC’s main analytics excludes B2B by default; we include. | Vortex IQ HIGHER |
| Multi-storefront aggregation. BC shows per-storefront; we offer aggregated. | Different denominators |
| POS terminal aggregation. BC may roll terminals; we surface each. | Different granularity |
| Card | Expected relationship | What causes legitimate divergence |
|---|---|---|
google_analytics.ga_revenue_by_source_trend | GA4 source-revenue trend correlates with channel trend within 5-15% | GA4 misses 10-25% of orders; the gap is consistent over time so trend shapes match. |
stripe.stripe_revenue_trend | Stripe’s revenue trend aligns with web-channel trend | Stripe sees Stripe-paid only; multi-gateway stores diverge by paypal-share. |
amazon_sp.amazon_revenue_trend | Amazon SP-API’s revenue trend matches Amazon channel | SP-API includes pre-fee gross; we use BC’s recorded total. Sub-2% gap. |
source_name and date) and Adobe Commerce (per store_id and date); merchant-facing semantics are equivalent.