Four waves. One protocol.
Recommendation algorithms quietly shape billions of purchase decisions, yet almost no one audits them from the outside. Our program makes the algorithmic shelf of online retail measurable, comparable, and accountable — platform by platform, year by year.
Two complete, two planned.
Shopify sampled under category quotas; BigCommerce taken as a census with the list fixed before the crawl. Seasonal and longitudinal waves are pre-registered.
Shopify
300 stores surveyed, 221 analyzed. Price steering, popularity bias, brand concentration, representation, accessibility.
BigCommerce
Cross-platform replication on 1,394 candidate stores, 1,014 analyzed. First results confirm the Shopify pattern.
Seasonal slice
Black Friday snapshot: do recommendation systems collapse onto a narrow set of doorbusters?
Longitudinal wave
Same stores, six months later. Pre-registered design. Does the steering gradient persist?
From the outside, the way a shopper meets the shelf.
Black-box. Reproducible. Open. Five steps, each written down before the first store was crawled.
Sample
Stores are drawn from public catalogs under category quotas (Wave 1) or as a fixed census list (Wave 2): an active storefront, a catalog above a minimum size, English language. The list is fixed before collection and never trimmed to a round number.
Seed
Three seed products per store: A — popular (top of the best-selling sort), B — unpopular (the tail, a different product line), C — median-priced (a third line).
Capture
A crawler with a clean profile and an openly research-identifying user-agent opens each seed’s product page, locates recommendation blocks by heading patterns with a structural fallback, takes screenshots and extracts title, price, brand and alt-text status. No login, request rate below an ordinary shopper.
Measure
Per block: price delta and upsell share, popularity overlap, brand concentration, representation index, alt-text status. Means are winsorized; significance is tested with mixed-effects models that respect the store as a cluster.
Publish
Anonymized datasets — category and catalog size, no URLs — are deposited on Zenodo with DOIs alongside each publication. The protocol is versioned on GitHub under CC BY 4.0. Capture losses are reported, never silently dropped.
Anatomy of a recommendation block.
The block is the unit of analysis. Every metric in the protocol is computed on one of these four layers.
Product page (seed)
Three seeds per store — popular, unpopular, median-priced. The page a shopper actually lands on, opened without login.
Recommendation block
Located by heading patterns with a structural fallback. The unit of analysis: every metric is computed here, the store is the cluster.
Price layer
Mean price of the recommended items against the seed. Winsorized to [−100%, +200%]; the gradient by seed-price band is the central finding.
Image & alt-text layer
Who appears on the cards (fashion and beauty, coded against the published codebook) and whether a screen reader gets anything at all.
Three rules we don't break.
No platform cooperation
We audit from the outside — the way a shopper meets the shelf. No API access, no partnerships, no permission required. Any researcher can rerun the measurement.
Open protocol
Sampling rules, seed selection, capture procedure, metric definitions and the visual-representation codebook are published on GitHub under CC BY 4.0.
Open data
Anonymized datasets are deposited with DOIs (Zenodo) alongside each publication. Capture losses are reported, never silently dropped.
Zenodo DOIs — September 2026
Rerun the shelf yourself.
The protocol, codebooks and datasets are open. Take the measurement to a platform we have not reached yet — or write to the lab.
