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

At a glance

Total promotional discount value applied to orders in the period. Magento stores discounts as a negative number in discount_amount; the card returns the absolute value (positive). Aggregates everything that landed in the cart-rule discount bucket: SalesRules promotions, B2B Customer Group tier prices when discount-coded, “spend XgetX get Y” rules, free-shipping rules, and BOGO rules. Special prices applied via catalogue (not cart rules) are NOT in this bucket; those are reflected in subtotal directly.
What it countsSUM(ABS(discount_amount)) over orders created in the 30-day window. The Magento field is stored negative (e.g. -£15 for a £15 discount); the card converts to positive for display.
API fielddiscount_amount (negative), discount_description, coupon_code, base_discount_amount from GET /rest/V1/orders.
What’s in scope(a) Cart price rules from Marketing > Promotions > Cart Price Rules (the canonical Magento promo engine), (b) free-shipping rules that include a non-zero discount_amount portion, (c) Customer Group tier-discounts applied via SalesRules (rare but possible).
What’s NOT in scope(a) Catalogue special prices (the SKU’s permanent sale price; reflected in subtotal directly, no discount_amount attribution), (b) B2B negotiated tier pricing applied via customer_group_price (changes the line price, no rule-based discount field), (c) refunds (those are Credit Memos, separate document). The card is creation-time discount, not net-of-refund.
VAT / tax treatmentThe discount is excl-tax by default in Magento (the rule applies to subtotal pre-tax, then tax is recalculated on the post-discount subtotal). UK/EU merchants who want the customer-perceived discount (incl-tax) need discount_amount + discount_tax_compensation_amount. The “incl-tax discount” view is more accurate for marketing P&L.
Shipping inclusionFree-shipping discount goes to shipping_discount_amount not discount_amount. So the card excludes free-ship value by default. To include free-ship in the “marketing cost” view, add shipping_discount_amount. The discount-related cards on this connector default to product-discount only; free-ship is on its own.
DiscountsThe card IS the discount view.
RefundsA refunded order’s discount is not subtracted. If the refund partially reverses the order, the discount portion is partially reversed too via Credit Memo, but those reversed-discounts appear in creditmemo.discount_amount, not here.
CancelledCancelled orders’ discounts are excluded by default (they don’t count as “applied”).
CurrencyMixed-currency display by default. base_discount_amount for FX-neutral.
ChannelsAll Adobe Commerce sources.
Multi-store scopeAll Store Views by default.
Time window30D rolling.
Alert triggerNone on this card directly. The rate-side alert is on Discount % of Revenue.
Rolesowner, marketing

Calculation

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

Worked example

A B2B+DTC apparel merchant on Adobe Commerce 2.4.7. UK base, GBP. 4,820 orders. Period: 14 Apr 26 to 13 May 26. Discount aggregates:
SourceSUM(ABS(discount_amount))Order countAvg discount per discounted order
WELCOME10 (10% first-order coupon)£8,4001,120£7.50
SPRING25 (25% sitewide spring sale, ran 1-14 Apr)£21,400480£44.58
LOYALTY-VIP (auto-applied 15%)£4,200380£11.05
BUNDLE-SAVE (10% on 3+ items rule)£6,800320£21.25
B2B Tier Discount (Customer Group rule)£12,20080£152.50
FREE-SHIP (rule with no discount_amount, only shipping_discount_amount)(£0 in this card; £14,200 in shipping_discount)970n/a
Total discount_amount£53,0002,380 (some overlap)avg £22
Insight pattern:
  1. Total discount £53,000 on revenue £950,000 = 5.6% discount %. Within healthy norms (typically 3-8% for DTC apparel; 1-3% for B2B-heavy stores).
  2. Spring sale (SPRING25) is the dominant driver at £21,400 (40% of total discount). A 14-day sitewide sale chunked the spring AOV down. Cross-link with Discount Over Time to see the daily spike.
  3. Welcome coupon (WELCOME10) absorbed £8,400 across 1,120 first-time buyers. Customer acquisition cost analysis: £7.50 per first-time buyer in coupon discount, plus the merchant’s other CAC. Cross-link with New Customers to see if the welcome flow is attracting profitable cohorts.
  4. B2B Tier Discount £12,200 at avg £152.50/order across 80 B2B orders. This is the contract-tier discount the merchant has agreed with key accounts. Should be relatively flat month-on-month; if it spikes, either a new tier was activated or rule-application logic changed.
  5. Free-shipping is invisible here by design (sits in shipping_discount_amount). To get the full “marketing cost”, add £14,200 of free-shipping discounts, total marketing cost £67,200 or 7.07% of revenue.
  6. Cross-link with Total Discount prior period: £36,400. Recent +46% jump is dominated by the spring sale, which the merchant chose. After 14 Apr the daily discount value should drop to baseline; if it doesn’t, a rule got stuck enabled.
  7. Action: ensure SPRING25 rule is auto-deactivated by date end (Magento sometimes leaves rules “From-Date set, To-Date null” causing rules to run forever). Verify in Marketing > Promotions > Cart Price Rules > [SPRING25] > To Date.

Sibling cards merchants should reference together

