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

At a glance

Total revenue split by BigCommerce catalogue category, ranked descending. The merchandising-team workhorse, this is how you decide what to feature on the homepage, where to spend ad budget, and which categories to expand or cut. Multi-category retailers live in this card; single-category brands rarely use it.
What it countsSUM(line_item.total_inc_tax) GROUP BY product.category_id over the period. Each line item is attributed to the product’s primary category. The sum across categories equals goods revenue (excluding shipping).
VAT / tax treatmentTax-inclusive (total_inc_tax).
ShippingExcluded (line-item level; shipping is order-level in BC).
DiscountsDeducted at the line-item level. Order-level discounts pro-rated.
RefundsNot deducted (gross).
Cancelled / voided ordersIncluded in gross revenue.
CurrencyMulti-currency without FX. Filter by currency for clean comparison.
Channels / sourcesAll channels contribute. Category attribution is product-side, so it works identically across web, POS, marketplaces, and B2B.
Multi-category gotchaBC products can belong to multiple categories. We attribute each line item to primary_category_id to avoid double-counting; products without a primary category fall back to the first category in category_ids. Set primary categories explicitly in BC for accurate attribution.
Category tree depthThe card ranks at leaf-category level by default. Toggle to top-level for the merchandising-overview view.
B2B Edition noteB2B portals often expose a different category tree than retail. Filter to a specific channel for B2B-only or retail-only views.
Time window30D (rolling 30 days, vs prior 30 day comparison)
Alert triggerNone on this card directly.
Rolesowner, 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 sporting-goods retailer on BigCommerce Pro, 30-day window 14 Apr 26 to 14 May 26.
RankTop-level categoryRevenueSharevs prior 30dSub-category leaders
1Cycling$214,80032.1%+18.4%Road bikes (82k),helmets(82k), helmets (41k), apparel ($38k)
2Camping$148,20022.2%-4.2%Tents (55k),sleepingbags(55k), sleeping bags (28k), cookware ($22k)
3Running$96,50014.4%+6.7%Shoes (61k),apparel(61k), apparel (19k), GPS watches ($16k)
4Yoga & Fitness$74,80011.2%+3.1%Mats (28k),apparel(28k), apparel (24k), weights ($14k)
5Swimming$52,1007.8%-22.5%Swimsuits (22k),goggles(22k), goggles (13k), pool toys ($9k)
6Hiking$48,2007.2%+1.4%Boots (24k),backpacks(24k), backpacks (14k), poles ($6k)
7-12(6 tail categories)$33,4005.0%mixed(Skiing, racquet sports, golf, fishing, water sports, other)
Total$668,000100%+5.8% overall
What’s interesting:
  1. Cycling at +18% growth on a 32% share is the standout signal. The category is both the largest and the fastest-growing; allocate ad budget and homepage real estate accordingly. Within cycling, road bikes ($82k, 38% of cycling revenue) deserve their own deep-dive. The sub-category split prevents “cycling is up” from masking which sub-category is actually driving the lift.
  2. Swimming at -22% is the urgent investigation. A 22% drop on a 52kcategoryis52k category is 11k of monthly revenue evaporating. Likely causes (in order of probability): (a) seasonality (swimming peaks May-July; this is mid-April so April-May lift may not be in yet); (b) inventory issues (top swimsuit SKUs OOS, cross-check BC Channel OOS per Channel); (c) a competitor running aggressive pricing on goggles or pool gear. Run the diagnosis before assuming seasonality.
  3. Camping at -4% is acceptable seasonal drift. Camping peaks May-September; April is shoulder season. The -4% is within normal noise.
  4. The tail (6 categories at 5% combined) is a focus question for the merchandising team. Skiing in April is correctly low (post-season); golf and fishing should be growing. Investigate whether tail categories are losing share because of catalogue gaps or because they were never strategic.
  5. Compounding effect on cycling. A 32% share growing at 18% means cycling alone added $33k of incremental revenue this month. Doubling down on cycling is likely 3-4× more leveraged than trying to revive swimming.
Action priority order:
  1. Diagnose swimming -22% drop today. 1-hour audit: stock, ads, pricing, competition.
  2. Plan a cycling expansion this week, more SKUs, more featured placement, brief the ads team.
  3. Set per-category alerts via Vortex Mind for any category >5% of revenue dropping >15% week-over-week.
  4. Quarterly: review the bottom-3 tail categories for cut-or-commit decision.
  5. Audit primary-category assignments, ensure no products are silently miscategorised, the leaf-level rankings are only as good as the BC catalogue hygiene.

Sibling cards merchants should reference together

CardWhy pair it with Revenue by Category
BC Revenue by BrandBrand × category cross-tabs reveal which brands dominate which categories, and where to expand.
Top ProductsThe SKU-level zoom. Drill into the top category to see which SKUs drive its revenue.
Bottom ProductsThe flip view: which categories are dominated by tail SKUs that should be cut.
Total RevenueThe denominator. The sum across categories equals goods revenue (ex-shipping).
BC Top SKUsThe unit-volume view; a category with high revenue but low unit volume is a premium-price category.
BC Revenue by ChannelCategory × channel cross-tabs reveal which categories sell best on which channels (cycling indexes higher on web; camping on Amazon, often).
Refund RateA category growing in revenue but with rising refund rate is a quality crisis in the making.
shopify.collection_healthCross-platform peer (Shopify uses collections; semantically equivalent to BC categories for merchandising).

