Home / Guides / Stock & ads

Stock & ads

Stop-loss vs core-size automation for catalog ads

People ask what the difference is because vendors use both phrases loosely. One reads the ad account. The other reads the shelf. Confusing them is how a stockout gets diagnosed as a creative problem.

Updated 9 Sep 2026 · ~1493 words · David Smith

Two phrases, both sold as "automation for catalog ads", both about turning spend off. They are not the same thing, and treating them as interchangeable produces a specific, expensive mistake: a stockout gets diagnosed as a performance problem, and the team fixes the wrong thing.

Direct answer: Stop-loss automation reads performance and cuts spend when an ad or product falls below a threshold for long enough. Core-size automation reads inventory and cuts a style from catalogue ads when the sizes that convert have sold out, even if tail sizes remain. Stop-loss is a performance rule with a lag of days. Core-size is a stock rule with a lag of minutes to hours. Set the stock rule first, because a broken size run looks exactly like a bad ad to a performance rule.

Two rules, two data sources

Stop-loss automationCore-size automation
What it readsAd account performance: ROAS, cost per purchase, CTR, spend without resultsInventory at variant grain: which sizes and colours are in stock, and which of those convert
What it acts onAds, ad sets, campaigns, sometimes products via a performance labelProducts in the catalogue, via product sets, custom labels or availability
LagDays. Needs a window long enough to be a trend, not noiseMinutes to hours. As fast as the stock feed and catalogue refresh
Typical mechanismMeta automated rules, Google Ads rules and scripts, third-party rule toolsFeed rules, Shopify tags to custom labels, product-set conditions, operator software
Classic failurePauses a winner that was just having a bad Tuesday, or a product that ran out of its core sizesRule is too blunt (any size dies, pull everything) or too soft (parent in stock, keep serving)
Who usually offers itThe ad platforms themselves, plus most ads-management toolsFeed tools, some inventory apps, operator desks. Not the ad platforms
Sales share by size, and what is left on the shelf by 3pm Friday6810coresold out12coresold out14coresold out16Parent productIn stock (3 of 6)which is a lie, commercially
The parent reads 50 percent in stock. The sizes that sell are gone. Every click after 3pm lands on a shelf with nothing on it.

Why the confusion costs money

Picture a fashion brand's bestselling jacket. It comes in six sizes, and sizes 10, 12 and 14 do seventy percent of the sales. On Wednesday afternoon the 12 goes, on Thursday the 10 goes. The parent product still shows in stock, because the 6, 8 and 16 are sitting there. The catalogue keeps serving the jacket. Clicks arrive, shoppers find their size gone, ROAS slides.

On Sunday the stop-loss rule, watching a seven-day ROAS window, sees the slide and pauses the ad set. Monday morning the team reads "jacket ad set paused for performance" and starts a creative brief. The jacket was fine. The shelf was empty. That is the entire difference between the two rules in one week, and it is why the stock rule has to sit underneath the performance rule.

The reverse mistake exists too. A brand installs a strict inventory rule that pulls any style when any size sells out, and their catalogue shrinks by half every Friday night. That rule is not core-size, it is blanket pausing, and the distinction is drawn properly in what is core-size automation.

Stop-loss, done properly

Core-size, done properly

1. Stock signalcore run intact? cover above floor?2. Performance signalROAS over 7 days, among eligible3. Staged actionexclude, buffer, or leaveSkip step 1 and a sold-out size run reads as a bad ad and gets paused.Someone then rewrites the creative for a jacket that only lacked a size 12.
Stock decides who is allowed in the shop window. Performance decides who gets the good spot. Run them in that order or the second rule keeps punishing the first rule's victims.

How they should talk to each other

The clean design is a two-signal policy. The inventory signal decides eligibility: is this item allowed in the set at all? The performance signal decides emphasis: among eligible items, which deserve budget? A stop-loss rule should only ever be judging items that passed the inventory check, and when it does fire, the first question is still "did stock change in the window?"

