How SneakerPulse Is Built
SneakerPulse turns completed sneaker resale sales into prices people can use. This page explains where the numbers come from, how they are processed and served, and the checks that keep them honest.
The data
Every figure on the site comes from one database of completed sales on GOAT and StockX: 24.3M+ sales since October 2024, each with product, price, date and marketplace, plus US shoe size for GOAT sales and buyer city for GOAT sales before March 2026, when GOAT stopped publishing locations. Sales are collected through a commercial sneaker data API. They are sold prices, not listings.
The pipeline
- Collect. A Python pipeline runs daily on GitHub Actions. It walks each product's sales history page by page, loads new sales into Postgres (Neon) and discovers new products.
- Summarise. It then rebuilds summary tables and exports the heavy analyses to static files: model and brand medians, price by size, colorway prices, the release curves behind the best-time-to-sell tool, and the price checker's index.
- Serve. The site is static pages on Cloudflare Pages, rebuilt from those files. Live charts read from a small API on Cloudflare Workers that queries the database through a read-only login.
Keeping it correct
- Verify outcomes, not steps. A pipeline that "succeeds" can still add zero sales. Checks look at the newest sale per marketplace and the row counts, not the exit code.
- Click the real site. Automated checks open the live pages, use every control and confirm each chart has data, which finds problems status codes never show.
- Control for mix. A day of the week can look expensive just because pricier shoes sold that day. The timing analyses compare each sale with the same shoe's own median.
- State the window. Every figure names its data window and marketplaces, and patterns are never presented as forecasts.
Speed, cost and security
- Queries that scan tens of millions of rows run once a day and are served as static files, so a page load never waits on them.
- The API caches responses and ignores unknown URL parameters, so they cannot be used to bypass the cache, and it limits uncached requests per visitor.
- Security headers, integrity checks on third-party scripts, and credentials kept out of the code.
Built with AI
SneakerPulse is developed and maintained with Claude Code, Anthropic's AI coding agent. It writes the pipeline, pages and analyses, and a scheduled run checks the data and the live site every few hours, fixes what it can, and flags anything that needs a person.
Try the free tools or browse the market data.