Tape Thickness — Sample-Size Weighting for TCG Card Prices
Tape thickness is the calibration weight GapSense applies to TCG card prices, combining sample size, recency, and platform diversity into a single confidence multiplier. The formula, sub-weights, and the decisions it gates.
Why a single-sale price lies
The TCG market publishes one price for every card, but the price is only meaningful if there is enough trade activity behind it to be the price the next seller will actually realize. A card whose last sale was 41 days ago, on one platform, to one buyer, is not really worth the headline number — it is worth what the next buyer will pay, which is unknowable from a single comp.
Tape thickness is the discount applied to a published price to reflect this uncertainty. A thick tape (many recent comps, multiple platforms) gets a weight near 1.0. A thin tape gets a weight close to 0.
The three inputs
| Input | What it captures | Range |
|---|---|---|
| sample_size | Count of comparable sales in the trailing window | 0 → ∞ (saturating) |
| recency | Days since the most recent comparable sale | 0 → ∞ days (decaying) |
| platform_diversity | Number of distinct platforms contributing to the sample | 1 → 9 |
Comparable means same card_key as defined in cross-platform gap — same grade, variant, language. Cross-band sales never enter the tape.
The weight formula
The composite tape weight is a product of three sub-weights:
tape_weight = w_n × w_t × w_p
Where each component is on [0, 1]:
w_n = min(1, sample_size / 10) // saturates at 10 comps
w_t = exp(-days_since_last / 30) // half-life ≈ 21 days
w_p = min(1, platform_count / 3) // saturates at 3 platforms
Defaults are tuned for the volume regime GapSense observes across nine platforms. The constants are calibrated, not theoretical — they are refit periodically from realized vs predicted sale prices.
Worked examples
| Card | sample_size | days_since_last | platforms | w_n | w_t | w_p | tape_weight |
|---|---|---|---|---|---|---|---|
| Pikachu PSA 10 (mainline) | 34 | 2 | 4 | 1.00 | 0.94 | 1.00 | 0.94 |
| Surging Sparks chase PSA 10 | 6 | 9 | 2 | 0.60 | 0.74 | 0.67 | 0.30 |
| JP-only promo, 1 historical sale | 1 | 41 | 1 | 0.10 | 0.25 | 0.33 | 0.008 |
Same headline price on each row would be treated very differently. The Pikachu price is essentially trusted at face value. The chase card is downweighted to 30% of the headline contribution. The JP promo is effectively erased — the published price is treated as nearly information-free.
Where it gates a decision
- Adjusted EV — every chase card in a pack contributes
P(c) × price(c) × tape_weight(c)to the per-pack expectation. Thin-tape chase pulls collapse the headline EV. See /methodology/adjusted-ev. - Cross-platform gap confidence — a gap whose pricing leg has tape_weight < 0.3 is downgraded to
confidence: LOWregardless of headline spread. - Beezie Adjusted EV signal — the +408% Adjusted EV opportunities surface specifically because Beezie's vault-held listings sit on thicker tape than implied by headline price; the inverse case (thin tape inflating apparent EV) is filtered out.
Tape thickness is the disagreement engine. Two analysts looking at the same headline price disagree about it because they implicitly hold different priors about what kind of evidence the price represents. GapSense exposes the prior.
Related concepts
- Adjusted EV — where tape thickness enters the EV calc
- Cross-platform gap — where tape thickness gates confidence
FAQ
Is tape thickness the same as trading volume?
No. Volume is a count of trades. Tape thickness is a confidence weight that combines sample size with recency and platform diversity. A high-volume card with all sales on one platform last month gets a lower tape weight than a moderate-volume card with sales on three platforms last week.
Why use a multiplicative formula instead of additive?
Multiplication enforces the right boundary behavior — if any single input collapses (zero recent sales, single ancient sale, single platform), the composite weight collapses with it. Additive blending would let strong signals on one axis mask total absence on another.
How are the constants 10 / 30 days / 3 platforms chosen?
Calibrated empirically against realized sale prices. The 10-comp saturation is where additional samples stopped reducing prediction error in backtests. The 30-day half-life is where price autocorrelation in the dataset drops sharply. The 3-platform saturation is the diversity threshold past which adding more venues did not change predicted price.
What if a card has zero recent comps?
The tape weight collapses toward zero, and downstream consumers (Adjusted EV, cross-platform gap confidence) treat the published price as effectively information-free. The card is not omitted from output — it is published with low confidence so the agent can apply its own prior.