Andrew Parra ES

Lab · Resale

Spread

A StockX arbitrage finder: products that cost less at a retailer than StockX’s sell-now payout, ranked by profit times how fast they sell.

Status
Built · not running yet
Who uses it
Andrew only. The board sits behind an operator token.
Built with
Node.js + Postgres on Render (web service + 4-hourly job) · StockX API · Apify · SerpApi

Scoring per size

Synthetic example

Synthetic example: Spread hasn’t run in production yet.

Retail, after tax and cashbackSpread, up to the payout (bid after fee and ship-in)

SizePayout vs retailSpread × salesScore

  1. 9+$45 × 7/wk315
  2. 8.5+$26 × 9/wk234
  3. 8+$32 × 6/wk192
  4. 10+$38 × 5/wk190
  5. 9.5+$21 × 4/wk84

A board that expires

Example hit · size 9.5not re-confirmed on the next pass → taken down
Payout is the bid after StockX’s fee and ship-in; the spread is that payout minus retail after tax and cashback; the score is spread times weekly sales. The best size rises to the top.

The problem

A resale margin only exists when the retail price, sales tax, fees, shipping and cashback all line up for a size that actually sells. Checking that by hand across retailers doesn’t scale.

How it works

Discovery

A scraper browses seed categories (sneakers first, a small electronics lane) for bids, asks and recent sales.

Real bids per size

The official StockX API gives bid, ask, “earn more” and “sell faster” prices for every size, looked up by style code, and only for products that trade.

Retail search

Google Shopping is searched by style code. A different style code in the title is a hard reject, and listings are tagged new, open-box or refurb.

Scoring per size

Payout is the bid after StockX’s fee and ship-in; the spread is that payout minus retail after tax and portal cashback; the score is spread times weekly sales.

A board that expires

Hits above a minimum spread go to the board; anything not re-confirmed on the next pass is taken down.

Where AI fits

  • No AI in the product. Every number comes from a stored quote or offer.

Guardrails

The board is honest

No estimates and no demo numbers. A failed scan shows as an alarm, never as stale-but-green.

Cost control

Paid retail lookups only run for products with a bid and enough sales, and skip anything checked in the last six hours.

New and sealed only

Refurb and open-box offers are stored but never scored.

No selling without a yes

Listing on StockX moves money, so it waits for Andrew’s go-ahead.

Engineering notes

One size vocabulary

Men’s sizes as bare numbers and W/Y/C tags for women’s, youth and kids, so sizes never collide between StockX and retailers.

Shared sign-in

StockX access tokens are cached in the database so the web service and the scheduled job share one sign-in.

Economics as config

Fees, ship-in, sales tax and minimums are settings, not constants in code.

What’s next

The code is complete and tested locally against synthetic data; it has not run in production yet. Next: the hosting settings and the one-time StockX sign-in, then the first real run.