A footwear operator has a bestseller with 70 pairs "in stock" and no UK 8. Catalog ads that shop the style name will keep funding empty boxes. Here is the runbook.
Shoes punish parent-level thinking harder than almost any other Shopify category. One style name is a matrix. Ads that shop the name will shop empty boxes.
Questions that bring people here
Count the real catalogue
Operators say "we have 80 products." The paid shelf is:
styles × colours × sizes × widths
Example: 25 trainers × 4 colours × 12 sizes × 2 widths = 2,400 items. Kids add another grid. That is why "pause when the product is OOS" is a nonsense sentence in footwear. The product is almost never OOS. The size you advertised is.
If Commerce Manager shows 80 items and Shopify shows 2,400 variants, you are advertising titles. Stop and fix ID mapping before you touch budgets. The fashion how-to for variant grain is remove a size, keep the parent. Same physics, denser matrix.
The middle dies first
Most adult trainer lines convert in a tight band. UK 6-10, sometimes 7-9, sometimes a women's 5-8. The leftovers after a good weekend are the 4s, 12s, and an odd wide. Parent quantity still looks like a win. Catalog ads, if they only know "in stock", will keep pushing the colourway. Clicks land on a PDP that is a graveyard of unavailable buttons.
That is core-size policy with dirtier math:
- Trainers, boots, sandals, and kids do not share a core. Split the report.
- Half sizes are real items. Collapsing 8 and 8.5 is how you advertise a fit you cannot pick.
- Widths are real items. Standard and wide are not interchangeable for the person who needs wide.
- Gendered size runs on the same last will fool a blended report. Split them.
A practical paid gate: style-colour stays in prospecting only if N of the converting sizes are above buffer. Remarketing can be looser if you are honest on the PDP. Do not let leftover 12s inherit a bestseller CPA target.
Last-pair and returns
Footwear has two extra clocks.
Last pair. Advertising the final UK 8 is how you buy a conversion you cannot fulfil after a double tap, a retail walk-in, or a 3PL delay. Many operators withhold the last 1-2 of converting sizes from paid. Site can still sell them. Ads should not. Buffer guide.
Returns. Size 8 sells, size 9 comes back next week. If returned units flip availability instantly, you will re-enter paid on a pair that is in the returns cage. If they never re-enter, you hide a sellable run. Decide a delay that matches your warehouse, then encode it in the feed or in the buffer, not in a Slack memory.
Locations will lie to you
Retail + DTC + 3PL is normal in shoes. A London store holding a UK 8 does not mean your Shopify DTC location can ship it tomorrow. Feeds that sum every location create magical availability. Pick the location (or priority list) that paid traffic can actually fulfil. Multi-location fiction is the number one reason "Meta will not pause empty sizes."
Time it. Sell or zero a low-risk size. Watch the catalogue. If it is still available 40 minutes later at your volume, you are paying a lag tax. Method: run the lag test.
Creatives that imply a size
On-foot UGC is the footwear version of the fashion size-10 problem. If the talent is obviously a UK 8 and you cannot ship 8, you are funding a fitting-room argument. Catalog carousels that pick a hero image tagged to a dead size do the same. Hygiene list:
- Tag creatives with the featured size/width when it is obvious.
- Prefer colour and silhouette stories for prospecting when the run is thin.
- Do not let a "complete the set" collection ad include a colourway whose middle is gone.
Sibling: when creative features a size you cannot ship.
Google Shopping is the other shoe
Fixing Meta and leaving Merchant Center on parent rollup means Google still shops empty middles. Supplemental feeds can overlay availability and a size_run=healthy label without taking over the primary feed. Ralph's feed posture is supplemental first, no overwriting of the primary feed. Guides: supplemental feeds, empty shelves, attributes. Before you chase availability gaps, check the Needs attention tab for the same SKUs, because the guide on fixing Google Shopping attribute disapprovals covers the five reasons Shopify feeds get rejected outright.
A weekly footwear ops list
- Top 15 colourways by paid spend. For each, list converting sizes vs units vs catalogue availability.
- Drop any colourway whose core run is below buffer from prospecting sets.
- Re-enter only after inbound or returns actually hit the fulfilable location.
- Scan live on-foot ads against those cores.
- Spot-check five Google item IDs the same morning. Both shelves or neither.
If that list lives in five tabs, you do not have a footwear catalog problem. You have a desk problem. Join empty sizes with wasted in-stock spend: inventory and performance. Fashion origin: Ralph for fashion. Thin-stock calls: ads when stock is thin. Stock-aware advertising is the name for putting the size run in the same brief as spend: pillar.
What we will not claim
- That Ralph auto-pauses a Meta ad set when UK 8 sells out.
- That we model EU/UK/US conversion charts as a paid feature.
- That last-pair logic can be perfect without warehouse truth.
- That catalog ads replace a buyer on a launch drop with 12-minute sellouts.
Launches still want a human on the desk. Everyday catalogue waste does not want a hero. It wants variant IDs, a written run, and a set that respects it.
Stand up stock-aware footwear catalog ads
- Count the real SKU. Style × colour × size × width. That number is your catalogue, not the 40 product titles in Shopify.
- Map every size to a retailer_id. No parent-only items for paid. Half sizes and widths included.
- Define the converting run. 90 days of units by size for trainers, boots, kids separately. Mark core vs tail.
- Buffer last pairs. Withhold the last 1-2 of converting sizes from paid. Tails can be thinner.
- Gate sets on run health. A style-colour stays in prospecting only if the core run is above buffer. Rebuild weekly at first.
- Time lag and returns. Sell the last UK 8. Watch the catalogue. Decide how returned sizes re-enter paid.
Questions people actually ask
How do I run Meta catalog ads for a footwear brand with hundreds of size variants without wasting spend on out-of-stock sizes?
Treat each size (and width) as the catalogue item. Keep availability current. Only keep a style-colour in prospecting sets when the converting size run is above a buffer. Do not use parent 'in stock'. Hide last pairs of UK 7-10 from paid. Hunt any creative that implies a size you cannot ship.
Is parent quantity good enough for shoes?
No. 80 units across 4-12 and two widths can still be sold out of every size that converts. Parent cover is a lie in footwear.
What is a healthy size run for paid?
Whatever your last 90 days say. Many adult trainer lines convert in a tight middle. If that middle is gone, leftover 4s and 12s should not inherit the bestseller budget.
Do half sizes and widths need their own catalogue items?
Yes if you sell them. A UK 8 and a UK 8.5 are different retailer_ids. Wide and standard are different items. Collapsing them is how you advertise a fit you cannot pick.
Does Google Shopping have the same problem?
Yes. Merchant Center parent rollups hide missing middles. Use supplemental availability and labels. Same core-run rule, different pipe.
Will Ralph auto-pause shoe ads when a size sells out?
No. Ralph can show variant cover next to spend and stage set or exclude work. Availability still comes from Shopify plus the catalogue / feed bridge. Approval stays on.
how do i run meta catalog ads for a footwear brand with hundreds of size variants without wasting spend on out-of-stock sizes?
Send every size as its own catalogue item so availability is true per size, name the core sizes per style from sales share, pull a style from the set when its core run breaks rather than when the last size goes, withhold the last few units of core sizes as a buffer, and join spend to stock every morning so you see which campaigns paid for empty sizes. The detail for footwear specifically is on this page.
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