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

At a glance

Total discount value as a percentage of revenue, over the trailing 30 days. Margin-compression detector. Adobe Commerce stores often have higher discount-of-revenue % than Shopify equivalents because B2B tier pricing (customer_group_price) is structurally always-on. Healthy DTC ranges 3 to 8%; B2B-mixed stores 6 to 15%. Above 15% triggers margin scrutiny.
What it countsSUM(discount_amount) / SUM(grand_total). The numerator includes cart-rule discounts (BOGO, percent-off codes), customer-group price discounts (B2B tier pricing), and applied catalog price rules. Excludes shipping discounts (separate field).
API fielddiscount_amount, grand_total from GET /rest/V1/orders.
VAT / tax treatmentThe ratio is a percentage so tax-bias washes out only if both numerator and denominator are tax-treated identically. Adobe stores discount typically pre-tax; grand_total is post-tax. This means discount % is slightly understated relative to a pure pre-tax view.
Shipping inclusiondiscount_amount excludes shipping discount; grand_total includes shipping. Mild understatement of discount % because the denominator is “fatter” than the numerator.
DiscountsThis card IS discount measurement.
Credit Memo refund treatmentNOT subtracted. A discount given on an order later refunded still counts as discount spent.
state machine inclusionAll states except canceled.
pending_payment quirkIncluded; B2B net-30 orders with tier discounts are pipeline.
Multi-currency grand_total vs base_grand_totalUses base_discount_amount / base_grand_total for cross-currency rollup.
Store View scope (store_id)All Store Views; per-Store-View variants useful (B2B portal will show much higher discount %).
Time window30D vsP
Alert trigger>15% (margin compression)
Sentiment keydiscount_dependency
Rolesowner, marketing

Calculation

SUM(discount_amount) / SUM(grand_total)
  WHERE date BETWEEN [period_start, period_end]

Worked example

A homewares brand on Adobe Commerce 2.4.6 with US/UK/B2B Store Views. 30-day window ending Monday 4 May 26. Discount % by Store View:
Stream30D revenue30D discountDiscount %
US consumer$312,800$14,8004.7%
UK consumer$246,000$12,4005.0%
B2B portal$462,000$42,6009.2%
Blended$1,020,800$69,8006.8%
Vs prior 30D (blended): 5.4% prior vs 6.8% current = +1.4 pts. What this is telling leadership:
  1. B2B at 9.2% reflects tier pricing (always-on customer_group_price discounts). Material but expected; B2B unit margins absorb this in negotiated contracts.
  2. Consumer (US 4.7%, UK 5.0%) is in the healthy DTC range. A campaign month would push these to 8-10%; current levels suggest light campaign activity.
  3. Blended +1.4 pt rise vs prior is driven by the B2B share growing (more B2B mix = higher blended discount %) plus a small consumer uptick (Mother’s Day campaign extension).
  4. Cross-checking B2B Revenue Share: B2B share rose 5.6 pts in the period. The discount % rise is consistent with the B2B mix shift; not an underlying margin compression issue.
  5. Cross-checking Discount Over Time: the daily chart confirms B2B baseline-discount drove the rise; consumer campaign discount was steady.
  6. Action: no immediate margin concern, but worth setting up a per-Store-View alert at 12% (consumer Store Views) to catch a future campaign creep without dragging on the B2B alert. The current 15% blended trigger is appropriate for the current B2B-mix shape but would not catch a consumer-side issue.
The point: discount % on Adobe Commerce needs segmentation. The blended view obscures B2B tier pricing dragging the average up; per-Store-View clarity reveals whether margin compression is consumer-side (campaign) or structural (B2B mix).

Sibling cards merchants should reference together

