VaultStore
0% FEES · FOREVER
◈Marketplace◉Dashboard⌘Catalog✶Illustrator Museum▥Portfolio⇄Trade Builder⬡My Store▤Orders & Activity◌Offers!Alerts◔Watchlist◫Buylists△Disputes◎Trust⬢Stores✉Messages⇅Movers⬣Advanced★Plans
CURRENT PLANGuest
Sign in to start free.Guest mode
GU
Guest
GUEST · Sign in to start free
Pricing methodology
HOW WE PRICE A CARD
⌘K
Sign in
MarketplaceDashboardCatalogIllustrator MuseumPortfolioTrade BuilderMy StoreOrders & ActivityOffersAlertsWatchlistBuylistsDisputesTrustStoresMessagesMoversAdvancedPlans
The number you see, fully sourced

Every fair value carries its receipt.

The price at the top of every card page is built from real sales over a real time window with a real confidence band. Hover the comp footer on any card and you’ll see the same numbers we used to compute it: how many sales, how recent, what window, what source. Below is every formula and every default we apply along the way — auditable, not marketing.

The headline number

What “fair value” actually means
We compute fair value from two complementary signals — vendor consensus quotes over 60 days, and realized sales over 30 days. They measure different things, and we surface them on different surfaces deliberately. Both apply the same trimmed-median + 95% CI math so the number is robust to a single $0.01 typo or a $99,999 listing typo regardless of which path you read.
  • Card detail pagerenders the realized-sales signal — what cards actually changed hands for in the last 30 days. We anchor the on-page hero to this because realized sales are the most honest answer to “what’s it really worth?”
  • Public API and embed widget return the vendor-consensus signal — what the wider pricing market currently quotes over 60 days. External consumers ask for a stable, broad number; the longer window with vendor quotes is the right shape for that. The response carries window_days explicitly so consumers can never accidentally treat one window as another.
  • Confidence tier always derives from the realized-sales signal — we trust a price more when actual cards have changed hands recently than when vendor quotes have just sat on listings.
fair_value          = trimmed_median( weighted_comp_prices,
                                        trim_lower = 5%, trim_upper = 5% )
weighted_comp       = comp_price × source_weight × condition_factor
ci_lower / upper    = central 95% of the trimmed distribution
                      · n  < 30 → Student-t with df = n-1
                      · n ≥ 30 → normal-approx ± 1.96·σ/√n

card-page hero      window_days = 30, source: realized sales
                    (vaultstore_order / vaultstore_auction / vaultstore_sale,
                     plus pricing_events with metric='sold')

api + embed widget  window_days = 60, source: vendor consensus
                    (pricing_events with metric='market')

sample_size         comp count after trim
last_sale           most recent observation in the window

Sources & weights

Live snapshot · refreshes within 5 minutes of an accepted brain proposal
Each comp is multiplied by the weight of its source before going into the trimmed median. VaultStore-internal sales are always weight 1.0 — they are the source of record. External graph weights are tunable: when the brain detects a vendor source consistently drifting from cross-vendor consensus, it proposes a weight adjustment that the operator can accept from /admin/brain. Accepting writes back to app_runtime_config and this table reflects it on the next read.
VaultStore
Sales / auctions / trades inside the platform. Always weight 1.0 — this is the source of record.
1.000
VaultStore TCG graph
Aggregated trading-card-game vendor graph. Weight tunable by the brain.
1.000
VaultStore sports graph
Aggregated sports-card vendor graph. Weight tunable by the brain.
1.000
Self-reported
Self-reported by the lot owner. Falls back to seed reference if no sale signal exists.
1.000
Seed reference
Static reference price baked into the catalog. Used only when nothing better exists.
0.500

Confidence tiers

When we trust a number — and when we say so
Every fair value carries a confidence tier alongside it. The tier is a function of three things: comp volume in the last 30 days, how many distinct sources contributed those comps, and how recently the most recent sale landed. When the math says “insufficient” we render an honest empty state — never a fabricated number. The minimum sample size for a tier above “insufficient” is 5.
high          if volume_30d ≥ 5  AND sources ≥ 2 AND last_sale < 14d
medium        if volume_30d ≥ 2                  AND last_sale < 45d
low           if volume_30d ≥ 1   OR  (sources ≥ 2 AND last_sale < 90d)
insufficient  otherwise — fair value suppressed, "no fair value yet"

Anomaly threshold

Live · 10.0% from fair value
Single comps that fall more than 10.0%outside the trimmed window are still recorded but not allowed to drag the headline number. They surface in the recent-sales feed so a buyer or seller can see them; they don’t quietly redefine the market. This threshold is brain-tunable and reflects the current value as of this page load.

Temperature & velocity

Where the price is going, not just where it is
Fair value is a snapshot. Temperature and velocity describe motion. Neither replaces the other — they sit alongside the price so the reader can decide whether to act on it now.
  • stable — the trimmed median is within ± 5% of where it was 14 days ago. No badge.
  • heating_up — fair value moved up between 5% and 15% over 14 days. Yellow chevron badge.
  • on_fire — fair value moved up more than 15% over 14 days. Red flame badge.
  • cooling — fair value moved down more than 5% over 14 days. Blue snowflake badge.
  • velocity_per_week — average sold-comp count per week over the window. Surfaces in the price API. A high-velocity card with a tight CI is a liquid card; a low-velocity card with a wide CI is illiquid even if the median looks confident.

The drift watchdog

Daily · methodology integrity
Every 24 hours an internal brain loop compares the prices we publish against external pricing comparables on the same catalog cards over the last 30 days. When the headline number we publish averages more than 5% above or below external comparables across 50+ cards, the loop surfaces an action-tier insight to the methodology team. This is the watchdog behind the Pricing Authority claim — the number we publish at the top of every card page must match what those cards sell for elsewhere. When the watchdog is silent, the gap is below threshold; when it fires, we investigate before the next price refresh ships.

What we will never do

  • Fabricate a sale. Every comp ties back to an observation in pricing_events.
  • Render a number with no provenance. If we can’t cite at least one comp, the fair-value field is suppressed and we say so.
  • Stamp a number as “AI-generated” to evade scrutiny. The math is deterministic and runs on the server before any model touches the page.
  • Adjust a card’s fair value to favor a particular seller, including VaultStore. Listing prices on the marketplace are independent of the published fair value; you can list above or below it freely.
  • Quietly change a methodology constant without a brain proposal + operator accept + a row in brain_applied_changes. Every change is auditable and one-click revertable.

← Back to the marketplace