At a glance
Revenue decomposition by dimension. Available cuts: Customer Group (B2B vs DTC vs VIP), product Category, Store View, Country (from shipping_address.country_id), payment method, and “new vs returning customer”. Reveals the revenue mix that headline cards aggregate.
| What it counts | SUM(grand_total) GROUP BY dimension over orders in the 30-day window. The card lets the merchant pivot through dimensions without separate cards. |
| API field | grand_total, customer_group_id, customer_id, store_id, shipping_address.country_id, payment.method, line-item category_ids from GET /rest/V1/orders. |
| Why it’s a single card with a dimension switcher | Adobe Commerce stores rich per-order metadata (Customer Group, Store View, country, payment method) that all roll up to the same grand_total. A single dimension-switching card avoids creating dozens of near-duplicate cards. |
| VAT / tax treatment | Tax-inclusive (grand_total). For UK/EU merchants, Customer Group dimension may show different tax burdens (Wholesale group typically tax-exempt, retail group fully-taxed). The card respects whatever tax was applied. |
| Shipping inclusion | Included in grand_total. |
| Discounts | Already deducted, this is post-discount paid revenue. |
| Cancelled orders | Excluded by default. Toggle to include. |
| Refunds | Not subtracted, the card is creation-time. |
| Currency | Mixed-currency display by default. base_grand_total for FX-neutral. |
| Multi-store scope | Store View IS one of the dimensions. Slicing-by-Store-View is the most-used view for multi-region merchants. |
| New vs returning | Computed: a customer is “new” if their first order in the system falls within the 30-day window. Anyone with a prior order (regardless of how old) is “returning”. For 90D rolling repeat windows, see Repeat Customer Rate. |
| Time window | 30D rolling. |
| Alert trigger | None on this card directly. |
| Roles | owner |
Calculation
Calculated automatically from your Adobe Commerce 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 B2B+DTC merchant on Adobe Commerce 2.4.7. UK + US + DE Store Views. Period: 14 Apr 26 to 13 May 26. Total revenue £950,000 (mixed-currency display). By Customer Group:| Group | Revenue | % | Order count | Avg AOV |
|---|---|---|---|---|
| Wholesale (B2B Companies) | £342,000 | 36.0% | 308 | £1,110 |
| Retail (DTC standard) | £498,000 | 52.4% | 4,210 | £118 |
| VIP (registered loyalty) | £92,000 | 9.7% | 250 | £368 |
| NOT LOGGED IN (guest) | £18,000 | 1.9% | 52 | £346 |
| Store View | Revenue | % | Notes |
|---|---|---|---|
| UK Main | £612,000 | 64.4% | dominant |
| US Main | $186,000 (≈ £148,800) | 15.7% | growing |
| DE | €98,400 (≈ £84,000) | 8.8% | EU expansion |
| UK Wholesale Portal (B2B-dedicated) | £105,200 | 11.1% | B2B-only |
| Country | Revenue | % |
|---|---|---|
| United Kingdom | £612,000 | 64.4% |
| United States | $186,000 | 15.7% |
| Germany | €78,000 | 6.9% |
| Ireland | £18,400 | 1.9% |
| Australia | $14,200 | 1.2% |
| Canada | $8,400 | 0.7% |
| Cohort | Revenue | % | Order count |
|---|---|---|---|
| New customers (first ever order in window) | £218,000 | 22.9% | 1,420 |
| Returning customers | £732,000 | 77.1% | 3,400 |
| Method | Revenue | % |
|---|---|---|
| Stripe (card) | £462,000 | 48.6% |
| Net-30 PO (B2B) | £182,000 | 19.2% |
| PayPal | £128,000 | 13.5% |
| Apple Pay | £74,200 | 7.8% |
| Klarna | £38,400 | 4.0% |
- B2B contributes 36% of revenue from 6.4% of orders, confirming the “few accounts, many dollars” B2B economics. Cross-link with B2B Account Silence for retention risk.
- 77% of revenue is returning customers. Healthy for a B2B-leaning merchant. If returning share fell below 60%, retention would be a problem.
- EU expansion (DE) at 6.9% of revenue. Recently launched; track monthly to ensure growth.
- Apple Pay at 7.8% revenue but 10% orders. Lower AOV cohort (mobile checkout). Healthy for impulse-DTC.
- NOT LOGGED IN (guest) at 1.9% is healthy. High guest share (e.g. 30%+) indicates account-friction during checkout; investigate via the account-creation funnel.
- Action queue: (a) attribute the 22.9% new-customer cohort to acquisition channels via
google_analytics.ga_new_customer_attribution, (b) set up category-level revenue tracking for the children’s-clothing line which sits at the new UK Reduced VAT 5% rate.
Sibling cards merchants should reference together
| Card | Why pair it with Revenue Breakdown |
|---|---|
| Total Revenue | The headline; this card decomposes it. |
| Customer Segments | Customer Group dimension is sourced from Adobe Customer Groups. |
| Customer Countries | Country dimension; pair for geographic deep dive. |
| Payment Methods | Payment method dimension. |
| B2B Revenue Share | The B2B slice of the Customer Group dimension is the most-used view. |
| Revenue Over Time | Time dimension companion. |
| Revenue by Day of Week | DOW dimension. |
shopify.revenue_breakdown | Cross-platform peer. |
Reconciling against the vendor’s own dashboard
Where to look in Adobe Commerce Admin:Reports > Sales > Orders with date range; for “By Customer Group”, Reports > Customers > Customer Group. Adobe doesn’t have a unified “revenue breakdown” report; multiple reports must be combined. Reports > Customers > Customers by Number of Orders for new vs returning approximation.For Store View slicing:
The Admin scope selector (top-left of any Reports page) sets the Store View. Compare each Store View’s Reports > Sales > Orders to this card’s Store View dimension.For payment-method slicing:
Reports > Sales > Orders does not break out by payment method natively in 2.4.x. Sales > Orders with the Payment Method column displayed and grouped manually is the only direct view.Why our number may legitimately differ from a manual Admin computation:
| Reason | Direction of divergence |
|---|---|
| Currency. Admin reports default to base; this card defaults to mixed display. | Material for multi-currency stores |
| Reports indexer lag. Various reports use the nightly aggregated tables. | Vortex IQ ahead by ~12-24h |
| Cancelled inclusion. Card excludes by default; admin reports vary. | Standard |
| NOT LOGGED IN customer group. Adobe groups guest checkouts under a “NOT LOGGED IN” Customer Group. Some merchants override to “Retail Guest”. The card displays whatever the underlying record says. | Cosmetic |
| Time-zone, sync lag. Standard. | Minor |
| Card | Expected relationship | What divergence tells you |
|---|---|---|
google_analytics.ga_revenue_by_country | GA4 country dimension should approximately match this card’s country slice | GA4 misses 10-25% due to tracking gaps. Material differences in country distribution may flag tracking issues in specific regions (consent rules differ). |
stripe.stripe_revenue_by_country | Stripe geographic from billing address | Should match Stripe-paid subset to within 1%. |
Known limitations / merchant FAQs
Why is my Wholesale group’s revenue lower than expected? Customer Group is set per customer, not per order. If a customer was reassigned from Retail to Wholesale during the window, prior orders retain the old group. Cross-check by re-aggregating using the customer’s current Customer Group; the card supports both views. A “VIP” Customer Group exists in Magento but doesn’t appear here, why? No orders from VIP customers in the window. Adobe Commerce Customer Groups are defined in Customers > Customer Groups; the card only shows groups with at least one order in the window. B2B Companies dimension vs Wholesale Customer Group, which to use? Companies are richer (they group multiple buyers under one parent organisation). Customer Groups are flatter (one customer = one group). For a true “per-Company revenue” view, slice by Company; for a “per-Customer-Group revenue” view, slice by group. Most B2B merchants want the Company view. My multi-store revenue per Store View doesn’t quite sum to the headline, why? Three reasons: (1) admin-created orders without a Store View (rare); (2) currency mixing; (3) cancelled-handling. For exact reconciliation, exclude cancelled, switch to base currency, and sum. New vs returning, what does “first ever order” mean for guests? For guests, identity is by email. A guest who ordered for the first time in the window is “new”; a guest whose email had a prior order (registered or guest) is “returning”. This is approximate, the same person using two emails appears as two new customers. Country dimension uses shipping address, what about billing-address country? Card defaults to shipping address (shipping_address.country_id) because that drives delivery economics. Toggle to billing-country for tax-jurisdiction views. UK B2B with US billing-but-UK-shipping is rare but does happen.
Why is “category” attribution noisy?
Magento allows a product to belong to multiple categories. The card uses the product’s primary category by default. A product in both “Men’s Tops” and “Spring Sale” appears under “Men’s Tops” only. To split a product across multiple categories, use a custom revenue-attribution rule.
B2B Tier Discount only applies to Wholesale group, why does it show in Retail too?
It shouldn’t. If you see Tier Discount applied to non-Wholesale orders, the rule’s Customer Group condition is misconfigured. Check Marketing > Promotions > Cart Price Rules > [tier rule] > Conditions to ensure Customer Group is constrained.
Can I add custom dimensions?
Yes via the Vortex IQ workspace’s custom-dimension feature. Common adds: marketing channel (from UTM stored on the order), referrer source (from extension_attributes), agent-rep ID (from B2B sales rep assignment).
Time-zone affects the new-vs-returning count, how?
A customer’s “first order ever” is in UTC by default. If you operate in a different timezone, an order that was “yesterday in your locale, today in UTC” might shift cohort. Use the timezone-override config to align with your finance year.