Google Shopping runs on the same policy through a different pipe: availability and custom labels in Merchant Center, listing groups and campaign exclusions in Google Ads. Same two signals, same order.

Stock decides who is allowed in the shop window. Performance decides who gets the good spot. Run them in that order or the second rule will keep punishing the first rule's victims.

Where a desk sits

Ralph maps Shopify variants to catalogue items, shows out-of-stock percentage and core-run health next to spend, and stages exclusions or product-set rebuilds for approval. It does not auto-pause ad sets and it does not overwrite availability. Performance excludes are proposed with the stock check already done, so a stockout does not get dressed up as a creative failure. The mechanics are in how Ralph handles out-of-stock variants.

Set up stop-loss and core-size rules in the right order

  1. Confirm variant-level availability is flowing. Check a sold-out size shows as out of stock against its own retailer ID in Commerce Manager. If the catalogue only knows the parent, nothing downstream will be right.
  2. Name the core sizes per style or category. Write down which sizes account for most conversions. That list is the core run. When it is broken, the style is effectively unsellable at scale even if tail sizes remain.
  3. Encode core-size as a product-set condition. Use custom labels or a feed rule that flags a style as core-broken, and build the product set to exclude flagged items. This is the inventory rule.
  4. Add stop-loss rules on top, with a longer window. Create automated rules on ad or ad set performance, ROAS or cost per purchase, over at least seven days, and set them to pause or reduce, not delete.
  5. Make the performance rule stock-aware. Before a stop-loss rule fires, check whether the item it is judging has a broken core run. If it does, the problem is stock, not the ad. Fix the shelf or exclude the item, and leave the ad's history alone.
  6. Review both weekly with numbers. How many items were excluded for stock, how many ads were paused for performance, and how many of the performance pauses were actually stockouts in disguise.

Questions people actually ask

What is the difference between stop-loss automation and core-size automation?

Stop-loss automation reads performance: when an ad, ad set or product falls below a ROAS or cost threshold for long enough, it pauses or reduces spend. Core-size automation reads inventory: when the sizes that actually convert for a style sell out, it pulls that style from catalogue ads even though tail sizes remain. One is a performance rule, the other is a stock rule, and they fire on different data with different lag.

Is stop-loss automation the same as Meta automated rules?

Meta's automated rules are the most common way to implement it: pause or reduce budget when cost per result or ROAS crosses a threshold over a window. Third-party tools do the same with more conditions. Stop-loss is the policy; automated rules are one mechanism.

Which should I set up first?

The inventory rule. A style whose core sizes have sold out will show falling ROAS, and a stop-loss rule will read that as a bad ad and pause it. Get variant availability and the core-size rule right first, then add performance rules, and check every performance pause against stock before you trust it.

Can a stop-loss rule kill a product that is actually out of stock?

Yes, and it happens constantly. The size run breaks, conversions fall, the rule pauses the ad set, and the team spends a week rewriting creative for a product that simply had no size 10. That is the whole reason to keep the two rules separate and to check stock before believing a performance signal.

Does core-size automation need Shopify variant data?

It needs inventory at variant grain from wherever your stock truth lives. For most Shopify brands that is Shopify itself, pushed to the catalogue as one item per variant with a retailer ID. Without variant-level availability the rule has nothing to read.

what's the difference between stop-loss automation and core-size automation for meta catalog ads?

Stop-loss reads performance and cuts spend when ROAS or cost per purchase falls for long enough. Core-size reads inventory and cuts a style when the sizes that convert sell out. Stop-loss lags by days and cannot tell a bad ad from an empty shelf; core-size acts within hours of the stock change. Run the stock rule first so the performance rule never fires on a stockout.

If a sold-out size is the problem: Ralph reads every size against every campaign overnight, finds the ones still paying for an empty shelf, and stages the exclusion with a revert for restock day. You say yes. See Ralph · How Ralph handles out-of-stock sizes · Docs