CardSearch AI
Methodology · v2026.04.0 · Indexes

CardSearch Market index methodology

The math, the rules, and the edge cases for every index we publish. Bookmark this page — every change to it generates a methodology version bump and a link from the affected figure.

1. Base date and base value

All ten V1 indexes anchor at 2022-01-01 = 1000. That date matches the practical depth of the cleanest free price source we ingest (TCGCSV historical archive). Any value computed from earlier eBay sold-listing data lives in the per-card Vintage Backcast Series, not in the measured index.

2. Eligibility universe

The PMI universe is built from every (card, grade, grader) in the canonical entity layer that meets four tests on the rebalance date:

  • Game match (Pokémon for V1; one universe per game in future releases)
  • Era match for era-specific indexes (vintage = 1999–2003, modern = post-2020)
  • Grade match for condition-specific indexes (PSA 10, Raw NM)
  • Liquidity floor — minimum 30-day comp count and minimum liquidity score (per index, see definitions below)
3. Weighting

Default is market-cap-listedwith a per-name cap so a single Charizard can't dominate the index. The cap is documented per index (8–12%). At each rebalance, weights above the cap are redistributed pro-rata to the rest of the eligible universe.

Composite indexes (HEAT, SUPP, BREADTH) compute an underlying metric per constituent and then average across the eligible universe — they're not market-cap-weighted.

4. Rebalance and continuity

Rebalance cadence is documented per index — quarterly for the core price indexes, monthly for liquidity, continuous for the breadth/supply composites. At each rebalance we apply a Laspeyres divisor adjustmentso the index value doesn't jump when a constituent enters or leaves; only actual price changes move the level.

When a constituent is delisted or fails a future eligibility test, the divisor adjustment ensures the prior series remains comparable. We never restate a published value retroactively.

5. Outlier handling

On every comp ingest we flag clear data anomalies (suspect shipping, multi-card lots misclassified as singles, returned listings) using the existing CardSearch listing_observations confidence model. Comps below confidence 0.4 are excluded. The remaining comps are winsorized at the 5th / 95th percentile per (card, grade) before the weighted-median rolls forward.

6. Missing data

When a constituent has no comp activity in a 7-day window we carry the prior weighted median forward but reduce that constituent's confidence contribution. If the gap exceeds 30 days the constituent is flagged and reviewed at the next rebalance for removal.

7. Market cap — four definitions, never blended

Market cap is shown four ways. They answer different questions and are never summed across methods.

  • Listed market value — sum of currently active listings at list price. Largest of the four; useful for "how much paper is in the market right now".
  • Realized market value— last 90 days of actual sold prices, scaled to total inventory. The figure most comparable to a stock's "market cap as if everyone sold at the last price".
  • Population-adjusted— for graded entities, the realized value scaled by the most recent PSA pop snapshot so Charizard PSA 10 isn't double-counted with Charizard PSA 9.
  • Tradable float — population-adjusted, then multiplied by an estimated turnover ratio derived from 120-day flip velocity. The "how much actually changes hands in a year" figure.
8. Per-index definitions
CodeUniverseWeightingRebalanceConstituent capMin liquidity
PMIPokémon Market Indexmarket_capquarterly10%0.4
PSIPokémon Singles Indexmarket_capquarterly10%0.45
VINTVintage WOTC Indexmarket_capquarterly12%0.3
MODModern Indexmarket_capquarterly8%0.5
PSA10PSA 10 Indexmarket_capquarterly8%0.5
RAWNMRaw NM Indexmarket_capquarterly8%0.55
LIQLiquidity Indexliquiditymonthly0.4
SUPPSupply Pressure Indexcompositecontinuous0.4
HEATSet Heat Indexcompositecontinuous
BREADTHMarket Breadth Indexequalcontinuous0.4