Shopify store scoring: measured, not estimated
Every Shopify store publishes its catalog. We read it directly — so catalog size, price positioning and growth are observed facts, not inferences.
What we read, and where it comes from
Shopify exposes a public catalog endpoint on every store. No login, no scraping of rendered pages, no guessing: the data below is what the store itself publishes about its own products.
| Signal | Type | What it tells you |
|---|---|---|
| Product count | measured | Store size. The headline filter — a 12-product store and a 5,000-product store are different businesses with different budgets. |
| Price min / avg / max | measured | Positioning. A $28 average is volume retail; a $340 average is considered purchase, and a different sales motion. |
| New products (30d) | measured | The growth signal. Stores adding products weekly are actively investing; a static catalog is coasting. |
| Last product added | measured | The best liveness test there is. A store that has added nothing in six months is effectively dormant, whatever its homepage says. |
| Vendor count | measured | One vendor is a DTC brand. Forty vendors is a multi-brand retailer — completely different buyer. |
| Out-of-stock ratio | measured | Inventory health. A high ratio means supply problems, or a store winding down. |
| Discount depth | measured | Average markdown against compare-at price. Reveals a discount-led brand versus a full-price one. |
| Catalog age | measured | Days since the oldest product. Separates a mature store from one launched last quarter. |
| Product types | measured | The store's own taxonomy — more accurate than any classifier we could run over its homepage. |
Why we cap the sample
Detection on custom domains
Almost every serious Shopify store runs on its own domain, often behind Cloudflare, so the domain name tells you nothing. Detection uses CDN and markup fingerprints instead. Measured against DNS-level ground truth across our index — every domain whose infrastructure proves it is Shopify — recall is 100%, and markup detection additionally catches ~25,000 stores whose DNS gives nothing away.
Measured facts versus scored estimates
This is the important distinction, and it is why these signals are kept separate from the revenue model. Catalog data is observed. Revenue brackets are inferred. We publish both, clearly labelled, rather than blending them into a single opaque "store score" whose provenance you cannot check.
Combine them yourself, deliberately
Who buys this, and what they filter on
Shopify app developers
3PL, fulfilment and packaging
Agencies and consultants
Other scoring methodology