How CastHaven works
Methodology
Every statistic on CastHaven traces back to tournament rows in our database — real events, real decklists, real results. This page explains where that data comes from, how decks get their archetype labels, what the numbers mean, and what doesn’t exist yet.
Where the data comes from
MTGO tournament results — events, decklists, and standings — sync nightly from the community-maintained MTG_decklistcache project. Card data syncs nightly from Scryfall’s bulk files. The data sources page credits every source we use.
Coverage starts June 1, 2026. A backfill of roughly two years of earlier events is planned; until it lands, history is shallow and the site says so wherever it matters.
Decklists that fail validation — wrong card counts, malformed entries — are flagged and excluded from statistics, never silently dropped. When two sources report the same event, the platform of record wins and the duplicate is excluded from every statistic.
How decks are classified
A rules engine assigns each deck an archetype using the community-maintained MTGOFormatData definitions. When no rule matches, the deck is not forced into a bucket: it gets a color-identity label such as “Izzet (unclassified)” and goes to a human review queue. Metagame breakdowns show the share of decks that were classified, so the unclassified portion is visible rather than hidden. New archetype names are added by people — software never invents them.
Windows and sample sizes
Statistics default to a rolling 30-day window, and every number is shown with its window and sample size (n). Below the sample threshold — currently 20 results — a win rate renders as “Insufficient data (n=X)” instead of a percentage. A weak number is worse than no number.
Two more honesty rules follow from the data itself. Because coverage starts June 1, 2026, a “last 30 days” label can currently hold fewer days of events than it suggests — n tells you exactly how much data sits behind each figure. And matchup win rates are computed only from events that publish round-by-round pairings; league results never feed them.
Player rankings
Players are ranked by CastHaven Points: each qualifying finish earns points scaled by how well they placed and how large the event was, then weighted toward recent results so the board reflects current form, not a career total. Zero-point players are unranked, and the rankings overview also sums points across formats for a Top 8 overall. Identities are kept separate per source — a handle on one platform is never merged with the same handle on another.
Alongside points, players carry a Glicko-2 rating computed only from real round-by-round pairings — never league results. It shows with its deviation (±) and only after the format’s rated-match minimum (30 by default); below that a player reads “Provisional.” Ratings are results-based form, not a skill score, and rank movement is rolled weekly so the arrows read real change rather than daily noise.
The Power Index
The Power Index ranks each format’s archetypes by a Power Score: how well its pilots actually finish, adjusted for how much we’ve seen it. It’s built from the same finish-quality, event-size, and recency math as player points, but averaged per entry — so a deck rises by winning, not by being played a lot. Popularity is reported right beside it and never folded in.
Small samples are pulled toward the format’s average until enough results accumulate, so a two-event spike can’t top the board; the score converges on the deck’s real performance only as its sample grows. Below a minimum number of results an archetype stays provisional and shows no score at all. Scores band into tiers S through D.
Three signals stay separate on purpose: power (results only), popularity (share of the field and raw entries), and pilot strength (how highly ranked the people playing it are). Boards are computed over a 90-day headline window, a 30-day current-form window, and all-time. The same honesty rules apply throughout — leagues count toward popularity only, never power or win rates; duplicate events and invalid decklists are excluded; every win rate carries its sample size; and when a score leans on truncated MTGO listings, it’s flagged rather than presented as the whole picture.
Prices
Card prices are daily snapshots of Scryfall’s price data, always cited with the date we checked them — “checked Jun 10, 2026 · Scryfall”. If there’s no price we trust for a printing, we say that instead of guessing. And if a buy link ever earns us a commission, the disclosure sits next to the price, not buried in a footer.
What doesn’t exist yet
Being honest about the numbers includes being honest about the gaps. Not live yet:
- Articles. The editorial pipeline checks every factual claim against database rows before anything publishes — no data row, no claim. It’s in development; nothing is auto-published today.
- Paper events. Coverage today is MTGO only. Paper sources will be credited on the data sources page when they come online.
- Deep history. The two-year backfill is pending; data currently starts June 1, 2026.