Market Cap Methodology
Market cap is TCGBerg's measure of total value rather than unit value. For a single atom (printing x grader x grade) it is the fair value multiplied by the graded population: what every known slabbed copy of that exact card at that exact grade is worth in aggregate. For any rollup, by set, by grade, or by print run, it is the sum across the atoms in it. The atom is the unit; the rollup is the sum. Fair value comes from the fair-value engine; population comes from the grading companies' own published reports. This page documents how the two combine into the figures on every set page and discovery view.
Maintained by the TCGBerg research team · Last updated August 20, 2026
The Per-Atom Calculation
For an atom with a fair value and a population, market cap is simply the two multiplied together. Nothing else enters at this layer: no adjustment, no discount, no evidence factor.
A worked example: a card whose PSA 9 fair value is $13,000 and whose PSA 9 population is 1,200 has a PSA 9 market cap of $15.6M, the total value of all known PSA-9-graded copies if each were worth the fair-value price.
Every market cap row caches the fair value, the population, and the fair-value sales-evidence score that produced it, along with the date of each input, so any figure on the site can be audited without reassembling it.
Computation is gated on real inputs only. If either the fair value or the population is missing, or the population is zero, no market cap is written at all. We would rather show nothing than a number with an invented factor in it, so every published market cap is the product of two genuine measurements.
One consequence worth stating plainly: market cap is currently published for PSA grades 6 through 10 only, because that is where fair value exists. BGS and CGC populations are tracked but do not yet carry a fair value to multiply, so they produce no cap.
Population Sourcing
Populations come from the grading companies' public population reports, ingested and normalized into our own tables. Those reports update on the graders' cadence, roughly monthly in PSA's case, while fair value updates daily. So on any given day the price side of the calculation is fresh and the count side may be a few weeks old.
How we pair the two, stated precisely. The engine uses the latest population reading we hold, and it uses it for every date, including historical ones. It does not reconstruct what the population was on a past date. This is a deliberate trade: rebuilding a full historical population curve for every atom would be a far larger data problem than the accuracy it buys, and the alternative of publishing no history at all is worse. The cost is that historical market caps carry a modest upward bias, because yesterday's cap is computed against today's larger population. Both input dates are stored on every row, so the staleness is visible rather than hidden, and the bias affects absolute historical levels much more than it affects relative comparisons between cards.
A few further wrinkles:
- Population is not the surviving copy count. Population reports count every grading event, including resubmissions of a card that was cracked out of its slab and graded again. The true number of surviving slabs is lower by an unknown factor. We do not correct for this, so reported market cap overstates the true figure by that margin while remaining a meaningful ordering across cards.
- Populations are never pooled across graders. A card with copies at PSA and at BGS is two separate atoms, not one combined count.
- Cross-grader double counting exists. A physical card cracked out and regraded by another company appears in both companies' reports. That is a reality of the source data, not something correctable at this layer.
- Raw cards have no graded population, so they show a value but never a market cap, and stay out of every rollup.
- Coverage varies. Recently onboarded printings can have sparse population coverage; their market caps appear once both inputs exist.
Rollups
A rollup is a sum over the atoms in a dimension. The set rollup for a set is the total market cap across every (printing x grader x grade) atom whose card belongs to that set, and the same pattern gives the by-grade and by-print-run views.
Four standard rollups are published on the discovery views:
- By set: the total across every atom in a set.
- By grade: the total across every atom at a grade tier, across all sets.
- By print run: the total across atoms sharing a print run, such as 1st Edition Shadowless or Unlimited.
- Top atoms: the largest individual atoms by market cap, regardless of dimension.
Rollups are derived from the same atomic rows every other surface reads, so there is one canonical definition of market cap and no consumer computes its own. The commonly-read rollups are precomputed on the daily run rather than assembled on every page load, which is what keeps the set board and the discovery views fast; the definition is identical either way.
One rollup does apply a quality filter, and it is worth knowing about. The set-level daily rollup that drives the set board and its 30-day momentum excludes the cap of atoms whose fair value falls below a sales-evidence floor, while still counting their population and their existence. The reasoning is that a set total is a headline figure, and a headline should not be moved by values the engine itself does not trust. The per-atom rows apply no such filter, so a card page and a set total can legitimately differ in what they count.
Known Limitations
Market cap as computed has real limits:
- Population overcounting, as above: resubmissions inflate every reported population, and therefore every cap.
- Historical population is not reconstructed, so past caps are biased slightly upward. Relative moves are far more reliable than absolute historical levels.
- Market cap is implied, not realizable. Selling every copy of a card at once would collapse the price. Market cap is aggregate notional value at today's fair value, not an exit price. The same caveat applies to a company's market capitalization, and for the same reason.
- Population staleness multiplies the same as freshness. A reading from three weeks ago is used exactly as a reading from today would be. The cached input dates make this auditable but do not change the arithmetic.
- Sales evidence is carried, not applied, at the atom level. Each row caches its fair-value sales-evidence score and leaves the decision to consumers: indices down-weight thinly evidenced atoms, screeners can require a floor, and the set rollup applies one, as described above.
- PSA-first coverage. Other graders' populations are tracked and would extend the same pipeline, but until they carry fair values they contribute no cap.























