Skip to main content
Metrics type: Cross-Platform MetricsCategory: Ecommerce Platform
Spend burning on SKUs that can’t convert. The single highest-ROI ‘pause’ recommendation in the AI OS.

At a glance

The £/$ ad spend in the last 24h pointed at Shopify variants that are currently out of stock (Product.totalInventory <= 0 AND Product.status = ACTIVE). The single highest-ROI “pause” recommendation Vortex IQ ever surfaces, every dollar shown here is wasted CPC.

Calculation

Calculated automatically from your Shopify 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 fashion brand on Shopify Plus running Google Shopping, Performance Max, and Meta Catalogue Sales. Reading taken at 11:30 GMT on 12 Apr 26. Total daily ad spend across all platforms is roughly £4,200. The card reads £657 / day spend on OOS SKUs, projected at roughly £20,000 / month if unchecked. Six things to notice:
  1. The £657 is upper-bound wasted spend. Some of those clicks generate “view OOS” tracking events that feed Google’s signal layer (improving future bidding), and a fraction of customers click through and buy a different SKU on the same store. So the true wasted figure is closer to £400 to £500. Still material.
  2. Meta is the worst offender. Meta’s catalogue sync frequency is configurable but defaults to every 24 hours; merchants who haven’t tuned it down to hourly bleed the most spend on stale OOS data. Setting Commerce Manager → Catalog → Settings → Update schedule to “Hourly” closes most of the gap.
  3. Google PMax is structurally hard to fix. Performance Max is an automated campaign type with limited SKU-level controls. Google’s documented best-practice is to remove OOS items from the Merchant Center feed (not the campaign), which propagates to PMax within 6 to 12 hours. Manual SKU-level negative bidding doesn’t work with PMax.
  4. TikTok Shop’s hourly sync is best-in-class. TikTok’s tight integration with Shopify means the feed reflects OOS within 60 minutes. This is increasingly true of the newer ad platforms; legacy Google / Meta integrations lag.
  5. The cross-platform value compounds. The £657 / day saved here is roughly 15% of total ad spend. Reallocated to in-stock high-velocity SKUs, the same £657 produces incremental £2,000 to £3,500 / day in revenue (typical 3 to 5x ROAS for top SKUs). The total opportunity is closer to £3,000 / day, not £657.
  6. The card is a recommendation, not an automatic pause. Vortex IQ Mind can auto-pause OOS ads via the Google Ads / Meta Ads connectors if the merchant has opted in (Settings → Mind → Auto-actions). Most merchants prefer a manual review step; the auto-pause feature is conservative and only triggers above £100/day waste.

Sibling cards merchants should reference together

This card is the highest-ROI cross-platform pair. Triage and prevent with these:

Reconciling against the vendor’s own dashboard

Where to look in Shopify Admin: Shopify Admin doesn’t surface this cross-platform view, it has no native visibility into ad-platform spend. The closest manual reconstruction is:
  • Products → Inventory → filter Available: 0 or less, Status: Active. Cross-reference each SKU manually against Google Merchant Center, Meta Commerce Manager, and TikTok Seller Center.
  • Marketing → Campaigns (Shopify Marketing) → for ad campaigns set up via Shopify’s native ad integrations, the campaign-level dashboard shows status. Doesn’t surface OOS-feed warnings.
Other views that look related but aren’t:
  • Google Merchant Center → Diagnostics: shows feed-level errors, including “out of stock” warnings on individual products. This is the upstream source for Google’s portion of the figure but doesn’t show spend implications, only feed health.
  • Meta Commerce Manager → Catalog → Diagnostics: same as Google Merchant Center but for Meta. Shows OOS warnings; doesn’t show £ wasted.
  • Apps like AdScale / NestScale: show ad performance per SKU. Useful for ROAS analysis but don’t cross-reference against live Shopify inventory.
Why our number may legitimately differ from a manual reconciliation: Cross-connector reconciliation: This card IS a cross-connector reconciliation by design. The relationships:

Known limitations / merchant FAQs

Why is my figure higher than expected? Three usual causes:
  1. Meta catalogue sync is on the daily default. Meta will keep advertising OOS SKUs until the next sync. Change Commerce Manager → Catalog → Settings → Update schedule to “Hourly” (or via API for real-time).
  2. Performance Max can’t be SKU-paused. PMax is automated and the only way to stop it advertising an OOS SKU is to remove the SKU from the Merchant Center feed (via Shopify’s Google Channel app: Channels → Google → Manage product status). Manual campaign-level negative bidding doesn’t work.
  3. A long-tail SKU you forgot about. Brands with 5,000+ active SKUs often have hundreds of low-velocity items being advertised by automated bidding strategies. Most of the £ here is concentrated in 5 to 20 SKUs; sort the breakdown by spend to find them.
