Methodology
How the Pikavest Market Index is built, what it excludes, and where the numbers come from. If a figure on this site can't be explained here, treat it as a bug.
Where prices come from
Card prices are TCGplayer market prices, retrieved through the Pokémon Price Tracker API. Pikavest currently tracks 7,674 cards across 166 sets, with 2,175,880 price observations recorded to date.
Card detail pages additionally show graded-slab prices derived from eBay sold listings. That data never sets a price in the index or in any ranking — only TCGplayer market prices do. It is used to corroborate the direction of a move and to measure liquidity; see below.
Update cadence
Prices update nightly, not in real time. The sync is tiered by card value, so higher-value cards are refreshed more often and the whole catalogue is covered on a rolling basis within a fixed daily API budget. On a typical night roughly 2,000–3,000 cards are repriced; on a deep-refresh night it can be over 7,000.
This matters for reading any short-window number: a card's price change is discovered on the day it is synced, which is not necessarily the day the market moved.
How the index is built
A naive “total market value per day” chart — summing every price recorded on each date — is not usable here, for two reasons we can measure in our own data: the daily total swings with how many cards the sync happened to touch, and it jumps whenever coverage grows. Both look like market moves and neither is.
So the index is constructed the way market indices are:
- Fixed basket. Constituents are chosen once per computation. A card qualifies if it has a price on the baseline day, at least 30 distinct priced days in the window, and a baseline price of at least $1.00. Cards that appear mid-window are excluded — otherwise they manufacture growth from nothing. The basket currently holds 3,075 cards.
- Carry-forward. A card's value on a given day is its most recent known price as of that day, so a day with no sync coverage reads as flat rather than missing.
- Rebased. The baseline day is set to 1000 (2025-07-24), so the series describes relative market movement rather than the size of our database.
Breadth counts (advancing, declining, unchanged) are measured only across basket cards that actually received a new price that day. A card with no observation is not counted in either direction.
What gets filtered out, and why
The upstream vendor sometimes re-bases a card's quoted price instead of reporting a market move. Two patterns show up in our data and both are excluded:
- Placeholder prices. A card sits at a nominal value (often $1) and then receives a real price. Left alone this produces “gainers” of several thousand percent. Any card whose history contains a day-over-day move larger than 4× is flagged and excluded from the index basket and from every ranking.
- Step re-basings. A card's quote shifts to a new level and stays there — the card-market equivalent of a stock split, not a gain or loss. No single constituent may move the index by more than 25% in one day, which is the same idea as an index divisor adjustment.
How card trends are measured
Every ranked list on the site — the screener, the homepage movers, set pages — reads one nightly computation, so no two pages can give different answers to the same question. Four rules govern it.
- Robust endpoints. Both ends of a return are the median of up to three observations, never a single print. One bad quote cannot create a move.
- Bounded baselines. A “30-day change” must compare against a price actually observed 25–36 days ago. If no observation falls in that window, the card reports no 30-day number at all. It is never compared against whatever happens to be the most recent older price — that is how a 13-month move once got published as a 7-day gain.
- A move must clear two floors. At least 5% and at least $0.50, on a card priced at least $2.00. The dollar floor is what removes penny-card noise: a $0.25 to $0.50 move is +100% and means nothing.
- No percentage ceiling. Large moves are not capped, because measured against our own history they are usually real: of cards that jumped 10% or more in a week, 70% still held the full move a month later and only 10% gave it back. A cap would discard signal. Bad data is handled by the rules above and below instead.
Default horizon is 30 days, not 7. Over a 7-day window the median card in our data moves 0.0% and the 90th percentile moves 2.9% — there is almost nothing to rank. At 30 days about half the tracked market has moved at least 5%, in both directions.
Each row carries a confidence mark. High means dense price coverage plus at least three eBay sales in the last 30 days agreeing with the direction of the move. Sold data is used for corroboration and liquidity only, never to set a price: across cards holding both series, sold and quoted prices agreed on direction about 85% of the time but their magnitudes barely correlated.
Rows are also marked step or sustained. A step is a one-time re-price that has since held; sustained means the price moved across many distinct levels. They can look identical as a percentage and mean very different things.
Vendor re-quote days
Some days the price source re-bases many cards at once. This is not market activity and it is measurable: on a normal day roughly 0.2% of cards over $5 move more than 20% against their previous observation, but on 17 and 18 July 2026 that figure hit 3.4% and 3.6%, skewed two-to-one downward. Twelve such days exist in our history to date.
Those days are flagged, and any card whose price stepped across one has its affected returns withheld rather than published. Withheld rather than patched: a re-base is a persistent step, so dropping the bad day just moves the step to the next day, and splicing it out would leave a percentage that contradicts the prices shown beside it.
Known limitations
We would rather state these than have you discover them:
- Because the index attributes a price change to the day it was observed, deep-refresh days can post several days of accumulated movement at once. Charts plot a trailing 7-day average for this reason; the underlying daily series is stored unsmoothed and is never revised after the fact.
- The re-quote threshold is tuned against a small number of known events. It separates them by more than an order of magnitude, but it may not catch a subtler re-basing, and the per-day measurement is stored so it can be re-evaluated as more history accumulates.
- eBay sold data covers graded slabs while the index and all ranked lists use raw TCGplayer market prices. Sold volume therefore corroborates direction and measures liquidity, but the two price levels are not comparable.
- Cards under $2.00 are excluded from ranked lists entirely — a large share of the catalogue that the screener will never show.
- The basket requires a full window of history, so the most recent releases are not represented in the index even though they appear elsewhere on the site.
- Nothing here is investment advice, and none of it is a substitute for checking a live listing before you buy or sell.