Short answer. A Facebook or Instagram shop showing fewer products than your catalog holds is usually counting something different, not losing products. The catalog counts every item — every size and colour — while the shop shows a product with variants once, represented by one of them. What is left after that is products hidden from the shop, a shop set to Advanced inventory, products with issues, and products out of stock for too long.
1. Variants are shown as one product
In a shop, a product with variants appears once. Meta lets you choose which variant is the “main” one that represents the product, and when people tap it they see the other variants on its product page (control which products appear in your shop). Variants belong together when they share an item_group_id — see item_group_id and retailer_product_group_id.
So the two numbers measure different things. A catalog of 500 items that are 100 T-shirts in five sizes each is a shop of 100 products. Before looking for missing products, count your catalog in groups rather than in rows.
2. Products hidden from the shop
Every catalog product is in the shop by default, and any of them can be hidden. A hidden product still appears in ads; only archived products appear nowhere (Meta's note on hidden and archived products). To list them: open the catalog in Commerce Manager, go to Catalog → Products, click Filters and, under Status, choose Hidden from Shops and Archived (troubleshoot products not showing).
3. The shop uses Advanced inventory
Businesses with several shops on one catalog may see an inventory setting under Edit shop → Settings → Inventory. On Advanced, catalog products are not added automatically: a product appears only when you add it to a collection, feature it on the shop's home page, show it individually or tag it in a post (inventory settings). A shop on Advanced shows only the products someone put there.
4. Products with issues
Products with issues or certain statuses may not be shown in the shop at all. Meta lists them — policy violations, image upload issues, broken links, a missing title, description, price, availability, link, condition or image, missing size, and others — and filters them under Issues → Shops and Marketplace in the catalog's Products view (troubleshoot products not showing). The most common feed-side one has its own page: a required field is missing.
5. Out of stock for too long
Out-of-stock products are not shown in ads, but they stay in shops on Facebook and Instagram for up to 56 days, marked as sold out (availability, in Meta's product data specifications). A product that has been out of stock for longer than that no longer counts towards the shop — see out of stock for too long.
Where FeedRobin fits
Grouping is the part a feed decides: the Meta feed FeedRobin builds gives every variant the same item_group_id and its own id, and writes availability from your stock, so the shop groups what belongs together and stock status stays current. Hidden products and the inventory setting are choices made in Commerce Manager. The free feed check reports variants with no group and products missing the fields Meta requires, on any feed URL. If the products that are missing are missing on Instagram only, read products on Facebook but not on Instagram.
Sources
Meta Business Help Center: control which products appear in your shop on Facebook and Instagram (variants, hidden products, inventory settings), troubleshoot products not showing in your ads or shop (statuses, issues, filters) and product data specifications (availability and the 56 days).