A product record can contradict itself. The title can say one brand while the brand field says another; the RAM in the title can disagree with the RAM in the specification. These errors are invisible to a human skim-reading a product page — but not to Google's feed validator, and increasingly not to the AI shopping agents that now sit between retailers and their customers. We built a test harness to prove CatalogueScore's verification engine catches them.

What we set out to test

CatalogueScore verifies whether retail product data is correct, consistent, complete, and valid — without modifying, enriching, or retaining any customer data. The method uses an OWL ontology engine to find self-referential errors within a feed: internal contradictions, formatting violations, and missing mandatory fields that exist independently of any external reference.

Before running that engine against a real retailer's feed, we needed to answer a more basic question: does it reliably catch the errors it is designed to catch? To measure that properly, you need a dataset where you already know every error — so you can check what the engine finds against ground truth. That is exactly what this exercise does.

The method

We constructed a controlled test dataset of 220 laptop product records modelled on Google Merchant Center feed specifications — the standard format UK retailers use to list products on Google Shopping. The records use realistic field structures: product titles, brand fields, pricing, GTINs, condition flags, category classifications, and specifications including RAM, storage, screen size, and operating system.

Into that dataset we deliberately seeded 61 errors across ten categories, at known locations. Roughly three-quarters of the records were left clean. We then ran CatalogueScore's engine across the whole feed with no knowledge of where the errors were, and compared what it found against the manifest of what we had planted.

The engine applies ten rule categories, each derived from Google Merchant Center requirements and internal data consistency principles:

Critically, none of these rules requires an external reference dataset. The engine finds errors that exist purely within the feed itself — the kind a retailer's own data team may never notice until a product is disapproved by Google or skipped by an AI agent.


The result

The engine found 57 of the 61 seeded errors, with zero false positives. Against Google Merchant Center's compliance rules, the test feed scored 75.5 out of 100.

CatalogueScore verification report
Controlled test feed — 220 records
75.5 B
out of 100
220
Records analysed
163
Clean records
57
Records with issues
58
Total issues found
43 HIGH severity
15 MEDIUM severity

Error breakdown

Error typeSeverityFound
Brand field contradicts titleHIGH8
Price format violationHIGH8
Condition field invalid valueHIGH7
Brand formatting inconsistencyMEDIUM7
RAM value contradicts specHIGH6
Storage value contradicts specHIGH5
OS contradicts spec fieldHIGH5
Missing GTINHIGH5
Screen size contradicts specMEDIUM4
Wrong product categoryHIGH4
Duplicate GTIN across recordsHIGH2

Actual findings from the run

Every example below is a verbatim finding from the engine's output — not a reconstruction.

E1 — Brand contradiction · HIGH
LAP-0004 · HP Laptop 15.6 inch 32GB 512GB SSD ChromeOS
Brand field reads 'LG' but the title clearly names 'HP'. The two fields describe different manufacturers for the same product record.
→ Update the brand field to match the title, or correct the title — verify which is accurate
E2 — RAM contradiction · HIGH
LAP-0008 · Dell Laptop 11.6 inch 4GB 512GB SSD Windows
Title implies 4GB RAM but the spec_ram field says 8GB. An agent comparing this product against a competitor reads contradictory information from the same record.
→ Align title and spec_ram — verify the correct value is 8GB
E4 — Price format violation · HIGH
LAP-0002 · Samsung Laptop 11.6 inch 32GB 256GB SSD Windows
Price is formatted as 'GBP 1019.08'. Google Merchant Center requires the value before the currency code. This format error causes feed disapproval.
→ Format must be '0.00 GBP' e.g. '499.99 GBP'
E7 — Duplicate GTIN · HIGH
LAP-0011 and LAP-0092
GTIN '3731453038568' appears on two different records — an Apple laptop and a Lenovo laptop. A shared GTIN tells Google two distinct products are the same item.
→ Each product must carry a unique GTIN — verify identifiers with the manufacturer
E9 — Screen size contradiction · HIGH
LAP-0031 · Toshiba Laptop 13.3 inch 64GB 256GB SSD macOS
Title implies a 13.3" screen but the spec_screen field says 16 inch. The customer sees one size in the name and another in the specification.
→ Align title and spec_screen — verify the correct screen size
E1b — Brand formatting · MEDIUM
LAP-0009 · Microsoft Laptop 14 inch 8GB 500GB HDD Windows
Brand field reads 'MICROSOFT' in all capitals. Inconsistent brand capitalisation across a feed fragments how the same manufacturer is represented to search and agents.
→ Use the canonical form 'Microsoft'

How well did it perform?

Because every seeded error was known in advance, we can measure the engine's accuracy exactly.

Precision · Recall · F1 score
100%
Precision — zero false positives
93.4%
Recall — 57 of 61 errors found
0.966
F1 score

Every finding the engine raised was a genuine seeded error — nothing was falsely flagged. The four it missed were storage contradictions where neither the title nor the spec carried an explicit SSD or HDD label; the engine correctly declined to guess storage type from ambiguous data. That restraint is the point. A verification service that guesses is worse than useless — it erodes the trust that makes verification worth paying for.


What this proves — and what it doesn't

This is a controlled test on a synthetic dataset. It demonstrates that the engine reliably detects the ten categories of internal contradiction it is designed to catch, with high recall and no false positives. It does not, and cannot, tell you how many errors a specific retailer's real feed contains — that requires running the engine against that retailer's actual data. What it establishes is that when the errors are there, the engine finds them, and when they are not, it stays quiet.

That distinction matters, and it is the discipline CatalogueScore is built on: we report what we can verify, and we are explicit about what we cannot.

"Products that are emotionally legible to people but semantically opaque to machines risk becoming invisible in agent-mediated flows."

— McKinsey, The Rise of the Agentic Shopper: ASOS's AI Investment, 2026

The reason this matters now is timing. McKinsey models agentic commerce at $3–5 trillion globally by 2030. As AI agents increasingly mediate product discovery and comparison, the errors this engine catches stop being minor data-hygiene issues and become the difference between a product an agent can act on and one it silently skips. A record whose title and specification disagree is a record an agent cannot trust — and an agent that cannot trust a record moves on to one it can.

What CatalogueScore does

We verify whether your product feed is correct, consistent, complete, and valid — at a point in time, against your own data. We do not modify it, enrich it, invent attributes, or retain it. We return a report and a score. You decide what to fix.

Is your catalogue agent-ready?

cataloguescore.com

Methodology note. This is a controlled test conducted on a synthetic dataset of 220 laptop records modelled on Google Merchant Center feed specifications, into which 61 errors were deliberately seeded at known locations across ten categories. The exercise measures the verification engine's detection accuracy against known ground truth. It is a capability demonstration, not a study of any retailer's actual product data, and the error rate reflects what was seeded rather than any real-world finding. Verification methodology uses W3C SHACL and OWL ontology principles. CatalogueScore is a product of Goodwood House Ltd, St Helens, UK.