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

Alert table: SKUs that meet BOTH criteria: dead-stock in Oracle Inventory Cloud (zero sales velocity for 90+ days, ageing inventory) 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 only because no single platform sees both sides.
What it countsSKU WHERE oracle.item.sales_last_90d = 0 AND oracle.item.on_hand > 0 AND ad_platform.spend_30d > $500 (configurable thresholds). Each row = SKU + 30D spend + 90D sales (typically zero) + on-hand value + days-since-last-sale.
VAT / tax treatmentn/a, this is a sales-velocity-vs-spend comparison. Ad spend is gross of any platform fees (Google’s reported spend includes the auction cost only).
CurrencyPer-SKU in transaction currency; ad spend converted to consolidation currency.
Channels / sourcesOracle sales velocity vs ad spend across Google Ads, Amazon Ads, Meta Ads (configurable). The ad-platform-to-SKU join is via product_id / landing_page_url mapped to the SKU.
Sales velocity threshold90D zero sales is the default “dead-stock” definition. Configurable to 60D or 180D depending on industry seasonality.
Spend thresholdDefault 500/30D.Lowerforsmallmerchants(500 / 30D. Lower for small merchants (100); higher for large ($2,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 Oracle ERP Cloud 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 US Fortune 500 omnichannel sporting-goods retailer on Oracle ERP Cloud + Shopify Plus, with Google Ads + Amazon Ads + Meta Ads connected via Vortex IQ. Reporting period 02 Apr 26 to 01 May 26. Headline: 38 dead-stock SKUs receiving 14,200ofmonthlyadspendwithzerosalesinthelast90days.AgeinginventorydollarsontheseSKUs:14,200 of monthly ad spend with zero sales in the last 90 days. Ageing inventory dollars on these SKUs: 384,000. Top 6 dead-stock-with-ad-spend cases:
SKUDescriptionAd spend 30DSales 90DDays since last saleOn-hand valueLast sale dateAction
SK-SNOW-EXP-XLSnowboard expedition XL$2,840$0168$58,40018 Oct 25Pause + clearance
SK-WAX-BACKCOUNTRYBackcountry wax kit$1,420$0142$12,20014 Nov 25Pause Google + Meta
SK-BOOT-RACE-275Race boot 27.5cm$1,180$0178$32,40008 Oct 25Pause + clearance
SK-POLE-CARBON-130Carbon pole 130cm$980$0124$4,80002 Dec 25Pause
SK-HELM-PRO-MPro race helmet M$880$0156$14,80028 Oct 25Pause Meta
SK-GLOVE-RACE-MRace glove M$620$0134$3,20022 Nov 25Pause Google
Investigation walkthrough:
  1. The 38 SKUs are seasonal cleanouts that nobody paused. The snowboard in size XL (sold its last unit on 18 Oct 25) is no longer winter-relevant in spring. Google Shopping campaigns are still serving the product because the campaign’s product feed includes it; Meta is still serving lookalike audiences against it. Both platforms charge for impressions and clicks regardless of whether the product converts.
  2. Cumulative annualised waste: 14,200×12=14,200 × 12 = 170,400 / year of advertising spend on products that will not sell at full price. Plus the ageing-inventory carry cost (capital tied up + warehousing) on $384K of dead stock.
  3. Action playbook:
    • Pause the Google Shopping product-level bids on all 38 SKUs. Estimated ad-spend savings: $14,200 / month immediately.
    • Pause Amazon Ads on the same 38 SKUs. Each platform’s ad spend is independent; pausing on Google does not pause on Amazon.
    • Move the 38 SKUs to a clearance section on the website. Reduce price 30 to 50%. Cross-reference Inventory Aging to see how aged each is; SKUs aged >180 days warrant 50%+ discount.
    • Long-term: implement an automation rule. “If a SKU has zero sales in 90 days, auto-pause ads on that SKU and trigger merchandising review.” Most ad-management tools support this.
  4. Why this is the kill shot:
    • The cross-channel join is what makes this card possible. Oracle Fusion knows sales velocity (it owns the SO data). The ad platforms know spend (they own their billing). Neither knows the other side. The merchant’s marketing team optimises ROAS at the campaign level (where the headline is healthy because it is averaged across active SKUs); the dead-stock SKUs do not get individual attention.
    • For most Fortune 500 merchants, this card surfaces 5 to 25% of their ad spend as wasted-on-deadstock. At a 2M/monthadspend(typicallargeretail),thatis2M/month ad spend (typical large-retail), that is 100K to $500K/month of recoverable budget.
  5. CFO conversation:
    • The pitch: “You are paying $14,200 per month to advertise products you will eventually mark down to clearance. Want to see the list?”
    • The CFO response: “Are you serious? Why has not anyone caught this?”
    • The answer: because the join across Oracle (inventory + sales velocity) and the ad platforms (spend + clicks) does not exist as a native report on either side. The ad team sees campaigns and ad groups; the inventory team sees stock turns. Neither sees the intersection.
Cumulative impact across multiple Fortune 500 merchants: In Vortex IQ’s experience onboarding Fortune 500 commerce customers:
  • 3 to 8% of monthly ad spend is on dead-stock SKUs (median).
  • Recovered annual spend: 300Kto300K to 2M for typical Fortune 500 retailers.
  • The same logic applies to Amazon Ads (often higher: 5 to 15% wasted).
  • The fix is process: monthly review of this card + automated pause rules on dead-stock detection.

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 SKUs; dictates clearance pricing strategy.
Margin Erosion AlertsMarkdown clearance pulls margin down; this card’s action is the cause.
OOS with Open SO 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 SKU appears here, the recovery is large.

Reconciling against the vendor’s own dashboard

Where to look in Oracle ERP Cloud: Oracle Fusion cannot show this. Oracle has no view of ad-platform spend. The view is necessarily cross-platform. Oracle’s dead-stock view: Inventory → Reports → Slow / No Movement Report, filtered to zero-velocity items. Cross-reference manually against Google Ads / Amazon Ads / Meta Ads UIs to find which dead-stock SKUs are still ad-active. This is exactly what Vortex IQ automates. Why our list may legitimately differ from a manual cross-check:
ReasonDirectionWhy
SKU-to-ad-product mappingMaterialVortex IQ joins Oracle SKU to ad-platform product_id / landing_page_url. Mis-mapping (incorrect feed configuration) produces false negatives.
Ad spend allocationMaterialBrand-keyword ad spend (which does not directly target a SKU) 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; FX timing affects the $ comparison marginally.
Cross-connector reconciliation: This card IS the cross-connector kill shot, joining Oracle 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 says they manage spend at campaign level, not SKU level. Why does this matter? Because campaign-level health metrics (ROAS, CTR) average across SKUs. A campaign with 200 SKUs can show a healthy 4.0x ROAS overall while 38 specific SKUs in it return 0x because nobody bought. The dead-stock subset bleeds quietly while the campaign headline looks fine. SKU-level visibility is the only way to catch this. A SKU sold zero in 90 days but sold 200 units in the prior 90 days. Is it really dead? Possibly seasonal. Configure a seasonality rule for the merchant (e.g. ski gear expected to sell Oct-Feb, dead-stock detection should expect zero sales Apr-Aug). Vortex IQ supports a seasonality calendar via manifest configuration; without it, all 90D-zero-sales SKUs flag. My 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-product flag on the Oracle Item record can suppress 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 SKUs” action that posts a campaign-level negative-product or product-pause to Google Ads / Amazon Ads / Meta Ads. Requires merchant authorisation and the relevant ad-platform permissions. My multi-Business-Unit account: per-BU? Yes. The dead-stock + ad-spend join runs per-BU. US Inc’s US-targeted Google Ads spend on US-warehouse-held dead stock is independent of UK Plc’s same. The card shows my brand-keyword spend as “dead-stock advertising” because the brand-search lands on a product page. Wrong? Yes, brand-search should not count. Configure the brand-keyword exclusion in the Google Ads scope; brand search typically generates a “no-product” landing page or a category page. Filter out keywords classified as Brand. Why does not this card include Amazon Marketplace Vendor / Wholesale spend? Because 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. Should I worry if a new SKU has $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 SKU-to-ad-feed mapping is incomplete. How do I check it? Cross-reference Google Ads OOS landing pages and similar cards. Combined view shows which ads land on URLs that do not match a SKU (mapping gap) vs which ads land on dead-stock SKUs (the kill shot). The 14,200monthlywasteissmallrelativetomy14,200 monthly waste is small relative to my 2M ad budget. Is it worth pausing? Yes. Even at 0.7% of budget, the recovery is pure savings (no offsetting customer loss because the products were not selling). Rolled across a year, $170K goes to either better-converting SKUs or to the bottom line. I have 200+ SKUs that flag every month. How do I prioritise? Sort by ad spend descending; pause the top 20. Repeat monthly. The Pareto rule applies: the top 20 of 200 typically account for 60 to 75% of the wasted spend. How does this differ from the equivalent NetSuite card? Mechanically the same: NetSuite’s Item record + sales velocity vs ad-platform spend. Different data sources for sales velocity (NetSuite Item Demand vs Oracle Order Management Shipped Lines), same conceptual logic. Fortune 500 customers transitioning from NetSuite to Oracle Fusion keep the cross-channel kill-shot framing across the move.

Tracked live in Vortex IQ Nerve Centre

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