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 BC (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. Pause-immediately list.
| What it counts | SKU WHERE bc.item.sales_last_90d = 0 AND bc.item.inventory > 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 + recommended action. |
| VAT / tax treatment | n/a, this is a sales-velocity-vs-spend comparison. |
| Currency | Per-SKU in transaction currency; ad spend converted to Reporting Currency. |
| Channels / sources | BC sales velocity vs ad spend across Google Ads, Amazon Ads, Meta Ads. The ad-platform-to-SKU join is via product_id / landing_page_url mapped to the BC Item No. |
| Sales velocity threshold | 90D zero sales is the default “dead-stock” definition. Configurable. |
| Spend threshold | Default 100); higher for large ($2,000). |
| Multi-Company | The card can scope to a Company-specific commerce platform (Shopify EU + EU Company, Shopify US + US Company, etc.) to avoid false positives where a SKU is dead in one Company but selling in another. |
| Time window | 30D for ad spend; 90D for sales velocity. |
| Alert trigger | any SKU spending >$500 AND zero sales. |
| Sentiment key | dead_stock_ad_waste |
| Roles | owner, marketing, finance |
Calculation
Calculated automatically from your Microsoft Dynamics 365 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 omnichannel apparel brand on BC + Shopify Plus, with Google Ads + Amazon Ads + Meta Ads connected via Vortex IQ. Reporting period 02 Apr 26 to 01 May 26. Headline: 14 dead-stock SKUs receiving £4,840 of monthly ad spend with zero sales in the last 90 days. Ageing inventory dollars on these SKUs: £128,400. 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 |
|---|---|---|---|---|---|---|---|
| APPAR-DRES-NVY-S | Navy dress, size S | £1,140 | £0 | 142 | £18,400 | 14 Dec 25 | Pause Google + Meta |
| APPAR-COAT-WIN-XL | Winter coat XL | £820 | £0 | 168 | £42,800 | 18 Nov 25 | Pause + clearance |
| APPAR-BAG-VEL-PNK | Velvet bag pink | £620 | £0 | 134 | £8,200 | 22 Dec 25 | Pause Google |
| APPAR-SCRF-WOL-CHK | Wool check scarf | £580 | £0 | 122 | £4,200 | 03 Jan 26 | Pause |
| APPAR-SHIR-PRP-M | Purple shirt, size M | £540 | £0 | 156 | £6,200 | 09 Nov 25 | Pause Meta |
| APPAR-JACK-LTH-RED | Red leather jacket | £520 | £0 | 178 | £14,800 | 08 Nov 25 | Pause + clearance |
- The 14 SKUs are seasonal cleanouts that nobody paused. The winter coat in size XL (sold its last unit on 18 Nov 25) is no longer winter-relevant. Google Shopping campaigns are still serving the product because the product feed includes it; Meta is still serving lookalike audiences against it. Both platforms charge for impressions and clicks regardless of conversion.
- Cumulative annualised waste: £4,840 × 12 = £58,080 / year of advertising spend on products that will not sell at full price. Plus the ageing-inventory carry cost on £128,400 of dead stock.
- Action playbook: Pause Google Shopping product-level bids on all 14 SKUs (immediate £4,840/month savings). Pause Amazon Ads on the same 14. Move to clearance section on the website at 30 to 50% off. Implement an automation rule: “if a SKU has zero sales in 90 days, auto-pause ads on that SKU and trigger merchandising review”.
- Why this is the kill-shot: the cross-channel join is only Vortex IQ. BC knows sales velocity (it owns the SO data). The ad platforms know spend. Neither knows the other side. The marketing 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. Power BI cannot do this join out of the box.
- CEO conversation: “You are paying £4,840 per month to advertise products you will eventually mark down to clearance. Want to see the list?” Most merchants find 3 to 8% of monthly ad spend on dead-stock SKUs (median); recovered annual spend £30K to £120K for typical £2M to £20M revenue merchants.
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 Business Central: BC cannot show this. BC has no view of ad-platform spend. The view is necessarily cross-platform. BC’s dead-stock view: Reports > Inventory > Inventory Aging by Item, 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. Power BI’s BC content pack also does not connect to ad platforms. 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 BC Item No. 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. |
| Multi-currency | Either | Ad spend in different currencies converted to Reporting Currency. |
| 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. |