Methodology
How SilphCo Price works — and why you can trust it
Last updated:
SilphCo Price is the canonical valuation you see across the platform — on card pages, in your portfolio, and over the API. It is produced by SilphCo's Live Mark pricing engine, which uses a structured selection hierarchy (the "pick ladder") to choose the most accurate price from recent transaction history (last sale), liquid volume-weighted averages (TV-WAP), and robust fallback medians — adapting to each card's real-time liquidity while filtering out outliers.
What Is Live Mark Pricing?Link copied!
Most price sites show the last sale or a simple average — both of which can be noisy or misleading for illiquid collectibles. Live Mark Pricing resolves this by employing a multi-tier selection hierarchy (the "pick ladder") that dynamically chooses the most transaction-honest price source based on volume, recency, and liquidity. It incorporates verified last sales, robust time-value weighted averages (TVWAP), and median fallback pricing to provide a stable, reliable market mark.
Selection Hierarchy (Pick Ladder)Link copied!
To ensure reliability, our system calculates candidate prices from multiple methodologies and selects the final Live Mark using a prioritized decision tree:
| Liquidity State | Condition / Rule | Selected Price Source |
|---|---|---|
| Liquid Market (n ≥ 5 sales) | Active trading within lookback window | TVWAP (recent sales weighted exponentially; outlier-filtered) |
| Thin Market (n < 5 sales) | Limited sales history | Median Price (to avoid weighting outliers or single extreme sales) |
| Recent Action | Verified recent trade-floor signal exists | Last Sale (always preferred when present to reflect real-time pricing) |
By combining these methodologies, the Live Mark avoids "TVWAP pollution" (when an old or thin TVWAP average overstates/understates the current market) and ensures that both illiquid vintage cards and high-velocity modern cards are priced appropriately.
Adaptive WindowsLink copied!
A Charizard Base PSA 10 trades dozens of times a month; a vintage PSA 10 might trade once a year. A single fixed window would overreact for one and ignore the other. SilphCo Price uses an adaptive half-life based on trailing 30-day volume to scale the lookback window automatically:
| 30d Sales | Window | Why |
|---|---|---|
| 10 or more | 14 days | Fast-moving; recent prices matter most |
| 3–9 | 30 days | Steady; balanced view |
| 1–2 | 60 days | Sparse; need more history |
| 0 | 90 days | Floor fallback only |
Outlier RejectionLink copied!
A $50,000 Charizard sale might be a wash trade, a typo, or a bundled deal. SilphCo Price uses a modified Z-score filter to detect and exclude these outliers before averaging — conservative enough to catch genuine anomalies without discarding legitimate market moves.
Confidence LevelsLink copied!
Every SilphCo Price carries a tvwap_confidence label. This tells you how the price was derived and how much weight to give it.
direct and direct_offchain prices are backed by actual sales. set_estimate and grader_estimate are directional only — useful for trends, not for setting exact listing prices.
Grade InferenceLink copied!
Not every grade trades regularly. A PSA 10 Charizard sells weekly, but a PSA 8 can go months between sales. Rather than showing a stale price, SilphCo infers it from nearby grades using historical premiums — computed from 90-day co-occurrence data, falling back to set-level medians then global defaults.
Rules of thumb:
- We never infer across more than 2 grade steps (PSA 10 can infer PSA 9 and PSA 8, but not PSA 7).
- Collectible grades (8–10) never mix with low grades (1–6) — the markets behave differently.
- Inferred prices never feed further inference. A PSA 9 inferred from PSA 10 will not be used to infer PSA 8.
On-Chain vs Off-ChainLink copied!
SilphCo blends two sources of sales data:
On-Chain Sales
Sales recorded on the blockchain via Courtyard (Polygon), Collector Crypt, Phygitals, Beezie, and Magic Eden (Solana). These are cryptographically verified — the transaction hash proves the sale happened at the stated price. On-chain data is our primary source when it is fresh.
Off-Chain Sales
Sales from eBay, TCGPlayer, and PokemonPriceTracker Business. These represent the traditional paper market. Off-chain data fills gaps when on-chain sales are stale or missing, especially for vintage cards that rarely trade on-chain.
On-chain is primary. If it is fresh, we use it. If stale or missing, off-chain fills the gap. Both sources run through the same TV-WAP engine so they are directly comparable.
StalenessLink copied!
Every SilphCo Price carries a staleness score from 0 to 1:
- 1.0 — Very fresh. Sales within the adaptive window.
- 0.5 — Borderline. Sales exist but are aging.
- Below 0.5 — Stale. The UI shows "Estimated" to warn you the underlying data is old.
Staleness is the weighted average age of sales relative to the adaptive half-life. A 14-day-window card with its last sale 10 days ago is fresher than a 90-day-window card with its last sale 60 days ago.
MomentumLink copied!
When a card shows a statistically significant trend, SilphCo attaches a momentum signal.
We reconstruct weekly TV-WAP snapshots going back twice the adaptive half-life and fit a trend line. If the slope is strong enough to distinguish from noise, we label it Up or Down. If not, we label it Flat with no directional signal.
The forecast horizon matches liquidity: fast-trading cards get a 7-day forecast, sparse cards up to 45 days. Confidence bands widen with less data — wide at 4 snapshots (reflecting genuine uncertainty), narrowing as more history accumulates.
Technical SummaryLink copied!
For developers and data scientists who want the exact formulas:
- TV-WAP uses exponential decay weights
w = exp(-ln(2)/H * age)where H is the adaptive half-life in days. - Outlier rejection uses modified Z-score with median absolute deviation (MAD), threshold = 3.5.
- Grade premiums are computed from 90-day card-level co-occurrence, falling back to set-level medians and then global defaults.
- Cross-grader premiums are era-aware (pre-2010, 2010-2020, 2021-plus) with same-era pairs weighted 2x.
- Momentum uses decay-weighted least squares (WLS) on reconstructed weekly TV-WAP snapshots. Significance gate: |t-statistic| >= 1.5.
- Prediction bands use the t-distribution with n-2 degrees of freedom, converging to +/- 1.96 sigma as data grows.