Product category is not a decorative label. It determines the questions a product can enter, the competitors it can be compared with, and the attributes a scanner should expect.
Our earlier approach placed too much weight on whichever label was easiest to extract. That fails on real Shopify stores:
- a collector doll can inherit promotional collections
- a crochet kit can look like a toy or generic craft supply
- a font family is a digital license product, not a physical good
- a six-piece pot set can be confused with a single cookware item
The replacement design treats category as an evidence-backed inference.
Evidence hierarchy
Signals are collected separately:
- Shopify standard product category when exposed
- normalized product type
- product title
- canonical description and specification headings
- structured
category - typed metafields
- breadcrumbs and collections
- offer and variant shape
Promotional collection names receive low weight. “Sale,” “New,” “Shop all,” and campaign labels are context, not taxonomy.
Candidate generation
The scanner produces several candidates instead of committing immediately:
[
{"category": "Craft kits > Crochet kits", "source": "title", "weight": 0.9},
{"category": "Toys > Educational toys", "source": "collection", "weight": 0.25},
{"category": "Craft supplies", "source": "product_type", "weight": 0.65}
]
Candidates are normalized to a maintained category hierarchy. Product-specific attributes then act as discriminators: yarn, hook, pattern, skill level, and finished dimensions support crochet kit.
Conflict detection
We flag:
- title and structured category disagreement
- standard category and product type disagreement
- category derived only from promotional collections
- sibling categories with similar confidence
- insufficient evidence for the expected attribute set
A conflict is shown as a diagnostic, not averaged away.
Hierarchical decisions
The model can be certain at a parent level while uncertain at a leaf:
Home & Garden > Kitchen & Dining > Cookware high confidence
Home & Garden > Kitchen & Dining > Cookware > Pot sets medium confidence
SkuWatch AI Visibility should report the highest defensible level. False precision creates worse remediation advice.
Abstention
When evidence is weak, the output is:
{
"category": null,
"state": "needs_review",
"reason": "Conflicting product type and visible identity",
"candidates": ["Body oil", "Fragrance oil"]
}
An abstention is not a scanner failure. It prevents a weak guess from contaminating comparison and scoring.
Merchant-facing remediation
The report should not say only “wrong category.” It should identify the sources:
Visible title and ingredients indicate skincare body oil. Structured category is “Fragrance,” and the product type is empty.
Recommended work:
- assign the Shopify standard product category
- normalize product type
- publish discriminating attributes
- remove promotional labels from structured category
- rerun the same product fixture
Calibration
The 100-store corpus is read-only. It helps us sample apparel, skincare, electronics, tickets, digital licensing, bundles, and other business types without treating internal labels as merchant claims.
Calibration metrics include:
- exact category agreement
- parent-category agreement
- false-confident error rate
- abstention rate
- conflict-detection precision
- performance by commerce type
The most important metric is not maximum coverage. It is fewer confident, actionable, wrong diagnoses.
Community discussion
Add to the article
Ask a technical question, share a storefront result, or challenge a conclusion with evidence.