At a glance
Total promotional discount value applied to orders in the period. Magento stores discounts as a negative number indiscount_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 Y” rules, free-shipping rules, and BOGO rules. Special prices applied via catalogue (not cart rules) are NOT in this bucket; those are reflected insubtotaldirectly.
Calculation
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:
Insight pattern:
- 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).
- 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.
- 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.
- 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.
- 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. - 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.
- 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
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:
Cross-connector reconciliation (when these connectors are connected for this merchant):
Known limitations / merchant FAQs
Why does Magento store discounts as negative? Convention. Thediscount_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.