CoolFace
Datasetpublic

sempite/product-tagging-saved-intent

Product Tagging and Saved Intent in Online Retail How online stores structure product tags and implement saved-item features, and how that compares with a platform where tagging is crowd-sourced against a shared controlled vocabulary. Canonical release: https://doi.org/10.5281/zenodo.22852049 This repository mirrors that deposit. Cite the DOI. Sample 1,028 Shopify storefronts, drawn by seeded random sample from a 30,000-domain draw of the Tranco top 1M, measured… See the full description on the dataset page: https://huggingface.co/datasets/sempite/product-tagging-saved-intent.

sourceHugging Facecc-by-4.0updated 2d agoView on Hugging Face
0likes46downloads
Dataset Card

Product Tagging and Saved Intent in Online Retail

How online stores structure product tags and implement saved-item features, and how that compares with a platform where tagging is crowd-sourced against a shared controlled vocabulary.

Canonical release: https://doi.org/10.5281/zenodo.22852049 This repository mirrors that deposit. Cite the DOI.

Sample

1,028 Shopify storefronts, drawn by seeded random sample from a 30,000-domain draw of the Tranco top 1M, measured 13 to 14 September 2026 with a 95.6% collection rate. 700 Steam titles as a contrast case.

Findings (95% Wilson intervals)

Every store invents its own private language. 963 Shopify stores used 30,622 distinct tags between them, and the median store shares just 16.7% of its tags with any other store. 700 Steam titles drew on 394 distinct tags, and the median title shares 100%.

MeasureValue
Stores carrying wishlist code46.0% (43.0 - 49.1)
Stores with a confirmed live save control28.1% (25.5 - 30.9)
Of active wishlists, no back-in-stock app34.9% (29.7 - 40.6)
Of active wishlists, saving requires login19.4% (15.2 - 24.3)
Stores publishing Product JSON-LD79.1% (76.5 - 81.5)
Stores with all 12 core agent attributes0.1%, one store in 1,028

Confirmed wishlist presence rises across tagging-depth quartiles (17.9%, 26.8%, 27.2%, 40.5%; Cochran-Armitage z=5.43, p=5.6e-08). Association, not mechanism: both are plausibly downstream of a merchant who invests in their catalogue.

The 46% versus 28% gap is the point

Detecting wishlist code is easy. Confirming a shopper can actually save something is not. A second verification pass re-fetched every candidate and recorded the evidence snippet behind each verdict, which ships in wishlist_verification.csv.

Anyone measuring this by pattern-matching page source alone overstates working wishlists by roughly 18 percentage points. Use wishlist_verified_state, never wishlist_code_detected.

Configs

ConfigRowsWhat it is
shopify_stores1,075one row per store; 47 rows with collected=false are kept so the collection rate is auditable
wishlist_verification473per-store verdict with the evidence text behind it
steam_games700one row per title; n_tags_shown is censored at Steam's top 20
steam_tag_applications13,447one row per tag applied, with vote count

Also included: results/stats.json with every published figure and interval, all collection and analysis code, and METHODS.md with a ten-point limitations section.

Reproducible in the browser

A runnable notebook recomputes every figure above from these files: https://www.kaggle.com/code/sempite/reproducing-the-tagging-and-wishlist-findings

Method notes worth knowing

Shopify rate-limits /products.json per IP across all endpoints, so collection is paced by one global limiter. Collection health was gated separately from analytical correctness, after an earlier run passed arithmetic verification while resting on only 47 of 1,075 stores.

Citation

bibtex
@dataset{gerrish_tagging_2026,
  author    = {Gerrish, Jacob Ezra},
  title     = {Product Tagging and Saved Intent in Online Retail: a measurement
               study of 1,028 Shopify storefronts and 700 Steam titles},
  year      = {2026},
  publisher = {Zenodo},
  doi       = {10.5281/zenodo.22852049}
}

Write-ups: tag vocabularies · wishlists

Data CC BY 4.0, code MIT. Produced by SEMPITE.