At a glance
The composition of revenue split by product, category, and channel over the period. The “where is the money coming from” card. Single-number revenue cards tell you total magnitude; this card tells you concentration: is your revenue sitting on three hero SKUs, evenly across the catalogue, or distributed by channel mix? Concentration insight drives merchandising, marketing-spend allocation, and inventory planning.
| What it counts | SUM(total_inc_tax) GROUP BY [product_id, category_id, channel_id]. The card surfaces three breakdowns: by product (top 10 SKUs and “all others”), by category (mapped to BC product categories tree), by channel (per channel_id). Each breakdown can be expanded for full detail. |
| VAT / tax treatment | Tax-inclusive. Same total_inc_tax field used by BC Total Revenue for definitional consistency. |
| Shipping | Included. Each split contributes proportional shipping share; line-item attribution is approximated by (line_subtotal / order_subtotal) * order_shipping. Approximation breaks for orders with item-specific shipping rates. |
| Discounts | Deducted. Order-level discounts are pro-rated across line items. Item-specific discounts attribute correctly to the discounted SKU. |
| Refunds | Not deducted. Refunds reduce different cards. This is the gross-revenue composition view. |
| Cancelled orders | Excluded (status = Cancelled). |
Incomplete orders | Excluded. |
| Currency | Multi-currency without FX. Each currency aggregates separately; the headline composition uses the dominant or display currency. |
| Channels / sources | The channel split is the most actionable on BC: web (channel_id = 1), POS, Amazon Channel Manager, Facebook Shop, B2B Edition each have their own slice. |
| Category mapping caveat | BC’s category tree is hierarchical; this card uses leaf categories by default. Stores with deep hierarchies (level-3+ categories) should toggle to summary view (level-1 only) for broader strokes. |
| B2B Edition behaviour | B2B orders contribute to the channel slice attributed to their channel_id (typically a B2B portal channel) and contribute disproportionately to specific category slices because B2B baskets are structurally different (bulk SKUs, wholesale-only categories). |
| Time window | 30D (rolling 30 days). |
| Alert trigger | None; this is a composition card. |
| Roles | owner |
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 UK home-fragrance brand on BigCommerce Plus, 30-day window 14 Apr 26 to 13 May 26. By product (top 5):| Rank | SKU | Product | Revenue (£) | % of total | 30D trend |
|---|---|---|---|---|---|
| 1 | CAN-LRG-VTL | ”Vetiver large candle” | £42,800 | 18.4% | +5% |
| 2 | DIF-200-WLD | ”Wild rose diffuser 200ml” | £28,400 | 12.2% | -2% |
| 3 | CAN-MED-OUD | ”Oud medium candle” | £19,200 | 8.3% | +12% |
| 4 | GFT-001 | ”Discovery gift set” | £14,800 | 6.4% | +28% |
| 5 | CAN-LRG-LIN | ”Linen large candle” | £12,300 | 5.3% | -8% |
| Top 5 total | £117,500 | 50.6% | |||
| All other SKUs (218) | £114,500 | 49.4% | |||
| Total revenue | £232,000 | 100% |
| Category | Revenue (£) | % of total | 30D trend |
|---|---|---|---|
| Candles (52 SKUs) | £128,200 | 55.3% | +3% |
| Diffusers (38 SKUs) | £52,800 | 22.8% | -1% |
| Gift sets (12 SKUs) | £31,200 | 13.5% | +24% |
| Home accessories (78 SKUs) | £14,600 | 6.3% | -5% |
| Apparel / lifestyle (43 SKUs) | £5,200 | 2.2% | -12% |
| Channel | Revenue (£) | % of total | 30D trend |
|---|---|---|---|
Web (channel_id = 1) | £172,200 | 74.2% | +4% |
Amazon UK (channel_id = 1019847) | £42,400 | 18.3% | +9% |
Facebook Shop (channel_id = 1019850) | £8,800 | 3.8% | -22% |
| B2B Edition portal | £6,800 | 2.9% | +85% |
| POS Terminal A | £1,800 | 0.8% | flat |
- Top 5 SKUs = 50.6% of revenue. This is moderate concentration; healthy stores typically sit at 35-55%. Below 30% means the brand has no flagships (vulnerable to mix shifts); above 60% means flagship dependency (vulnerable to a single-SKU stockout).
- Gift sets are the breakout category (+24% trend, 13.5% share). Bundling is working; expand the gift-set range and consider bundling more SKUs into curated sets.
- Apparel / lifestyle (-12% trend, 2.2% share) is the underperformer. This is the “category we should probably exit” signal; it consumes shelf-space, photography budget, and SKU-management overhead disproportionate to revenue.
- Facebook Shop -22% trend needs investigation. Cross-reference BC Alert Channel Revenue Drop; this might already be alerting.
- B2B Edition +85% growth is the standout signal but on a small base. £6,800/month doubling means £14k by next quarter; if growth holds, B2B will exceed Facebook Shop within 60 days. Invest in B2B Edition workflow to capture this momentum.
- Defend the top 5 inventory. A stockout on CAN-LRG-VTL costs ~£1,400/day; reorder triggers should be aggressive on top-5 SKUs.
- Double down on growing categories. Gift sets and B2B both warrant marketing investment.
- Consider exiting apparel / lifestyle. Margin and growth profile don’t justify the operational overhead.
- Investigate Facebook Shop decline. Likely a Meta-side issue or a pricing/listing problem; resolve before it becomes structural.
- Pair with BC Top Products and BC Bottom Products for the full SKU-tail analysis.
Sibling cards merchants should reference together
| Card | Why pair it with Revenue Breakdown |
|---|---|
| Total Revenue | The denominator. Breakdown is meaningless without the total context. |
| BC Top Products | Deep dive on the top of the product breakdown. |
| BC Bottom Products | The opposite tail. Often a bigger opportunity than top products: which SKUs to delist, which to relaunch. |
| BC Channel Revenue Mix | Same channel slice viewed in % terms. |
| BC Channel Revenue Trend | Time-series of the channel slice. |
| BC Revenue by Brand | Brand-level breakdown for stores selling third-party brands. |
| BC Revenue by Category | Category-only breakdown if the user is investigating category-level questions. |
| BC Top SKUs | SKU-level top-list with units (not just revenue). |
| Top Cities | Geographic dimension; pair with channel for full who-and-where view. |
| BC Revenue by Currency | Multi-currency stores need this to understand the underlying currency mix. |
| Revenue Over Time | Time-series of the same total. |
Reconciling against the vendor’s own dashboard
Where to look in BigCommerce’s own dashboard: The closest native views split across multiple BC reports:- Product breakdown: BC Control Panel → Analytics → Insights → Products → Top Products. Comparable directly.
- Category breakdown: BC Insights doesn’t expose category-level revenue natively without custom export. Use Settings → Data Solutions → Export → Orders, then pivot by category in spreadsheet.
- Channel breakdown: BC Insights → Sales by Channel (Plus and Enterprise tiers). Match the date range and the channel rows match this card.
| Reason | Direction | Why |
|---|---|---|
| Time zone | Boundary days off | BC uses store time zone; we use UTC. |
| Discount pro-rating | Either | Order-level discounts get pro-rated across line items differently in BC’s reports versus our index materialisation. Differences of 0.5-2% per SKU are normal. |
| Sync lag | Ours lower for recent 30 minutes | Webhook fanout. |
| Currency | Either | BC may convert; we leave per-currency. Discrepancies on multi-currency stores. |
| Category-tree assignment | Either | If a SKU sits in multiple categories, BC counts it once (in the primary); we count proportionally. |
| Channel ID drift | Either | Channel Manager occasionally re-numbers channels after major updates; historical breakdowns may attribute to the old channel ID. |
| Card | Expected relationship | Notes |
|---|---|---|
google_analytics.ga_revenue_by_product | Top-N product list should overlap by ~80% | GA4 attributes by purchase event; BC by orders. Top sellers will overlap; the long tail will diverge. |
klaviyo.klaviyo_revenue_by_product | Email-attributed revenue subset | Klaviyo only sees email-attributed revenue; sums will be much lower. Top SKUs should mostly match. |
Known limitations / merchant FAQs
Why does this card show different totals than my Total Revenue card? It shouldn’t, the two cards should sum to the same number. If they don’t, the difference is almost always SKUs without a category assignment (orphan SKUs) or orders without a channel ID (legacy data). Check Settings → Catalog → Categories for orphan SKUs and Settings → Channel Manager for any orders flagged withchannel_id = NULL.
My top SKU is showing 18% of revenue but my Insights dashboard shows 22%, why?
Three usual reasons: (1) date-range boundary differences (UTC vs store time zone), (2) shipping allocation (we pro-rate by line subtotal, BC may attribute to a single line), (3) bundle handling (BC sometimes counts the bundle as one SKU; we count contributing SKUs). Insights typically attributes more revenue to top SKUs because of single-line shipping allocation; trust the BC export for finance, our card for trend analysis.
Is the category breakdown by primary category or all categories?
By primary category by default (the first category assigned to each SKU). Toggle to “all categories” via the chart settings to see SKUs counted in every category they’re assigned to; the totals will exceed total revenue by the duplication factor.
Why do gift sets show as a category but their constituent SKUs also appear?
BC’s gift-set / bundle SKUs are first-class catalog items with their own SKU and category. Their constituent items are inventory tracked but revenue attributed at the parent SKU level. So a £100 gift set adds £100 to the gift-sets category and the gift-set SKU’s revenue, not £100 split across the constituent SKUs. This is the BC native behaviour; matches Insights.
Can I exclude B2B revenue from the breakdown?
Yes via Ask Viq: “show revenue breakdown for last 30 days excluding B2B Edition channel”. The card respects channel filters when called via Ask Viq.
Why is one of my channels missing from the breakdown?
Channels with revenue below 0.5% of total are collapsed into “Other” by default to keep the chart readable. Toggle the chart settings to “show all channels” to expose them. Alternatively, the channel may be dormant (no revenue in the period) or may have been disconnected during the period.
My B2B portal shows £6,800 but the B2B Edition admin shows £8,400, why?
Quote-based orders sometimes attribute to a different channel_id (the B2B portal vs the storefront fallback). Pull the underlying orders to check; if some quote orders have channel_id = 1 instead of the B2B portal ID, that’s the source of the £1,600 gap. Resolve by configuring B2B Edition channel routing.
Should I look at this card weekly or monthly?
Monthly. Weekly windows are too short to surface meaningful breakdown shifts; monthly captures genuine merchandising signals. For ops triage on a specific question (a sudden category drop), narrow to 7D ad hoc.
Can I see this card by margin instead of revenue?
Yes via Ask Viq: “show profit breakdown by category for last 30 days”. The underlying index has cost data when products have cost-of-goods populated; the breakdown becomes a margin breakdown.
My Facebook Shop shows -22% but Meta dashboard shows -10%, which is right?
Both, just different windows. Our card uses 30 days vs prior 30 days; Meta typically uses 7-day or 14-day windows by default. Align the windows for direct comparison.
Why is the long tail (218 SKUs at 49.4% of revenue) so big?
This is healthy. A “fat tail” indicates a deep catalogue with broad appeal. A thin tail (top-5 = 80%) indicates flagship dependency, which is fragile. Aim for a 40-55% top-5 share with strong long-tail support.
Does this card include subscription revenue?
Yes if subscriptions are processed as orders in BC’s Subscriptions module. Subscriptions count toward the SKU and category they’re for. Subscription-only stores will see a tight concentration on subscription SKUs.