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

At a glance

The top-N products by revenue over the period. The merchandising answer to “where does the money come from?” at the SKU level. Rankings shift week-to-week for low-volume stores (any store with <500 orders/month should read on 30D+ windows for stability), and the ordering is sensitive to whether you measure by revenue, units, or order count. This card defaults to revenue ranking; toggle to units or count for different lenses. Pair with BC Bottom Products to see the full distribution and identify SKUs to delist.
What it countsSUM(line_total_inc_tax) GROUP BY product_id over the period. Each line item attributes to its parent product (variants roll up). Top 25 by default; toggle for top 50, 100, or full list.
VAT / tax treatmentTax-inclusive at the line-item level. Per the BC Total Revenue treatment.
ShippingPro-rated shipping per line item (line_subtotal / order_subtotal * order_shipping). Approximation breaks for orders with item-specific shipping rates.
DiscountsDeducted at the line-item level for item-specific discounts; order-level discounts pro-rated across items.
RefundsNot deducted by default. Top products show gross revenue. Toggle to “net” to see refund-adjusted (useful for finding products with high return rates).
Cancelled ordersExcluded.
Incomplete ordersExcluded.
CurrencyMulti-currency without FX; per-currency aggregation, with the dominant currency featured.
Channels / sourcesAll channels aggregate by default; per-channel toggle reveals different top-N lists. A SKU that’s #1 on web may not be on Amazon at all because of channel-specific listing strategies.
Variant rollupDefault rolls variants to parent product. So “T-shirt” sums all sizes / colours into one row. Toggle to “show variants separately” for SKU-level granularity.
Sample size warningBelow 500 orders, ranking is sensitive to single-customer purchases; one bulk order from a big customer can put a B2B-only SKU into the top 10. Use 90D windows for stable strategic ranking.
B2B Edition behaviourB2B orders contribute large line-totals on bulk SKUs (often 50-1000 units per order). B2B-only SKUs can dominate the top-N in revenue terms while contributing tiny units of customer count. Filter to DTC if you want consumer-facing top products; aggregated views mix the two.
Time window30D (rolling 30 days; settings allow 7D, 30D, 90D, 180D).
Alert triggerNone directly; threshold alerts can fire if a top-5 product drops out of the top 10 (suggesting a stockout, listing issue, or competitor action).
Rolesowner, marketing

Calculation

GROUP BY consignments.shipping.lineItems.name.keyword SUM(orderProduct.totalIncTax)
  WHERE date BETWEEN [period_start, period_end]

Worked example

