A common question we get: "How does the HeySeller extension know that listing sold 6 items today when Etsy doesn't show daily sales publicly?"
Short answer: it doesn't know. It estimates. From public data. Computed in your browser. And we want to walk through exactly how, because we think tools should be honest about their methodology.
What Etsy already shows publicly
Anyone. Even an anonymous visitor. Can see these on any listing or shop page:
- "X sold" count on every listing (total since the listing was created)
- "X sales" on every shop page (lifetime shop sales)
- "In Y carts" notice (transient, when applicable)
- Reviews with dates (every review carries a date stamp)
- "Recently sold" thumbnails on some shop pages
These are all part of Etsy's normal HTML. No login needed.
How we estimate daily sales
The HeySeller extension does something very simple. When you visit an Etsy listing, we read the "X sold" number from the page you're already looking at, and we store it locally in your browser with today's date.
The next time you visit that listing. Tomorrow, in three days, in a week. We read the new "X sold" number and compute the delta.
day 1 visit: 124 sold
day 3 visit: 130 sold
estimated daily sales: 6 / 2 days = 3 per day
That's it. No magic. No scraping. No reverse-engineered Etsy internals. Just delta math on a number Etsy already publishes.
Why we call them estimates
Five reasons we always label these numbers as estimates, never as exact:
- You set the cadence. If you only visit a listing every 3 days, we estimate 3-day intervals. Daily precision requires daily visits.
- Etsy rounds the "sold" counter. A listing showing "20 sold" might actually be 22 or 18. Etsy doesn't always update in real-time.
- Returns affect the count. If 5 items sell and 1 is returned, the public count may decrement.
- The number can include digital and bundle SKUs differently. Etsy's exact methodology isn't public.
- First-time visit has no baseline. We need at least 2 visits across different dates to compute any estimate at all.
What we DON'T do. Five hard lines
This is the part we want Etsy's review team and our users to be completely clear on:
- No headless browser scraping. No Puppeteer, no Selenium, no automated bots crawling etsy.com from any HeySeller server.
- No background tabs. The extension does not silently open etsy.com pages you didn't visit yourself.
- No use of Etsy's API for competitor data. The Etsy Open API does not expose competitor sales data, and we don't try to get it that way.
- No buying data from third-party aggregators. Some tools resell scraped data wholesale. We don't.
- No access to private shop dashboards. We can only see what Etsy already shows to every visitor.
How this compares to other tools
Other browser-extension analytics tools (EverBee, eRank, Sale Samurai) use broadly similar approaches. DOM reading of public Etsy pages. Some of them additionally run server-side scraping bots to backfill data on listings users haven't visited. That second part is a grey area under Etsy's Terms of Service.
We chose not to do server-side scraping. It would give us more data, but it would put us outside Etsy's compliance boundary, and we'd rather have a smaller, honest dataset than a bigger, brittle one.
Why be this transparent?
Three reasons:
- Sellers deserve to know what their tools do. Especially when those tools are reading data adjacent to their business.
- Etsy's review team should be able to verify our compliance story. Our compliance reference is a single page covering scopes, endpoints, and exactly this extension architecture.
- The product is more useful when you understand the math. A "3 sold per day" number with no context is misleading. A "3 sold per day estimated over 2 visits 3 days apart" is honest.
Every daily sales number HeySeller shows is labeled as an estimate. We never claim exact precision.
CTA: For the full technical architecture, see our compliance page. For early access to the extension, join the beta.