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

At a glance

Daily discount value (SUM(discount_amount)) over the trailing 90 days. Surfaces promotional-spend cadence, identifies long-tail discount creep (B2B tier prices auto-applying without explicit campaigns), and reveals the lifecycle of specific promotional codes. Adobe Commerce aggregates customer-group-price discounts (B2B tier pricing) and cart-rule discounts (BOGO, percent-off codes) into the same discount_amount field; the card distinguishes them via the rule-name dimension where available.
What it countsSUM(discount_amount) GROUP BY date(created_at). Discount amount is per-order total of cart-rule and item-rule discounts applied. The series shows daily totals; rule-level decomposition available as a sub-view.
API fielddiscount_amount (negative-or-zero on each order) and applied_rule_ids from GET /rest/V1/orders. Rule names from GET /rest/V1/salesRules.
VAT / tax treatmentdiscount_amount is typically pre-tax in Adobe Commerce (depends on Stores > Configuration > Sales > Tax > Apply Discount on Prices configuration). For UK/EU stores configured for tax-inclusive prices, discount can be on the gross figure; the card surfaces the figure as Adobe stores it.
Shipping inclusiondiscount_amount typically excludes shipping discounts; shipping discounts go to shipping_discount_amount. The card sums discount_amount only by default.
DiscountsThis card IS the discount measurement.
Credit Memo refund treatmentDiscounts on cancelled or refunded orders are still counted. The discount was offered; the campaign-effectiveness measurement should still reflect it.
state machine inclusionAll states except canceled (a discount on a cancelled order didn’t actually convert).
pending_payment quirkIncluded; B2B net-30 orders typically have applied customer_group_price discounts.
Multi-currency grand_total vs base_grand_totalUses base_discount_amount for cross-currency rollup.
Store View scope (store_id)All Store Views; per-Store-View overlays useful for region-specific campaign analysis.
Time window90D daily granularity.
Alert triggerNone by default.
Rolesowner, marketing

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 homewares brand on Adobe Commerce 2.4.6 with US/UK/B2B Store Views. 90-day window ending Monday 4 May 26. 90-day discount overview:
MetricValue
Total base_discount_amount (90D)$124,800
Average daily discount$1,386
Largest single-day discount$4,820 (Mother’s Day campaign Saturday)
Standard deviation$740
Discount as % of total revenue4.9%
Top 5 cart rules by 90-day spend:
RuleType90D total
WELCOME1010% off first order$24,400
Mother’s Day flash 20%timed campaign$18,200
Free shipping over £50 (UK)shipping rule$14,800 (in shipping_discount_amount, not in this card)
B2B Tier-2 customer-group pricealways-on B2B tier$42,600
WINTER2525% off seasonal$9,800
What this is telling marketing:
  1. B2B tier pricing accounts for $42,600 of the 90-day discount total, the largest single line. This is structurally embedded in B2B contracts, not a campaign cost. Many merchants underestimate this because it doesn’t appear as an explicit campaign.
  2. **WELCOME10 (24,400)isthelargestconsumercampaigncost.ROImath:24,400) is the largest consumer campaign cost.** ROI math: 24,400 spent on first-order discount; first-order revenue (gross) attributable to this rule is ~244k(10244k (10% discount implies 244k of qualifying baskets). Cohort retention determines whether the spend pays back.
  3. The Mother’s Day spike ($18,200 over a 3-day window) is a seasonal cluster; the daily chart shows the spike clearly.
  4. WINTER25 still costs $9,800 over 90 days even though winter is over. Cause: the rule has no end-date constraint and is still being applied (B2B accounts who saved the code, returning customers using saved discounts). Consider sunsetting expired rules.
  5. Cross-checking Discount %: the 4.9% discount-of-revenue is in the healthy range (DTC merchants commonly run 4 to 8%); B2B-heavy stores sometimes see 8 to 12% if tier pricing is aggressive.
  6. Action items: sunset WINTER25 (saves ~$3k/quarter); re-evaluate B2B tier pricing on a per-Company basis (some Tier-2 accounts may merit Tier-1, others may have outgrown Tier-2 and could be moved up).
The point: discount-over-time exposes the structural-vs-campaign decomposition. On Adobe Commerce specifically, the customer-group price layer often dwarfs the explicit-campaign layer, and merchants who don’t see this card miss the bigger cost.

Sibling cards merchants should reference together

CardWhy pair it with Discount Over Time
Discount %Single-period summary as % of revenue.
Total DiscountSingle-period absolute value.
AOVDiscount campaigns drag AOV down; the chart correlates with AOV dips.
Total RevenueDenominator-of-context.
Daily Order TrendsVolume lift correlates with discount spikes.
B2B Revenue ShareB2B tier-pricing structural discounts are part of the B2B revenue cost-of-sale.
Top Refunded SKUsDiscount-driven impulse buys sometimes refund at higher rates.
shopify.discount_over_timeCross-platform peer.

Reconciling against the vendor’s own dashboard

Where to look in Adobe Commerce Admin:
Reports > Sales > Coupons lists rule-by-rule usage with totals. Adobe’s report distinguishes coupon-codes from cart rules; some discounts (customer-group price) don’t show in coupon report.
Marketing > Cart Price Rules shows the rule list and per-rule “Times Used” plus “Total Discount” stats.
Marketing > Catalog Price Rules shows item-level discounts (separate from cart rules; commonly used for category-wide promotions).
Sales > Orders > [Order ID] > Items > Discount column shows per-order discount detail.
Why our number may legitimately differ from Admin:
ReasonDirection of divergence
Coupons report scope. Admin’s Coupons report shows code-only rules; this card includes cart-rule and customer-group-price discounts that aren’t necessarily code-driven.Card higher than coupons report
Time-zone. Admin in Store View timezone; card UTC.Boundary effects
Shipping discounts. Card excludes by default (shipping_discount_amount field). Admin’s per-order discount column may include them.Card lower per-order
Currency. Card uses base_discount_amount for rollup.Material on multi-currency
canceled exclusion. Card excludes; Admin reports include unless filtered.Card lower
Cross-connector reconciliation (when these connectors are connected for this merchant):
PairExpected relationshipWhat divergence tells you
ESP campaign reports (Klaviyo/Mailchimp)ESP-attributed discounts ≤ card totalIf ESP shows higher attributed discount than this card has spent, attribution overlap (multiple touches per order).
google_analytics.ga_promo_codesGA4 promo-code attributed revenue should reconcile with the rule’s discount costMaterial divergence indicates GA4 promo-attribution drift.

Known limitations / merchant FAQs

Why does my discount total seem higher than the campaigns I ran? Most likely cause on Adobe Commerce: customer-group price (B2B tier pricing) is structurally applied to every B2B order. Merchants don’t perceive this as “discounts” but Adobe stores it in discount_amount. Your campaign discounts plus B2B tier discounts together explain the total. Adobe Commerce vs Magento Open Source: any difference? None at the calculation. Both editions use the same cart-rule and customer-group-price machinery. Why aren’t shipping discounts in this chart? They’re stored separately in shipping_discount_amount. Configure the manifest to include them if you want a unified discount-spend view; default excludes them so cart-rule and tier-pricing dollar comparisons are like-for-like. My multi-store Adobe Commerce, can I see per-Store-View overlays? Yes, configure per-Store-View series. Useful when one Store View runs region-specific campaigns. Why does the chart spike Monday morning even when no campaign launched? B2B end-of-month POs often place Monday with stacked customer-group-price discounts; aggregate discount value can spike independently of explicit campaigns. A discount rule expired weeks ago but is still showing daily spend, why? Expired rules can still apply if customers have saved coupon codes (Adobe’s standard cart-rule machinery validates code-vs-rule at use, not at save). For permanent removal, set the rule’s “Active” flag to No, not just an end-date. Discount as % of revenue is 4.9%, is that high? Category-dependent. DTC consumer baseline is 3 to 6%; promotional-heavy brands run 8 to 12%; B2B baseline is 5 to 15% (driven by tier pricing). Your 4.9% is mid-range. **Why does the worked example have 42,600ofB2Btierdiscount,isthatright?Yes.B2Btierpricingona42,600 of B2B tier discount, is that right?** Yes. B2B tier pricing on a 462k 90-day B2B revenue base implies an average ~9% structural discount, which is normal for wholesale tier pricing. Higher-volume B2B accounts often have 15 to 25% tier discounts; the $42k figure is the dollar-weighted average across all B2B Companies.

Tracked live in Vortex IQ Nerve Centre

Discounts Given Over Time 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.