At a glance
Daily discount-given total plotted over 90 days. The shape tells you how promotional your store has been over the quarter, where the spikes were (sales, coupons, loyalty redemptions), and whether discount dependency is creeping upward in the long-term baseline.
Calculation
Worked example
A UK fashion brand on BigCommerce Plus, 90-day window from 13 Jan 26 to 12 Apr 26.
What’s interesting:
- The baseline has crept from £390 to £1,460/day in 90 days, a 3.7x rise. Even on quiet days the store now gives away ~£1,400 in discounts; that’s a structural shift, not a campaign cycle. Cross-check with Discount % of Revenue, if discount % is rising even on non-promo days, you’ve quietly trained customers to wait for the next code.
- The 17 Mar £5,200 spike is St Patrick’s Day, an unplanned UK promo run by the influencer team without finance signoff. Visible on the trend, missing from finance’s promo calendar. Reconcile this card monthly with your promo calendar; orphan spikes are usually unauthorised codes leaking through coupon-aggregator sites like RetailMeNot or Honey.
- The 28 Mar spike (£6,800) is intentional spring launch. Pair with BC Top Coupons to see whether the launch code (
SPRING25) was the largest contributor; if so, the launch worked as designed. If a different code is on top (HONEY15,RETAILME10), the launch was eclipsed by ambient extension traffic. - Bank holiday spike on 11 Apr is normal. UK fashion has a 4-day Easter weekend bump; if your trend doesn’t show it, your promotions team didn’t run the seasonal campaign and you missed revenue.
- The trend is dangerous, the daily cadence is healthy. Spikes are fine; rising baselines mean discount-as-a-floor pricing has set in. The fix is a 30-day “no codes” period to retrain customers, painful in week 1, profitable by week 4.
- Compare 30-day rolling discount to 30-day rolling revenue (Total Revenue). If discounts grew faster than revenue, margin is leaking.
- Open BC Top Coupons. Identify the top 3 codes by redemption value; verify each is a sanctioned campaign. Aggregator-leaked codes (
HONEY*,RETAILME*,RAKUTEN*) should be killed and reissued as cookie-tied codes. - Audit storewide promotions in BC Marketing → Promotions. Disable promotions that have run for more than 60 days, customers stop perceiving them as deals.
- Run a 14-day code-free test. Drop all storewide codes for 14 days. Track conversion rate impact via BC Channel Conversion Rate, most stores see CR fall 8-15% but margin per order rises 12-20%.
- Cross-reference with
google_adwords.ga_promo_extensionsto ensure paid-search promo extensions match the live promo calendar; stale extensions are a common leakage vector.
Sibling cards merchants should reference together
Reconciling against the vendor’s own dashboard
Where to look in BigCommerce Control Panel: Marketing → Promotions shows active promotion-level usage and total discount given per promotion. Analytics → Marketing (Plus / Pro / Enterprise) has a “Promotions over time” view that closely mirrors this card. For coupon-specific drilldowns, Marketing → Coupons shows redemption count and value per code. For B2B Edition, contract pricing is configured under B2B → Price Lists. Be aware: B2B contract prices show as “discount vs list” on this card, which is technically accurate but may be larger than what the merchant thinks of as “promotional discount”. For a promo-only view filtercustomerId NOT IN (B2B customer ids) upstream.
Why our number may legitimately differ from BC’s promotion reports:
Cross-connector reconciliation:
Same-metric documentation cross-reference:
shopify.discount_over_time(planned)adobe_commerce.discount_over_time(planned)
Known limitations / merchant FAQs
My discount baseline keeps creeping up, what’s the right intervention? Run a 30-day no-storewide-promo experiment. Drop every storewide code, keep only segmented loyalty-tier offers. The first 7-10 days will show a 5-15% conversion-rate dip; by week 3 most stores are back to baseline conversion at 12-20% better margin per order. The hardest part is internal politics, marketing teams optimise for revenue per session and finance optimises for margin per order. This card is the lever that lets you have the conversation. There’s a spike I can’t explain, what does that usually mean? Three usual causes, in order of likelihood. (1) Aggregator-extension code leak, aHONEY15 code your team didn’t sanction is being applied automatically by browser extensions. (2) Marketplace promotion, Amazon ran a Lightning Deal that BC inherited the discount from. (3) Support team manual discount surge, a refund week where agents handed out compensation discounts liberally. Cross-check with BC Top Coupons to identify the code; if no code is dominant, the discount is from manual overrides.
Should B2B contract-price discounts show up here?
Definitionally yes (BC stores them in discountAmount). Practically it depends on how you frame the metric. If you report “promotional discount” to finance, B2B contract pricing inflates the number unhelpfully; we recommend running a B2B-excluded view as a separate dashboard slice. If you report “total discount given vs list price”, this card is the right number.
Why is my discount always £0 for orders from my B2B portal?
Because B2B Edition can apply pricing via two mechanisms: (a) percentage-off coupons (which populate discountAmount) or (b) custom price lists (which can populate discountAmount as list-minus-contract OR be modelled as a separate “negotiated price” without a discount field, depending on BC version). Check B2B → Price Lists configuration. Most modern BC B2B installs do populate discountAmount, but legacy installs may not.
Does free shipping show up here?
No. Shipping discounts are tracked in shippingCostExTax adjustments on the order, not in discountAmount. To track free-shipping promotion impact use Free vs Paid Shipping trend or Shipping %.
My weekend discount is consistently higher than weekday, is that healthy?
Mostly fine. UK and US D2C stores see 30-60% of weekly discount-driven revenue concentrated on Fri-Sun. The pattern only becomes a problem when weekday discount climbs, that’s when ambient discounting (always-on codes) is suppressing what should be full-margin transactions.
How do I separate “deal-seeking customer” discount from “intentional promo” discount?
Cohort the orders by acquisition channel via BC Channel Revenue Mix. Email-acquired orders with codes are usually intentional (you sent them the code). Direct-traffic orders with codes are usually aggregator-leaked. Paid-search orders with codes are mixed; check whether the code came from a Google Shopping promo extension or a third-party site.
Should I worry about a flat-zero day on the trend?
Probably not. A day with no codes redeemed and no storewide promotions live legitimately reads zero. The concerning pattern is zero days disappearing entirely, that means promotions are now always-on, which is the discount-baseline-creep failure mode.
My most recent day reads as £0, did the integration break?
Almost always sync lag. Today’s bar is partial until end of day. If a full day later still reads £0 and there were active promotions, check the BC webhook delivery health under Settings → Sources.