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.
Questions that bring people here
Two rules, two data sources
| Stop-loss automation | Core-size automation | |
|---|---|---|
| What it reads | Ad account performance: ROAS, cost per purchase, CTR, spend without results | Inventory at variant grain: which sizes and colours are in stock, and which of those convert |
| What it acts on | Ads, ad sets, campaigns, sometimes products via a performance label | Products in the catalogue, via product sets, custom labels or availability |
| Lag | Days. Needs a window long enough to be a trend, not noise | Minutes to hours. As fast as the stock feed and catalogue refresh |
| Typical mechanism | Meta automated rules, Google Ads rules and scripts, third-party rule tools | Feed rules, Shopify tags to custom labels, product-set conditions, operator software |
| Classic failure | Pauses a winner that was just having a bad Tuesday, or a product that ran out of its core sizes | Rule is too blunt (any size dies, pull everything) or too soft (parent in stock, keep serving) |
| Who usually offers it | The ad platforms themselves, plus most ads-management tools | Feed tools, some inventory apps, operator desks. Not the ad platforms |
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
- Window first, threshold second. Seven days minimum for anything driven by purchases. Shorter windows fire on noise.
- Reduce before pause, pause before delete. A paused ad set keeps its history. A deleted one takes its learning with it.
- Cap the damage per day. A rule that can pause twenty ad sets in one run should not exist. Limit how much it can switch off before a human looks.
- Judge products separately from ads. A performance label on a product (say, no purchases in 30 days with meaningful spend) is a legitimate reason to exclude it from a prospecting set. That is stop-loss at product grain, and the write-up is in Meta catalog exclusions: stock and performance.
Core-size, done properly
- Variant truth first. One catalogue item per variant, with availability flowing from Shopify. Without it there is nothing to read. Test it: verify a tool's variant-level stock sync.
- Name the core. Per style, or per category if styles are similar: the sizes that carry the conversions. Write the list down. It changes by season.
- Encode it as a flag. A custom label, a Shopify tag pushed to the feed, or a rule in operator software that marks a style core-broken. Product sets exclude on the flag.
- Add a buffer. Pull the style when the core is down to its last few units, not when it hits zero, because the catalogue lags and the ads outlive the shelf. The maths is in buffer stock for paid.
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
- 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.
- 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.
- 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.
- 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.
- 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.
- 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