CardWhy pair it with Total Discount Used
Discount % of RevenueRate-side companion.
Discount Over TimeDay-by-day shape; spots stuck-enabled rules.
Total RevenueDenominator-of-context.
Total ShippingFree-shipping discount sits in shipping_discount_amount, separate.
Free vs Paid ShippingThe free-ship volume (which equates to absorbed shipping discount).
New CustomersWelcome-coupon driven new buyers.
Refund ValueDiscounts on refunded orders are partially reversed via Credit Memos.
klaviyo.coupon_redemption_countEmail-issued coupon redemption rate.
shopify.total_discountShopify peer.

Reconciling against the vendor’s own dashboard

Where to look in Adobe Commerce Admin:
Reports > Sales > Coupons breaks down discount value by coupon code. Set the date range and Show By “Coupon Code” to see the per-rule contribution. The total at the bottom should approximately match this card.
For per-rule promotion data:
Marketing > Promotions > Cart Price Rules lists every active rule. Click into a rule to see its from-date / to-date and conditions. A rule with discount value showing in this card but no end date is the most common reason for “discount keeps flowing after the sale ended”.
Reports > Sales > Coupons does not include automatic (no-coupon) rules; the Sales > Orders grid does. For complete per-rule reconciliation, query sales_order with the applied_rule_ids field. Why our number may legitimately differ from Adobe Commerce Admin:
ReasonDirection of divergence
Reports > Sales > Coupons excludes auto-applied rules. Rules without coupon codes (e.g. an auto “10% off if subtotal > £100”) don’t appear there. They DO appear in this card.Card higher than Admin Coupons report
Free-shipping discount. Free-ship rules typically populate shipping_discount_amount, not discount_amount. Card excludes by default; Admin’s Coupons report may or may not include depending on rule configuration.Possible material gap if mismatched
Currency. Admin defaults to base currency; this card defaults to display-currency.Material for multi-currency stores
Reports indexer lag. Admin Coupons report uses nightly aggregation. This card refreshes every 5-15 min.Vortex IQ ahead by ~12-24h
Cancelled inclusion. Card excludes cancelled orders’ discounts; Admin may include depending on filter.Card lower than Admin “Status=Any” filter
Time-zone, sync lag. Standard.Minor
Cross-connector reconciliation (when these connectors are connected for this merchant):
CardExpected relationshipWhat divergence tells you
klaviyo.coupon_redemption_countKlaviyo’s redemption count for email-issued coupons should match this card’s per-coupon count for those rulesIf Klaviyo issues 200 codes and only 50 redeem, that’s normal email open-rate dynamics; if Klaviyo issued 50 and 200 redeem here, customers are sharing codes (multi-use rule when it shouldn’t be).
google_analytics.ga_promo_attributionGA4 attributes orders to promo via UTM and coupon-codeGA4 misses ~10-25% due to tracking gaps; expect Adobe higher.

Known limitations / merchant FAQs

Why does Magento store discounts as negative? Convention. The discount_amount field on the order is a signed delta against subtotal; a discount reduces subtotal so it’s negative. The card converts to absolute value for display because “Total Discount Used = £53,000” reads more naturally than ”−£53,000”. Why is catalogue special-price not in this card? Because Magento doesn’t track it as a discount event. A product with price=£100 and special_price=£75 ships at £75 line total; there’s no discount_amount field populated. The subtotal is just lower. Catalogue special pricing is permanent (until removed), so it isn’t really a “discount campaign” in the marketing sense. Free shipping is missing here, where is it? In shipping_discount_amount. The free-shipping rule populates that field separately. The card excludes it by default to keep “discount on goods” and “discount on shipping” distinct, both are merchant cost but they are different levers. A rule keeps applying after the sale ended, why? A Cart Price Rule with From Date set but To Date blank runs forever. The most common cause of “stuck” discounts. Always set both dates. Marketing > Promotions > Cart Price Rules > [rule] > To Date is mandatory for time-bound campaigns. My multi-store discount, the same coupon shows different totals per Store View, why? Customer Group conditions on the rule. A rule that targets “Wholesale” Customer Group only applies on B2B Store Views; on DTC Store Views the rule fires zero times. Healthy. The card sums across; per-Store-View slice via filter. Why doesn’t klaviyo.coupon_redemption_count match? Klaviyo issues codes; Adobe applies them. If Klaviyo issued 1,000 codes and Adobe applied 1,200, customers shared codes (multi-use rule + circulation). If Klaviyo issued 1,000 and Adobe applied 200, redemption is at 20%, normal email open rate × redeem rate. Discounts on refunded orders, are they counted? Yes; the card is creation-time. The discount was applied at creation. If the order is later refunded, the Credit Memo’s discount_amount represents the reversal portion; it’s tracked separately on Refund Value. For “net discount cost”, subtract refunded discounts. Why is my B2B Tier Discount showing here? I thought tier prices were catalogue. Two paths. Catalogue tier prices (set on the SKU) bypass discount_amount (they reduce subtotal directly). Cart-rule-based tier discounts (set as a Customer Group condition on a SalesRule) DO populate discount_amount. The merchant probably has the latter; check Customers > Customer Groups for how the tier was configured. Today’s number isn’t moving even though I see orders coming in, why? Either today’s orders aren’t using any active promotions, or the promo’s discount_amount is being added to shipping_discount_amount instead (e.g. it’s a free-shipping rule). Cross-check the rules’ discount target (subtotal vs shipping) in the rule definition. Can I see this by Customer Group? Yes. Filter via Customer Group. B2B groups should show low share (most B2B uses negotiated catalogue prices); DTC groups dominate.

Tracked live in Vortex IQ Nerve Centre

Total Discount Used 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.