Reconciling against the vendor’s own dashboard

Where to look in BigCommerce Control Panel: Analytics → Reports → Sales on Plus / Pro / Enterprise plans includes a “Sales by Category” view. Pick the same date range; totals should match within ±2-3% (rounding plus the multi-category attribution differences). For source-of-truth catalogue assignments, Products → Categories lists the category tree. Why our number may legitimately differ from BC:
ReasonDirection
Multi-category attribution. BC’s Sales by Category report attributes a multi-category product’s revenue to every assigned category (a product in 3 categories shows revenue 3 times). We attribute to primary category only (no double-counting).Vortex IQ LOWER per category, equal in total; BC double-counts
Shipping exclusion. We exclude shipping; BC report includes pro-rated shipping per category.Vortex IQ LOWER
Category reassignment mid-period. If a product moved categories, BC may attribute orders to whichever category was assigned at order time; we attribute to current assignment on next index sync.Either direction
Custom-category fields. Some BC stores use custom fields for sub-categorisation; we index category_id only.Vortex IQ may MISS sub-categorisation
Time-zone and boundary days. BC uses store time zone; we use UTC.Boundary differences
Multi-currency. BC converts to store currency; we don’t.Either direction
Cross-connector reconciliation (when ad and analytics integrations are connected):
CardExpected relationshipWhat causes legitimate divergence
google_ads.ga_revenue_by_category_labelCategory-targeted ad spend should track category revenue here within ±20%.Ads attribution windows; this card is order-source-of-truth.
google_analytics.ga_revenue_by_item_categoryGA4’s item_category should match within ±15%.GA4 misses 10-25% to ad blockers.
facebook.fb_catalog_category_performanceFacebook catalog feed category should align with BC categories if mapped correctly.Facebook category mapping is independent of BC; mismatches mean the feed mapping needs review.
The category-revenue split is BC-aligned with Shopify’s collection_health and Adobe Commerce’s category attribution; the field shape differs but the merchant-facing semantics are equivalent.

Known limitations / merchant FAQs

My category totals don’t add up to store revenue, why? Two reasons: (1) shipping is excluded (line-item revenue ≠ order revenue); (2) products without a primary category fall into a “Uncategorised” bucket. Sum of all categories + Uncategorised + shipping = store total. If your Uncategorised bucket is large, fix it in BC’s bulk product editor. Should I rank by leaf category or top-level? Both, depending on the question. Top-level (e.g. “Cycling”) for strategic merchandising and budget allocation. Leaf level (e.g. “Cycling > Road Bikes > Carbon Frames”) for SKU-level investigation. Use the depth toggle. A product is in 3 categories, where does its revenue go? To the primary_category_id only. If no primary is set, fallback to the first category in category_ids. Set primaries explicitly in BC for accurate attribution. Bulk-set primaries via Products → bulk edit → primary category. Why does BC’s Sales by Category report show higher totals? BC’s report attributes multi-category products to every assigned category (double, triple counts). The sum across categories there exceeds store revenue. Our card uses primary-category attribution only, so the sum equals goods revenue. Both views are valid for different questions; we prefer the no-double-count view for clean ranking. My category tree is 5 levels deep, which level does the card rank by default? Leaf level (deepest). For 5-level trees this can be very granular (“apparel > women > tops > t-shirts > graphic tees”). Use the depth toggle to roll up to a strategic level (typically level 2 or 3). A category surged 50% week-over-week, real? Check order count and AOV simultaneously. A 50% revenue surge with stable order count = AOV moved (a wholesale order, a high-value SKU); 50% surge with proportional order growth = real demand lift. For categories with <50 orders/month, week-over-week swings of 30-50% are within noise; require multi-week trends. Can I exclude seasonal categories from the headline view? Yes, configure a saved view “Year-round only” excluding categories tagged seasonal (skiing, swimming, holiday-specific). Keep the seasonal view as a separate dashboard for the categories that should be evaluated against year-over-year, not month-over-month. My B2B portal has different categories than retail, can I see them separately? Yes. Filter the card to the B2B channel (channel_id = <your B2B portal id>). The B2B category tree on BC Enterprise is often more practical (case-quantity based) than retail (lifestyle based); the B2B-only view supports B2B-specific decisions. Should I cut a category below X% of revenue? Generally yes for categories below 1% of revenue with no growth trajectory and no strategic role (e.g. lifestyle anchor, customer-acquisition gateway). Cutting tail categories simplifies merchandising and frees working capital. Exceptions: gateway categories (low revenue but bring new customers who buy from other categories) deserve to stay even when small. A category with high revenue has high refund rate, what do I do? Investigate the SKU mix within the category. Often one or two bad SKUs drive most of the refund volume; fix those rather than treating the whole category as broken. Cross-reference BC Refunded Products filtered to the category. Multi-currency BC store, do categories sum correctly? Without a currency filter, no, the sum is meaningless across mixed currencies. Apply a currency filter for clean per-currency category rankings.

Tracked live in Vortex IQ Nerve Centre

Revenue by Category is one of hundreds of KPI pulses Vortex IQ tracks across BigCommerce 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.