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 counts | SKU 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 treatment | n/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). |
| Currency | Per-SKU in transaction currency; ad spend converted to consolidation currency. |
| Channels / sources | Oracle 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 threshold | 90D zero sales is the default “dead-stock” definition. Configurable to 60D or 180D depending on industry seasonality. |
| Spend threshold | Default 100); higher for large ($2,000). |
| Time window | 30D for ad spend; 90D for sales velocity. |
| Alert trigger | any SKU spending >$500 AND zero sales. |
| Roles | owner, 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 384,000. Top 6 dead-stock-with-ad-spend cases:| SKU | Description | Ad spend 30D | Sales 90D | Days since last sale | On-hand value | Last sale date | Action |
|---|---|---|---|---|---|---|---|
| SK-SNOW-EXP-XL | Snowboard expedition XL | $2,840 | $0 | 168 | $58,400 | 18 Oct 25 | Pause + clearance |
| SK-WAX-BACKCOUNTRY | Backcountry wax kit | $1,420 | $0 | 142 | $12,200 | 14 Nov 25 | Pause Google + Meta |
| SK-BOOT-RACE-275 | Race boot 27.5cm | $1,180 | $0 | 178 | $32,400 | 08 Oct 25 | Pause + clearance |
| SK-POLE-CARBON-130 | Carbon pole 130cm | $980 | $0 | 124 | $4,800 | 02 Dec 25 | Pause |
| SK-HELM-PRO-M | Pro race helmet M | $880 | $0 | 156 | $14,800 | 28 Oct 25 | Pause Meta |
| SK-GLOVE-RACE-M | Race glove M | $620 | $0 | 134 | $3,200 | 22 Nov 25 | Pause Google |
- 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.
- Cumulative annualised waste: 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.
- 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.
- 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 100K to $500K/month of recoverable budget.
- 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.
- 3 to 8% of monthly ad spend is on dead-stock SKUs (median).
- Recovered annual spend: 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
| Card | Why pair it with Dead Stock with Active Ad Spend |
|---|---|
| Dead Stock Value | The dollar dead-stock figure; this card filters to those with ad spend. |
| Inventory Aging | The ageing curve for the dead-stock SKUs; dictates clearance pricing strategy. |
| Margin Erosion Alerts | Markdown clearance pulls margin down; this card’s action is the cause. |
| OOS with Open SO Demand | The mirror leak: this card is over-stocked + over-promoted; OOS is under-stocked + has demand. |
google_ads.adwords_total_spend | The denominator: total ad spend, this card is the dead-spend subset. |
amazon_ads.amzn_ads_spend | Same for Amazon Ads. |
| Top SKUs by Inventory Value | If 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:| Reason | Direction | Why |
|---|---|---|
| SKU-to-ad-product mapping | Material | Vortex IQ joins Oracle SKU to ad-platform product_id / landing_page_url. Mis-mapping (incorrect feed configuration) produces false negatives. |
| Ad spend allocation | Material | Brand-keyword ad spend (which does not directly target a SKU) is excluded; some merchants want to include it. Configurable. |
| Sales-velocity threshold | Either | 90D zero-sales is the default. Different industries need different thresholds (slow-fashion may need 180D). |
| Multi-currency | Either | Ad spend in different currencies converted to consolidation; FX timing affects the $ comparison marginally. |
| Card | Direction | Notes |
|---|---|---|
google_ads.adwords_total_spend | Spend side | The total spend; this card is the dead-stock subset. |
amazon_ads.amzn_ads_spend | Spend side | Same. |
facebook.fb_ads_spend | Spend side | Meta ads. |
| Dead Stock Value | Inventory side | Zero-velocity dollars; this card adds the spend filter. |