Skip to main content
Card class: Cross-ChannelCategory: Ecommerce Platform
Dead-stock SKUs with active paid-ad spend behind them. Pause-immediately list.

At a glance

Materials that meet BOTH criteria: dead-stock in S/4HANA Cloud (zero sales velocity for 90+ days, ageing inventory still on the balance sheet) AND active ad spend on the same SKU in Google Ads, Amazon Ads, or Meta Ads. The merchant is paying to drive traffic to product pages whose products will eventually be written off. Each row is the SKU + ad spend in the period + sales in the period (typically zero) + ageing inventory dollars. Pause-immediately list. The kill-shot pitch: “you are paying $4,200 / month to advertise products you have not sold in 6 months and will eventually scrap”. Cross-channel by necessity because no single platform sees both sides.
What it countsmaterial WHERE sap.last_sale_from_movement_601 > 90D ago AND sap.on_hand > 0 AND ad_platform.spend_30d > $500 (configurable thresholds). Each row = material + 30D ad spend + 90D sales (typically zero) + on-hand value + days-since-last-sale.
VAT / tax treatmentn/a, sales-velocity-vs-spend comparison.
Shippingn/a.
DiscountsSales velocity uses post-discount net selling price.
RefundsRefunded sales excluded from “did this material sell?” check.
Cancelled / voided ordersExcluded.
CurrencyPer-material in transaction currency; ad spend converted to consolidation currency at TCURR rate type M.
Channels / sourcesSAP sales velocity vs ad spend across Google Ads, Amazon Ads, Meta Ads (configurable). The ad-platform-to-material join is via product_id / landing_page_url mapped to the SAP material number.
Sales velocity threshold90D zero sales is the default dead-stock definition. Configurable to 60D / 180D depending on industry seasonality.
Spend thresholdDefault 500/30D.Lowerforsmallmerchants(500 / 30D. Lower for small merchants (100); higher for large enterprises ($5,000).
Time window30D for ad spend; 90D for sales velocity.
Alert triggerany SKU spending >$500 AND zero sales.
Rolesowner, marketing, finance

Calculation

Calculated automatically from your SAP 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 UK enterprise omnichannel apparel brand on SAP S/4HANA Cloud with 4 Company Codes (UK, US, EU, AU) plus Shopify Plus, Google Ads, Amazon Ads, Meta Ads connected via Vortex IQ. Reporting period 04 Apr 26 to 03 May 26. Headline: 22 dead-stock materials receiving £6,840 of monthly ad spend with zero sales in the last 90 days. Ageing inventory dollars on these materials: £184,200. Top 8 dead-stock-with-ad-spend cases:
MaterialDescriptionCCAd spend 30DSales 90DDays since last saleOn-hand valueLast saleAction
APPAR-DRES-NVY-SNavy dress, size S1000 UK£1,420£0142£24,80014 Dec 25Pause Google + Meta
APPAR-COAT-WIN-XLWinter coat XL1000 UK£1,140£0168£52,40018 Nov 25Pause + clearance
APPAR-BAG-VEL-PNKVelvet bag pink1000 UK£840£0134£12,20022 Dec 25Pause Google
APPAR-SHIR-PRP-MPurple shirt, size M2000 US£620£0156£8,40030 Nov 25Pause Meta
APPAR-JACK-LTH-REDRed leather jacket1000 UK£580£0178£18,40008 Nov 25Pause + clearance
APPAR-SCRF-WOL-CHKWool check scarf3000 EU£540£0122£6,20003 Jan 26Pause
APPAR-BOOT-SUE-BRSuede boots brown1000 UK£420£0198£14,20019 Oct 25Pause + 50% markdown
APPAR-HAT-FED-NVFedora navy4000 AU£320£0132£4,20024 Dec 25Pause
Investigation walkthrough:
  1. The 22 SKUs are seasonal cleanouts that nobody paused. The winter coat (last sale 18 Nov 25) is no longer winter-relevant. Google Shopping campaigns are still serving the product because the Merchant Centre feed includes it; Meta is still serving lookalike audiences. Both platforms charge for impressions and clicks regardless of conversion.
  2. Cumulative annualised waste: £6,840 × 12 = £82,080 / year of advertising spend on products that will not sell at full price. Plus the ageing-inventory carry cost (storage + insurance + capital) on £184,200 of dead stock at 25% per annum = £46,050 / year.
  3. Action playbook:
    • Pause the Google Shopping product-level bids on all 22 materials. Estimated ad-spend savings: £6,840 / month immediately.
    • Pause Amazon Ads on the same 22 materials. Each platform’s spend is independent.
    • Move the 22 materials to a clearance section. Reduce price 30 to 50%. Cross-reference Inventory Aging to see how aged each is; materials aged >180 days warrant 50%+ discount.
    • Long-term: implement an automation rule. “If a material has zero sales in 90 days, auto-pause ads on that material and trigger merchandising review.”
  4. Why this is the kill shot for SAP shops:
    • The cross-channel join is what makes this card possible. SAP knows sales velocity (Sales Document data, goods-issue history). The ad platforms know spend (their billing). Neither knows the other side. SAP Analytics Cloud cannot show this because SAC has no view of ad-platform spend.
    • For most SAP-running merchants, this card surfaces 4 to 12% of their ad spend as wasted-on-deadstock. At £200K/month ad spend (typical mid-enterprise apparel), that is £8K to £24K/month of recoverable budget.
  5. CEO conversation:
    • The pitch: “You are paying £6,840 per month to advertise products you will eventually mark down to clearance. Want to see the list?”
    • The merchant CFO: “Why has nobody caught this before? We have SAP.”
    • The answer: because SAP has no view of ad spend. SAP Analytics Cloud reports on what S/4 already knows. The ad team optimises ROAS at the campaign level (where the headline is healthy because it averages across active SKUs); the dead-stock SKUs do not get individual attention. Vortex IQ is the join.
Cumulative impact across multiple SAP merchants: In Vortex IQ’s experience onboarding enterprise merchants on S/4HANA Cloud:
  • 3 to 9% of monthly ad spend is on dead-stock materials (median).
  • Recovered annual spend: £40K to £180K for typical merchants in the £20M to £200M revenue range.
  • Amazon Ads often higher waste (5 to 18%).
  • The fix is process: monthly review of this card + automated pause rules.

Sibling cards merchants should reference together

CardWhy pair it with Dead Stock with Active Ad Spend
Dead Stock ValueThe dollar dead-stock figure; this card filters to those with ad spend.
Inventory AgingThe ageing curve for the dead-stock materials; dictates clearance pricing.
Margin Erosion AlertsMarkdown clearance pulls margin down; this card’s action is the cause.
OOS with Open Sales Document DemandThe mirror leak: this card is over-stocked + over-promoted; OOS is under-stocked + has demand.
google_ads.adwords_total_spendThe denominator: total ad spend; this card is the dead-spend subset.
amazon_ads.amzn_ads_spendSame for Amazon Ads.
Top SKUs by Inventory ValueIf a top inventory-value material appears here, recovery is large.

Reconciling against the vendor’s own dashboard

Where to look in SAP’s own dashboard: S/4HANA Cloud cannot show this. SAP has no view of ad-platform spend. The view is necessarily cross-platform. S/4HANA’s dead-stock view: Slow-Moving Stock Fiori app, filtered to zero-velocity items. Cross-reference manually against Google Ads / Amazon Ads / Meta Ads UIs to find which dead-stock materials are still ad-active. This is exactly what Vortex IQ automates. Why our list may legitimately differ from a manual cross-check:
ReasonDirectionWhy
Material-to-ad-product mappingMaterialVortex IQ joins SAP material number to ad-platform product_id / landing_page_url. Mis-mapping (incorrect feed configuration) produces false negatives.
Ad spend allocationMaterialBrand-keyword spend (which does not directly target a material) is excluded; some merchants want to include it. Configurable.
Sales-velocity thresholdEither90D zero-sales is the default. Different industries need different thresholds (slow-fashion may need 180D).
Multi-currencyEitherAd spend in different currencies converted to consolidation currency; FX timing affects $ comparison marginally.
Multi-Company-Code scopeEitherA material may be dead in CC 1000 but active in CC 2000; the card scopes per CC and per ad-platform target audience.
Cross-connector reconciliation: This card IS the cross-connector kill shot, joining SAP sales/inventory to ad-platform spend. The constituent cards:
CardDirectionNotes
google_ads.adwords_total_spendSpend sideThe total spend; this card is the dead-stock subset.
amazon_ads.amzn_ads_spendSpend sideSame.
facebook.fb_ads_spendSpend sideMeta ads.
Dead Stock ValueInventory sideZero-velocity dollars; this card adds the spend filter.

Known limitations / merchant FAQs

My ad team manages spend at campaign level, not SKU level. Why does this matter? Campaign-level health metrics (ROAS, CTR) average across SKUs. A campaign with 200 materials can show a healthy 4.0x ROAS while 22 specific SKUs return 0x. The dead-stock subset bleeds quietly while the campaign headline looks fine. SKU-level visibility is the only way to catch this. A material sold zero in 90 days but sold 200 units in the prior 90 days. Is it really dead? Possibly seasonal. Configure a seasonality calendar (winter coats expected to sell Oct-Feb, dead-stock detection should expect zero sales Apr-Aug). New product launches always show as dead-stock initially. Will they appear here? Yes if 90+ days have passed and they have not sold while having ad spend. New-material warmup flag (custom field on Material Master) suppresses the alert for a configurable warmup period (default 60 days). Can I auto-pause ads from this card? Yes via Ask Viq. Vortex IQ supports a “pause ads on these materials” action that posts a campaign-level negative-product or product-pause to Google Ads / Amazon Ads / Meta Ads. Requires merchant authorisation. Multi-Company-Code: per-CC? Yes. The dead-stock + ad-spend join runs per-CC. UK Ltd’s UK-targeted Google Ads spend on UK-warehouse-held dead stock is independent of US Inc’s same. Brand-keyword spend lands on a product page, why excluded? Brand-search should not count. Configure the brand-keyword exclusion in the Google Ads scope. Why does this not include Amazon Vendor / Wholesale spend? Vendor / Wholesale spend on Amazon does not map cleanly to seller-level inventory; the inventory is owned by Amazon. The card focuses on FBM / FBA seller-side where the merchant owns the inventory and pays the ad spend. The card shows £1,420/month on a material but I sell wholesale, not via that ad. Why? The same material is listed on the merchant’s Shopify retail channel + advertised on Google Shopping. The retail-channel ads do not move the wholesale book but still spend money on a product the warehouse holds dead stock on. Should I worry about a new SKU with £200/month spend but no sales in 30 days? 30 days is too short. Below 60 to 90 days is normal product-launch ramp. The 90-day default exists because it captures genuinely dead products without false-flagging launches. My material-to-ad-feed mapping is incomplete. How do I check? Cross-reference google_ads.adwords_oos_landing_pages and similar cards. Combined view shows which ads land on URLs that do not match a material (mapping gap) vs which ads land on dead-stock materials (the kill shot). The £6,840 monthly waste is small relative to my £200K ad budget. Worth pausing? Yes. Even at 3.4% of budget, the recovery is pure savings (no offsetting customer loss because the products were not selling). Rolled across a year, £82K goes to either better-converting SKUs or to the bottom line. I have 200+ materials flagging every month. Prioritise how? Sort by ad spend descending; pause the top 20. Repeat monthly. Pareto: top 20 of 200 typically account for 60 to 75% of wasted spend.

Tracked live in Vortex IQ Nerve Centre

Dead Stock with Active Ad Spend is one of hundreds of KPI pulses Vortex IQ tracks across SAP 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.