Marketplace listing rejections are expensive. You don’t always get a clear error. Amazon might just suppress the listing. Walmart might accept the submission and then quietly downrank it. BigCommerce might accept a product that’s missing a shipping weight and let you find out when a customer can’t checkout.

Channel readiness is the metric designed to catch these problems before they happen.

What Channel Readiness Is

Every channel has a set of required and recommended attributes. Amazon requires bullet_points for most apparel categories. Shopify needs a GTIN on each variant to be eligible for Google Shopping. BigCommerce needs a shipping weight to enable its built-in shipping rate calculator.

A channel readiness score is the percentage of required attributes that are complete for a given product on a given channel. A score of 100% means the product has everything that channel needs to list it correctly. A score of 75% means 25% of the required fields are missing or invalid.

Why Per-Channel, Not Global

The instinct is to maintain a single “product completeness” score. The problem is that channels have genuinely different requirements, and a lowest-common-denominator score hides the real information.

A product that’s 100% ready for a custom storefront might be 60% ready for Amazon, because the storefront doesn’t require bullet points or A+ content and Amazon does. A product that’s ready for Amazon might be missing the GTIN variants that Shopify requires for Google Shopping eligibility.

A per-channel score tells you the actual state for each surface the product is going to. That’s the information a merchandiser needs to act on.

How It’s Computed

In minipim, readiness is derived from the product’s attribute schema:

  1. A channel has a ruleset — a mapping from attribute keys to required/recommended/optional.
  2. A product’s family defines which attributes exist and what types they are.
  3. At any point, readiness is computed by checking each required attribute: is it present, and does it pass validation?

The important property: readiness is computed from the same Zod schemas that validate the data at write time. This means a channel can never require something the schema can’t express. If a channel needs a measurement, the schema has a measurement type. If a connector needs a localized string, the schema has text with locale scope.

The Workflow This Creates

With channel readiness visible, the merchandiser workflow changes:

Before readiness scoring: Merchandise a product → export to channel → get rejection → figure out what’s missing → go back to the product → re-export. Repeat.

With readiness scoring: Open a product → see a per-channel score → the score lists exactly what’s missing → fill in the gaps → readiness reaches 100% → publish. One loop, caught at the catalog layer.

This sounds simple. In practice it’s the difference between a catalog team that’s constantly firefighting rejections and one that ships cleanly on the first submission.

Readiness and the Event Bus

Channel readiness isn’t just a reporting feature — it gates publication. When you trigger a publish action, the connector checks readiness. A channel at 100% gets the publish event. A channel below threshold gets a warning and a list of what’s still needed.

This is enforced at the system level, not as a UI suggestion. The channel won’t receive a listing it would reject.

What a 100% Score Actually Means

A 100% readiness score doesn’t guarantee a listing will be accepted — channels can have platform-side rules (brand registry requirements, category approval, GTIN verification) that live outside the attribute layer. But it does mean that every attribute the PIM knows the channel needs is present and valid.

In practice, most listing rejections are attribute-layer failures. Channel readiness eliminates that category of error entirely.