CardWhy pair it with Discount %
Discount Over TimeDaily trend chart of the absolute value.
Total DiscountSingle-period absolute value.
Total RevenueThe denominator.
AOVDiscount campaigns drag AOV.
B2B Revenue ShareB2B mix changes blended discount % independently of campaign activity.
B2B AOV vs B2C AOVB2B tier-pricing impact on per-segment AOV.
Refund RateDiscount-driven impulse buys can have higher refund rates.
shopify.discount_pctCross-platform peer.

Reconciling against the vendor’s own dashboard

Where to look in Adobe Commerce Admin:
Reports > Sales > Coupons lists per-rule usage; manual computation needed for the % vs revenue.
Reports > Sales > Orders with date filter has a per-period discount column; the report total includes all discount types.
Marketing > Cart Price Rules for the rule list and per-rule discount totals.
Why our number may legitimately differ from Admin:
ReasonDirection of divergence
Coupon vs cart-rule scope. Admin Coupons report shows code-only rules; this card includes all discount types.Card higher than coupons-report-only
Customer-group price. Often invisible in Admin reports as “discounts”; the card includes them in discount_amount.Card higher than admin perception
Time-zone. Admin in Store View timezone; card UTC.Boundary effects
Currency. Card uses base_* fields. Admin uses Store View base.Material on multi-currency
canceled exclusion. Card excludes; Admin includes unless filtered.Marginal
Cross-connector reconciliation (when these connectors are connected for this merchant):
PairExpected relationshipWhat divergence tells you
ESP campaign attributionESP-attributed discount ≤ card totalIf ESP shows higher attributed discount than card has spent, attribution overlap.
google_ads.google_ads_promoGoogle Ads-attributed promotional revenue ≤ cardMaterial divergence indicates attribution drift.

Known limitations / merchant FAQs

Why is my Adobe Commerce discount % higher than industry benchmarks for ecommerce? Industry benchmarks are dominated by pure-DTC stores. Adobe Commerce skews B2B-mixed; B2B tier pricing structurally drives discount % higher. Use Adobe-Commerce-matched peer benchmarks: pure-DTC 3-6%, B2B-mixed 6-12%, B2B-heavy 10-20%. Adobe Commerce vs Magento Open Source: difference? None at the calculation. Both editions handle discount machinery identically. My multi-store, can I see per-Store-View discount %? Yes, configure per-Store-View variants. Strongly recommended because B2B-tier-pricing-driven discount % can mask consumer-side campaign creep. Why exclude shipping discounts from the numerator? Shipping discounts (shipping_discount_amount) are a separately-managed promotional surface (free shipping over £X is a marketing decision distinct from item-discount campaigns). The card defaults to product-discount-only; configure to include shipping if you want a unified view. Customer-group price counts as a discount, why? Adobe Commerce’s data model: every customer-group-price-applied-vs-base-price difference flows into discount_amount as a per-line-item discount. From an accounting perspective this is correct (the difference is revenue forgone). From a campaign perspective, it’s not a “campaign discount”. The card surfaces the total; rule-name decomposition (in Discount Over Time) lets you separate. My discount % spiked but I didn’t run a campaign, why? Likely B2B mix shift. If B2B share rose, blended discount % rises mechanically because B2B has higher structural discount. Cross-check B2B Revenue Share. Why does the alert at 15% feel too lenient for my consumer-only Store View? The 15% default is for blended (B2B + consumer). Configure per-Store-View thresholds: 8-10% for consumer Store Views, 15-20% for B2B portal Store Views. My multi-currency Adobe Commerce, is the % comparable across currencies? Yes; the card uses base_* for both numerator and denominator so FX-conversion-related artefacts cancel out. Why isn’t the % subtracting for refunded orders? Discount given on a refunded order is still a discount the merchant chose to extend. The customer received the discounted price; the refund returned the post-discount cash. The discount cost was incurred. For pure-net-margin analysis you’d subtract; for marketing-cost analysis the gross figure is right.

Tracked live in Vortex IQ Nerve Centre

Discount % of Revenue is one of hundreds of KPI pulses Vortex IQ tracks across Adobe Commerce 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.