Why is my figure zero when I know products are OOS and ads are running? Three causes:
  1. No ad-platform connector connected. This card needs at least one of Google Ads, Meta Ads, TikTok Ads, or Amazon Ads connected. Connect in Settings → Connectors.
  2. SKU mapping gap. If your ad-platform feed uses different SKU naming than Shopify, Vortex IQ can’t join them. Check Settings → Connectors → Google Ads → SKU mapping and confirm the join key is correct.
  3. The OOS SKUs aren’t in any active campaign. A SKU OOS in the catalogue may not have an active ad pointing at it (you’ve already paused). The card correctly shows zero for these.
Does this include Shopify Audiences spend? Shopify Audiences is Shopify’s own ad-buying layer (Plus only), it puts spend through Meta and Google on the merchant’s behalf. If you have Shopify Audiences enabled, the spend appears in Meta / Google Ads as normal and IS counted by this card. My ad platform shows different OOS SKUs to Shopify. Whose truth do I use? Shopify is the truth source for inventory; the ad platforms have their own (slightly stale) copy via the product feed. This card uses Shopify as authoritative. If your ad platform thinks something is in stock when Shopify says OOS, the card flags it (because spend is happening on the OOS Shopify variant). The reverse case (ad platform thinks OOS but Shopify says in-stock) suggests a feed sync problem, see Catalogue Drift vs Amazon. Should I auto-pause OOS ads? Conservatively, yes for high-spend SKUs (>50/daywaste).Cautiouslyforlowspendones,theautopausefeaturehasasmallrecoverydelaywhentheSKUrestocks(typically5to30minutes),andforfastmovingfashionthatcanmeanmissingthebackinstockbuyingwindow.VortexIQMindsautoactiondefaultis"autopauseOOSSKUsspending>50/day waste). Cautiously for low-spend ones, the auto-pause feature has a small recovery delay when the SKU restocks (typically 5 to 30 minutes), and for fast-moving fashion that can mean missing the back-in-stock buying window. Vortex IQ Mind's auto-action default is "auto-pause OOS SKUs spending >100/day, manual review for 20to20 to 100/day”. Configurable in Settings → Mind → Auto-actions. Why does Performance Max keep coming back? Because PMax doesn’t surface SKU-level controls. The only reliable way to stop PMax advertising an OOS SKU is to remove it from the Merchant Center feed. Vortex IQ Mind will write the SKU’s availability field to “out_of_stock” in the feed (via the Shopify Google Channel app or direct Merchant Center API), which propagates to PMax within 6 to 12 hours. If you’ve connected the merchant center directly, this happens automatically; if not, the card surfaces the recommendation but you act manually. Multi-currency: why is the figure in £/$ when my ad platforms bill in different currencies? Spend across platforms is summed without FX conversion and displayed in the workspace’s display-currency setting. Per-platform per-currency views are on the roadmap. For tight reconciliation, drill into each platform’s connector dashboard for native-currency figures. Action playbook when this card alerts:
  1. Sort the OOS-with-ads list by daily spend (descending). The top 5 to 10 SKUs almost always represent 80% of the waste.
  2. For each top SKU: pause manually via the ad platform if spend > £50/day, or accept Vortex IQ Mind’s auto-pause recommendation.
  3. For Performance Max specifically: edit the Google Merchant Center feed to mark the SKU out_of_stock (Shopify Google Channel app does this automatically if connected).
  4. For Meta: change Commerce Manager catalog sync to hourly to prevent recurrence.
  5. Pair with the OOS SKU’s reorder lead time. If reorder is 7 to 14 days out, just pause. If reorder is 1 to 3 days out, consider keeping ads running and accepting the waste, sometimes back-in-stock customer-trust signals are worth more than the wasted CPC.
  6. Set up an automatic “back in stock” trigger to resume ads when inventory returns, this is in Settings → Mind → Auto-actions and runs by default if auto-pause is enabled.

Tracked live in Vortex IQ Nerve Centre

Active Ads on Out-of-Stock SKUs is one of hundreds of KPI pulses Vortex IQ tracks across Shopify 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.