Skip to main content
Card class: Non-HeroCategory: Ecommerce Platform
Per-channel top-10 SKUs, surfaces ‘this product sells on POS but not online’ style insights.

At a glance

Top-10 SKUs by revenue per channel_id over the trailing 30 days. Surfaces “this product sells on POS but not online” style insights, the merchandising-strategy view that BigCommerce’s channel-native architecture makes uniquely visible. Different channels favour different SKUs: Amazon prefers bundles, web prefers hero singles, B2B prefers case-pack quantities, POS prefers walk-out single-units. The card lets the merchant see whether their assortment matches each channel’s buyer behaviour.
What it countsSUM(line_item.total_inc_tax) GROUP BY channel_id, product_id ORDER BY revenue DESC LIMIT 10. Each channel shows its own top-10. SKUs absent from a channel’s top-10 may still be in the catalogue but not selling there.
API endpointGET /stores/{store_hash}/v2/orders/{order_id}/products for line-item detail per order, joined with GET /v2/orders for channel attribution. The OpenSearch index materialises per-channel-per-SKU revenue per day.
VAT / tax treatmentTax-inclusive line totals.
ShippingExcluded from product line; shipping isn’t attributable to a single SKU.
DiscountsDeducted at line level; bundle discounts are pro-rated across line items.
RefundsNot deducted. A refunded SKU still appears in the top-10 if its gross revenue makes it.
Cancelled ordersExcluded.
Incomplete ordersExcluded.
CurrencyMulti-currency aggregated in primary; per-channel native currency available via Settings.
Channel coverageAll BC channels. POS top-10 typically reflects walk-in regulars (coffee, snacks, basics); web top-10 reflects hero / featured products; Amazon top-10 reflects bundle / multi-pack listings; B2B top-10 reflects case-pack and high-volume reorder SKUs.
B2B Edition behaviourB2B portal top-10 is typically dominated by 5-10 high-volume reorder SKUs that wholesale accounts buy regularly. The pattern is repetitive (same 8 SKUs every month) rather than fashion-style (rotating top-10). Watch for B2B top-10 destabilising, that’s an early signal of customer churn or assortment misalignment.
SKU vs VariantWe aggregate at product level by default; variant-level (size, colour) is available under Settings → Aggregation. Variant view triples the data volume but surfaces “Size M sells on Amazon, Size L on web” patterns.
Time window30D rolling.
Alert triggerNone (pattern card).
Rolesowner, marketing, operations

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 Pro. Snapshot for 1 Apr to 30 Apr 26. Showing top-3 per channel for brevity (full card shows top-10).
RankDTC web (channel_id=1)Amazon (1019847)B2B portal (12000004)POS (1020114)
1Linen 4-piece bedding set, King ($21,400)Towel set 6pk, ivory ($11,200)Bulk pillowcase 50ct ($28,000)Hand-soap, lavender ($1,840)
2Throw cushion 18in, sage ($14,200)Bath sheet 4pk, white ($9,800)Bulk hand-towel 100ct ($22,400)Candle, vetiver ($1,420)
3Linen 4-piece bedding set, Queen ($12,800)Hand-towel 12pk, ivory ($8,400)Bulk pillowcase 100ct ($18,200)Linen napkin, ivory ($980)
What’s interesting:
  1. Web sells king-size hero items, Amazon sells multi-packs. This is the BC merchant’s intentional channel strategy: web carries the full premium catalogue (king bed sets, decorative throws); Amazon carries bulk-friendly utility SKUs that work well in Amazon’s volume-seeker buyer base. The fact that Amazon top-3 contains zero web top-3 SKUs is a sign of disciplined per-channel merchandising, not channel weakness.
  2. B2B portal is dominated by case-pack quantities. The “Bulk pillowcase 50ct” at 28kand"Bulkhandtowel100ct"at28k and "Bulk hand-towel 100ct" at 22k reflect hotel / hospitality wholesale customers buying for their property operations. B2B top-3 SKUs typically don’t appear on any other channel because the case-pack SKUs are B2B-only listings. This is the BC B2B Edition merchandising pattern at its purest.
  3. POS top-3 are small-ticket walk-out items. Hand-soap, candles, napkins, classic specialty-retail flagship-store impulse buys. Average POS line at 2050vswebaveragelineat20-50 vs web average line at 80-150. POS top-3 should rarely include big-ticket items, those are walk-in tour-and-leave items, not buy-on-spot.
  4. The big strategic question: Should the merchant promote the Bulk pillowcase 50ct on web? Currently it’s B2B-only ($28k revenue). If priced for prosumer / Airbnb operator market, it could reach DTC web buyers. The card surfaces these cross-channel-opportunity questions that aggregate top-products lists hide.
  5. Watch for top-10 instability over time. A B2B top-10 that suddenly shifts (the pillowcase drops from #1 to #5) usually means a wholesale customer churned or shifted to a competitor; investigate within days.
Action priority order:
  1. Audit cross-channel duplicate listings. SKUs in top-3 on multiple channels are your hero products; ensure inventory allocation matches.
  2. Surface channel-exclusive opportunities. A B2B-only top-SKU may have prosumer DTC potential.
  3. Identify channel-misfits. A high-AOV web SKU absent from web top-10 but present on Amazon means web isn’t merchandising it; fix the website’s hero placement.
  4. For POS specifically, top-3 should match impulse / regular categories. A big-ticket item in POS top-3 is unusual and worth investigating (was it gift-bought? Was a tour group involved?).
  5. For B2B, monitor top-10 stability. Sudden drops indicate customer-churn risk.

Sibling cards merchants should reference together

CardWhy pair it with Top Products by Channel
BC Top SKUsStore-wide top-10; this card is per-channel decomposition.
BC Top SKUs RevenueRevenue-weighted view of hero products.
BC Channel Inventory SplitPair to verify allocation matches per-channel demand.
BC Channel AOVTop-product mix drives per-channel AOV.
BC Channel Refund RateCross-reference: high-revenue + high-refund SKUs are quality / fit issues.
BC Channel Revenue TrendTrend context; rising channel revenue with shifting top-10 means the assortment is changing.
BC Stock vs SalesVelocity-vs-stock view per top SKU.
BC Margin by BrandMargin context for top-revenue SKUs.

Reconciling against the vendor’s own dashboard

Where to look in BigCommerce Control Panel: Analytics → Sales → “Top products” view shows store-wide top-10. Channel Manager → individual channel → Reports shows per-channel sales by product on Plus / Pro / Enterprise. For B2B Edition: Channel Manager → B2B Edition → Reports shows wholesale-customer top products. Why our top-10 may differ from BC reports:
ReasonDirection
Bundle / kit treatment. We aggregate at parent product level; BC sometimes shows component SKUs separately.Different rows
Refund treatment. Default we use gross; BC’s view varies.Higher / lower per-SKU
Window alignment. Rolling-30 vs calendar-month near boundaries.Either direction
B2B inclusion. BC main analytics excludes B2B; we include.Different denominators
Variant aggregation. We aggregate at product; BC shows variants separately in some views.Different SKUs in top-10
Cross-connector reconciliation (when marketplace and ad integrations are connected):
CardExpected relationshipWhat causes legitimate divergence
amazon_sp.amazon_top_listingsAmazon SP-API’s top listings should match Amazon channel sliceSP-API shows units sold; we show revenue. Same rank usually, sometimes different.
google_ads.ga_top_converting_skusTop-converting paid-traffic SKUs typically match web top-10Paid traffic skews to first-time buyers; some SKUs over-index on paid vs organic.
klaviyo.kl_top_purchased_productsKlaviyo’s email-attributed top products correlate with web top-10Klaviyo’s attribution is click-window; some orders attributed to Klaviyo had earlier touchpoints.
The per-channel top products view is BC-aligned with similar cards on Shopify (per source_name) and Adobe Commerce (per store_id); merchant-facing semantics are equivalent.

Known limitations / merchant FAQs

My web top-10 has zero overlap with my Amazon top-10. Is that bad? Not necessarily. If the lack of overlap reflects intentional channel-specific merchandising (Amazon-only bundles, web-only premium SKUs), it’s strategic discipline. If it reflects accidental misalignment (a web hero SKU isn’t even listed on Amazon), it’s an opportunity. Audit each top-10 SKU against your other-channel listings to differentiate. Why doesn’t shipping appear as a “product” in my top-10? Shipping is order-level, not line-item-level. It’s excluded from the per-product aggregation. For shipping-revenue analysis use Total Revenue and decompose by line component. My B2B portal top-10 is identical month-over-month for 6 months. Healthy? Yes, that’s the normal B2B pattern. Wholesale customers reorder the same SKUs on schedules. Stability is healthy; sudden change is a warning sign, either you onboarded new accounts (good) or lost old ones (bad). Read alongside customer-count change. Should I aggregate by product or by variant? Default product-level. Variant-level is useful for fashion / apparel where size and colour are critical (M sells on Amazon, L sells on web is a real merchandising signal). Configure under Settings → Aggregation → Variant. My new SKU launched 2 weeks ago and is already in web top-10. Real or noise? Both possible. New launches often spike in week 1-2 from launch-promo traffic, then settle into normal velocity. Read week-3 ranking to see whether it sticks. For new launches always look at the 60-day vs 30-day position, sustained top-10 means it’s a hero; one-time top-10 means it was a launch artifact. Why doesn’t bundling show as a top-product? Bundles are aggregated at parent-product level. The bundle parent appears; component SKUs don’t appear separately. Configure under Settings → Bundle treatment if you want components shown. My headline top-10 doesn’t match the per-channel top-10s. Why? Because the headline is store-wide; per-channel is per channel. A SKU that’s #5 on web and #15 on Amazon may be #8 store-wide. The aggregation gives different rankings; this is expected. Multi-currency stores: how is revenue compared across currencies? By default we convert to your primary currency at daily FX rates for ranking. Configure native-currency view if you want each channel’s top-10 in its own currency without FX conversion. Native view doesn’t allow cross-channel SKU comparison but is more accurate for finance. What if a SKU has been discontinued mid-period? It still appears in the top-10 if its 30-day revenue makes it. The rank is based on past sales, not current availability. If discontinued, mark with the discontinued flag in BC catalogue; we annotate the SKU on the card. Can I configure top-20 or top-50 instead of top-10? Yes, the per-card setting under Settings → Display → Top-N. For very-long-tail catalogues (10,000+ SKUs) top-20 or top-50 is more useful; for tight assortments top-5 is enough. Default top-10 fits most BC store assortments.

Tracked live in Vortex IQ Nerve Centre

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