Executable

Can a shopping assistant match this exact bag to a catalogue entry?

ALS-COFFEE-1.0-IDENT-001

This question is asked as a test and produces a result for a real page.

Assertion

product_identifier_published is_present true

Applicability

applies when
the product page publishes readable Product structured data
signal
presence of a JSON-LD Product node

Accepted evidence

  • structured_identifier — a GTIN in JSON-LD whose check digit validates after separators are stripped, or an MPN that is not a placeholder

Explicitly insufficient evidence

What does not count, and why. Published because the omission is where a check quietly becomes a claim.

  • a placeholder value such as N/A, TBD, PLACEHOLDER or YOUR-MPN-HERE, in any punctuated or suffixed form
    A merchant filling a required field with nothing is how these values arise, and a value that identifies nothing cannot do the job the row promises.
  • an all-zero GTIN
    All zeros satisfies the check-digit arithmetic and identifies no product, so the arithmetic alone is not a sufficient test.
  • a value with the right length and a wrong check digit
    A mistyped or invented identifier resolves to nothing in any catalogue, so length is not evidence of validity.
  • an internal SKU published in the GTIN field
    A seller-private stock code is not a global identifier and cannot match this product to any external catalogue entry.
  • an identifier stated in prose rather than in structured data
    The engine reads identifiers only from structured data, and prose identifiers are not machine-consumable in the way a shopping assistant needs.

Conflict rules

  • When the GTIN is invalid but a real MPN is present — then the row passes on the MPN alone, and the engine names which identifier it read precedence: structured_identifier
  • When different variants carry different barcodes — then the engine reads the product-level node only; per-variant identity is a known limitation published as a blocked entry

What a pass licenses

A pass establishes: That the page publishes a structurally plausible product identifier that is not a placeholder and, for a GTIN, has a valid check digit.

A pass does NOT establish: That the identifier is correct, unique to this product, allocated to this seller, or resolvable to any catalogue record anywhere.

Discrimination

Measured fail rate: 94.7% (n=76 products asked)

Predicted before this standard had ever run: 55-85% — the real rate is higher, so the entry discriminates less than predicted.

Small roasters overwhelmingly sell without barcodes and Shopify does not require one, so most coffee pages should fail, while packaged-goods sellers reaching grocery channels will have them. The band is high and the upper bound is set at the target limit because a rate above it would carry little information.

For a shopper

This is the field that lets an assistant tell your bag apart from a similarly-named one, and it is why searching by product name sometimes surfaces the wrong seller. You can look for it yourself in the page source, though most small roasters publish none.

For a merchant

Publish a valid GTIN or a real manufacturer part number in the Product structured data, and never fill the field with a placeholder, because an unusable value is worse than an absent one for a machine consumer.

Grounding

  • Google Merchant Center product data specification (retailer_help_centre)
    that the dominant product-feed specification treats a global trade item number as the field that identifies a product to an automated consumer, which is what makes its absence a machine-buying defect rather than a cosmetic one
  • GS1 general specifications overview (trade_body)
    that a global trade item number is allocated under a defined numbering system with a computed check digit, which is the basis for validating a published value rather than accepting any digit string