A UK home-fragrance brand on BigCommerce, 30-day window 14 Apr 26 to 13 May 26.
RankProductUnits soldRevenue (£)Units shareRevenue share
1”Vetiver large candle” (CAN-LRG-VTL)856£42,8007.3%18.4%
2”Wild rose diffuser 200ml” (DIF-200-WLD)568£28,4004.8%12.2%
3”Oud medium candle” (CAN-MED-OUD)480£19,2004.1%8.3%
4”Discovery gift set” (GFT-001)295£14,8002.5%6.4%
5”Linen large candle” (CAN-LRG-LIN)246£12,3002.1%5.3%
6”Sandalwood medium candle” (CAN-MED-SAN)220£11,0001.9%4.7%
7”Refill candle, 4-pack” (CAN-RFL-4PK)158£9,5001.4%4.1%
8”Vetiver diffuser 100ml” (DIF-100-VTL)195£8,8001.7%3.8%
9”Travel candle, 3-pack” (CAN-TRV-3PK)142£8,5001.2%3.7%
10”Reed refills, set of 8” (DIF-RFL-8)286£7,2002.4%3.1%
Top 10 total3,446£162,50029.4%70.0%
What’s interesting:
  1. Top 10 = 70% of revenue from 29% of unit volume. Classic Pareto distribution: a third of units drive most of the revenue. This is healthy concentration; below 50% revenue share for top 10 means flat distribution (no flagships); above 80% means dangerous flagship dependency.
  2. The Vetiver large candle is the undisputed hero at 18.4% of revenue. A stockout on this single SKU costs ~£1,400/day. Reorder triggers should be aggressive; warehouse floor space should be allocated. This is the SKU that the entire P&L turns on; defend it.
  3. Refills (#7, #10) are stealth winners. Refills (CAN-RFL-4PK and DIF-RFL-8) appear in the top 10 with high unit-volume but lower per-unit revenue. These are subscription / retention indicators: customers buying refills are bonded to the brand. Consider a subscribe-and-save program for refill SKUs.
  4. Gift set (#4) is the breakout. £14,800 from 295 units = £50 average. Gift sets typically have 10-15% gross margin lower than singletons (curated bundle costs more to assemble) but generate 2-3x the customer-acquisition value (gift recipients become customers). Expand the gift-set range and double-promo around Mother’s Day, Christmas, Valentine’s.
  5. Three of top 10 are Vetiver-scented (CAN-LRG-VTL, DIF-100-VTL, and the Vetiver-included gift set). Scent concentration: vetiver is the brand’s signature note. Lean into the brand identity; develop more vetiver SKUs (small candle, room spray, body care extension).
Action playbook this card surfaces:
  1. Defend top 5 inventory aggressively. Reorder triggers at 30 days of cover, not 14.
  2. Identify hero scent / category. If 3+ of top 10 share a theme, that’s the brand identity; develop adjacencies.
  3. Promote refills heavily. Refill customers are 2-3x more likely to repeat-purchase within 90 days; refill SKUs are LTV indicators.
  4. Audit the long tail (490 SKUs at 30% revenue share). Most have <5 units sold in 30 days; consider delisting or relaunching.
  5. Pair with BC Bottom Products to find the worst SKUs (often candidates for delisting).
  6. Pair with BC Top Refunded to find SKUs with high refund rates relative to sales; quality issues hide here.

Sibling cards merchants should reference together

CardWhy pair it with Top Products
BC Bottom ProductsThe opposite tail. Often a bigger opportunity: which SKUs to delist or relaunch.
BC Top SKUsSKU-level (variant) view; this card rolls variants into parents.
BC Top SKUs by RevenueSame idea, sorted by revenue rather than unit count.
BC Top RefundedHigh-refund SKUs hide here; cross-reference to find quality issues.
BC Refunded ProductsRefund-rate per top product.
BC Revenue BreakdownComposition view; this card is just the top tail of that.
BC Product StatusTop products should always be active and visible; cross-check.
BC Inventory AlertsTop products are the most stockout-sensitive.
BC Stock vs SalesDays-of-cover for top products; the inventory-management view.
BC Top CustomersTop products and top customers often correlate (specific high-value SKUs sold to specific high-value customers).
BC Product MarginTop revenue products may not be top margin products; pair to see profitability ranking.
Total RevenueDenominator.

Reconciling against the vendor’s own dashboard

Where to look in BigCommerce’s own dashboard: The native view is BC Control Panel → Analytics → Insights → Top Products (Plus and Enterprise tiers) or Reports → Sales Reports → Sales by Product (all tiers). Both expose top-N products with revenue and unit columns; match the date range for direct comparison. For finance-grade audit, Settings → Data Solutions → Export → Orders (with line-item detail) provides the underlying data for spreadsheet pivot. Why our number may legitimately differ from the vendor’s:
ReasonDirectionWhy
Variant rollupEitherWe default to parent-product rollup; BC Insights may show variants separately. Toggle either to match.
Time zoneBoundary days offUTC vs store time zone.
Bundle handlingEitherBC counts bundle SKUs at parent revenue; line-item detail can show constituent SKUs. We follow BC’s parent-attribution.
Discount pro-ratingEitherOrder-level discounts pro-rate differently in BC reports vs our index materialisation. ±0.5-2% per SKU normal.
Sync lagOurs lower for last 30 minutesWebhook fanout.
Refund treatmentEitherWe default to gross (refunds not deducted); BC reports may show net.
CurrencyEitherWe aggregate per-currency; BC may convert.
Cross-connector reconciliation (when both connectors are connected for this merchant):
CardExpected relationshipNotes
google_analytics.ga_top_productsTop-N list should overlap by ~80%GA4 attributes by purchase event with item parameter; differs in the long tail.
klaviyo.klaviyo_top_productsEmail-attributed subsetKlaviyo only sees SKUs in email-driven purchases; long tail differs significantly.

Known limitations / merchant FAQs

Why is my top product ranking different week-to-week? Sample-size effect. Below 500 orders/week, individual customer purchases dominate the ranking. Use 30D windows for stable strategic ranking; weekly views are for trend monitoring only. My #1 product dropped to #5 this week, what should I check? In order: (1) stockout (check inventory), (2) listing / image issue (check the product page), (3) pricing change (intentional or accidental), (4) competitor action, (5) sample-size noise (if below 500 weekly orders). Most “rank drops” on small windows are noise; on 30D+ windows they’re signal. Should I rank by revenue or by units? Both, for different decisions. Revenue ranking surfaces highest-margin opportunities; unit ranking surfaces operational priorities (inventory, packaging, fulfilment workload). Toggle in card settings. Why are my variants rolled up to parent products? Default for readability. A T-shirt with 5 sizes appears as one row, not five. Toggle to “show variants separately” if you need SKU-level granularity (often needed for inventory decisions, less so for merchandising). My gift bundle SKU is in the top 10 but the constituent items aren’t, why? Because BC attributes bundle revenue to the bundle SKU at the line-item level, not to constituent SKUs. The bundle is its own product in BC’s catalog. For constituent-SKU analysis, use Ask Viq with bundle-decomposition: “show top SKUs including bundle constituents”. Why is my B2B portal showing weird top products? B2B orders are bulk; one B2B customer ordering 500 units of a wholesale-only SKU puts that SKU at the top by units, while DTC customers might never see it. Filter to web channel for end-customer top products. Can I see top products by margin? Yes via Ask Viq: “top products by gross margin for last 30 days” if cost-of-goods data is populated. Margin ranking often differs from revenue ranking; high-revenue may be low-margin (heavy discounting). Why does this card not include my POS-only SKUs? It does, but POS revenue typically distributes across many SKUs evenly (no Pareto effect at the in-store level). POS-only SKUs rarely make the top 10 unless your store has very concentrated POS volume. Should I read this card or BC Top SKUs? This card for merchandising decisions (which products to promote, which to feature). BC Top SKUs for inventory-management decisions (which variants to reorder, which to discontinue). Different decision contexts. My top product has a 15% refund rate, that’s high, what should I do? Investigate quality. A 15% refund rate on a top SKU represents the most fixable margin damage in the catalog. Pull customer feedback / refund reasons; common causes are size-fit (apparel), defect rate (electronics), expectation mismatch (descriptions don’t match reality). Can I export this list? Yes via Ask Viq: “export top 50 products for last 30 days as CSV”. Includes product_id, name, units, revenue, refunded_amount, refund_rate, channel breakdown. Does this include subscription SKUs? Yes. Subscription SKUs typically have steady weekly cadence and rarely top the list unless the subscription base is very large. For subscription-specific top products, filter via Ask Viq. My top products vs Insights Top Products differ by 2-3 SKUs, why? Variant rollup, time zone, and refund treatment are the typical sources of small list differences. The top 5-10 should match; positions 11-25 can vary by 2-3 SKUs. Should I worry about my top product ranking shifts during sale events? No. Sale events distort short-window ranking; a heavily-discounted SKU jumps in units but drops in revenue (or vice versa). Use post-sale windows for stable ranking.

Tracked live in Vortex IQ Nerve Centre

Top Products by Revenue 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.