Josh SolisJS Book an intro callBook a call

Retail / marketplace · Vision + pricing

Collectible ID: Near-duplicate image identification and pricing at catalog scale

A dealer points a phone at a collectible. The app must find the exact printing among thousands of near-identical variants, then attach a real market price, while a customer waits.

How it works

Thousands of near-twins

Each dot is one printing with the same name. Many of them look almost the same.

Each constraint removes candidates: set, then number, then finish, then language.

When one candidate stays, the app attaches a market price. When two stay, the app asks the dealer.

Figure: a cloud of dots, one per printing. Each constraint (name, set, number, finish, language) removes dots until one exact match stays and a price is attached.

Video · 36 seconds

The identity funnel

  1. Thousands of near-twins.
  2. Constraints remove candidates.
  3. One match gets one price.
Transcript
  1. One name can match thousands of printings.
  2. Each constraint removes candidates.
  3. One exact match remains.
  4. The system shows its confidence.
  5. Three price sources merge into one median.
  6. A wrong match is worse than no match.

What I built

The parts

  • Scan, identify, price, then buy, sell, trade or add to inventory, in one loop.
  • The identity and catalog layer: near-duplicate printings resolved by set, number, finish and language, across a 151,260-item catalog.
  • A universal CSV import that maps any seller's spreadsheet to exact catalog items.
Show 5 more
  • Sealed products in the same catalog and pricing flow.
  • One review-queue query went from 90 ms to 3 ms.
  • Multi-source price aggregation and caching.
  • Point-of-sale and cross-listing for show floors.
  • Monorepo: backend, web app and mobile scanner.

Results

By the numbers

151,260
Catalog items
90 ms to 3 ms
Review-queue query
API · Web · Mobile
Surfaces

Lesson

Identity is the hard part. A wrong match is worse than no match, so the system shows its confidence.