Skip to main content
Metrics type: Supporting MetricsCategory: Ecommerce Platform
% of variable products (type=variable) with all required attributes filled across variations. Missing attrs break checkout selection.

At a glance

The percentage of your variable products whose variations have every variation-defining attribute set. On WooCommerce a variable product exposes a set of attributes (size, colour, material) marked “Used for variations”; each variation must specify a value for every such attribute or the customer cannot complete the dropdown selection and the Add to Cart button stays disabled. This card finds the products where that is broken.

Calculation

Calculated automatically from your WooCommerce data. See the At a glance summary above for what the metric tracks and the worked example below for a typical reading.

Worked example

A UK apparel brand on managed-Woo (WP Engine), WooCommerce 8.6. They sell mostly variable products (size x colour). Catalogue snapshot taken 12 Apr 26. They have 286 published variable products. Completeness = 259 / 286 = 90.6%. Four things to notice:
  1. 90.6% sits just above the <90% alert line. One more incomplete product and the card crosses the threshold and Nerve Centre fires. The 27 incomplete products (286 minus 259) are the worklist; each one has at least one variation a customer cannot buy.
  2. “Any …” is the most common trap. The Summer Dress variation left Size as “Any size”, which WooCommerce treats as a wildcard. A wildcard variation is technically valid to WooCommerce but means the product page cannot resolve a unique variation for that combination, so the customer sees no price and no Add to Cart. The card flags it as incomplete because a required attribute has no concrete value.
  3. A single blank attribute fails the whole product. The Wool Scarf has two variations; one has a blank Colour. That one gap marks the entire product incomplete in this card, the score is product-level, not variation-level, because a customer hitting that one broken option still cannot buy.
  4. Bulk variation generators raise the score. Brands that build the full attribute matrix with a generator plugin rarely leave gaps. Manually created variations, especially when a colour or size was added to the attribute list after the variations were built, are where gaps creep in. After adding a new attribute term, re-generate or re-check variations.

Sibling cards merchants should reference together

Reconciling against WooCommerce

Where to look in WooCommerce Admin: WP Admin → Products, set the Product type filter to Variable product to list only the products this card evaluates. Open any flagged product, go to the Attributes tab to see which attributes have “Used for variations” ticked, then the Variations tab to check each variation has a concrete value (not “Any …”) for every such attribute. WooCommerce itself shows a notice on the Variations tab when a variation is missing a required value. WP Admin → WooCommerce → Status does not surface attribute completeness directly, this is a catalogue-quality signal WooCommerce does not report natively, which is part of why the card exists. Why our number may legitimately differ from a manual spot-check: Cross-connector reconciliation: not applicable. This is a single-source WooCommerce catalogue-quality metric and does not join against another connector. Incomplete variations do, however, propagate into cross-platform cards: a variation with a missing SKU or attribute will fail to map cleanly in Marketplace Listing Drift vs Catalog and WC Inventory vs Active Marketplace Listings.

Known limitations / merchant FAQs

What exactly makes a variable product “incomplete” here? At least one of its variations is missing a concrete value for an attribute that is ticked “Used for variations”. A blank value, or a wildcard “Any …” value, both mark the variation, and therefore the whole product, as incomplete because the customer cannot resolve a unique purchasable variation. Does a descriptive attribute that is not used for variations affect the score? No. Only attributes with the “Used for variations” box ticked count. A “Care instructions” or “Country of origin” attribute that is purely descriptive does not affect completeness. Why is one broken variation enough to fail the whole product? Because a customer who selects the broken combination on the product page hits a dead end, no price, no Add to Cart. The card scores at the product level so the worklist matches the real customer-facing failure. If you need a variation-level breakdown, drill into the flagged product in WP Admin. Is “Any …” really a problem? Often, yes. “Any” is a valid wildcard in WooCommerce, but it only works when there is also a fully-specified fallback variation. Used carelessly it leaves the product page unable to resolve a price for certain combinations. The card treats a required attribute set to “Any” as incomplete by design. Why did the score drop after I added a new colour or size? Adding a term to an attribute list does not auto-create the matching variations. The existing variations now do not cover the new term, and any variation you forgot to set a value for is flagged. After adding an attribute term, re-generate variations or set values on the new ones. My store is all simple products, why is this card empty or 100%? The card only evaluates type = variable products. If you have no variable products the denominator is zero and the card has nothing to score. Simple products have no variations and are out of scope. Can I change the 90% alert threshold? Yes, the threshold is configurable per profile in the Alert Rules tab. Set it to your own baseline rather than relying on the generic <90% default.

Tracked live in Vortex IQ Nerve Centre

Variable Product Attribute Completeness is one of hundreds of KPI pulses Vortex IQ tracks across WooCommerce and 70+ other ecommerce connectors. Nerve Centre runs the detection layer; Vortex Mind investigates the cause when something moves; Ask Viq lets you interrogate any number in plain English. Start for free or book a demo to see this metric running on your own data.