About cedhstats
cedhstats tracks competitive EDH tournament results from Topdeck.gg. All statistics are computed from publicly available tournament data. This page explains every metric we use so you can verify and understand the numbers.
Unknown Commander Data
83,876 entries (38.9% of all entries) have no commander data — the decklist was not submitted or the tournament organizer did not record it. These entries are labeled "Unknown Commander" internally and are excluded from all commander rankings, search, and meta statistics. However, the tournament results themselves (standings, W-L-D, player ratings) are fully preserved — only the commander association is missing.
Points Per Game (PPG)
PPG measures how well a player performs per game played. It replaces simple win rate because cEDH pods have 4 players, making wins rare and draws meaningful.
- • 5 points for a win (you beat 3 other players)
- • 1 point for a draw (no one wins)
- • 0 points for a loss
- • Scale: 0.00 – 5.00
- • Drawless random value: 1.25 (25% chance to win × 5 = 1.25)
- • Current neutral baseline: 1.194, adjusted down by the observed draw rate
- • Values above the relevant neutral baseline are highlighted in green
PPG is computed from actual game records (W-L-D), not from Topdeck's averaged win rate field.
Player Rating (Modified Golf-Style Ranking)
The rating system is inspired by the Official World Golf Ranking. Tournament points are determined by the strength of the field — beating strong players at a large event earns more points than the same result at a weaker one.
Step 1: Base PPG
Every player gets an all-time PPG computed from their full career record.
Step 2: Field Strength
Each tournament's field rating is the average base PPG of all its participants. A tournament full of top players has a higher field rating.
Step 3: Max Points
The maximum ranking points available at a tournament depend on both field strength and size:
- • (field_rating / avg_field)0.7 — field strength with diminishing returns. A field 60% stronger than average gives ~40% more points, not 60%. This prevents field rating from dominating cross-tournament comparisons (see rationale below)
- • log₂(player_count)1.1 — larger tournaments are worth more, but with heavy diminishing returns. This keeps field strength as the primary differentiator between tournaments
Step 4: Entry Points
Your points at a tournament are based on your percentile finish, with a quadratic curve that rewards top finishes and heavily penalizes poor ones:
entry_points = max_points × percentile²
1st place gets 100% of max points, but the quadratic curve means 50th percentile only earns 25%, and 20th percentile earns just 4%. This ensures mediocre finishes at large events don't inflate rankings. Players must complete at least 3 games to earn any ranking points — this prevents gaming via registering, receiving a bye, and dropping.
Step 5: Top-Cut Bonus
Players who make the top cut earn additional points from a mini-tournament scored using the top-cut field strength — the average PPG of just the players who made the cut:
topcut_max = (topcut_field_rating / avg_field)0.7 × log₂(top_cut_size)1.1 × 100
topcut_percentile = 1 - (standing - 1) / top_cut_size
entry_points += topcut_max × topcut_percentile²
- • The top cut naturally has a higher field rating since only the strongest swiss performers survive
- • Winning a deep top cut (16 players) at a premier event earns far more bonus than a shallow cut (4 players) at a weekly
- • This specifically rewards beating strong opponents in elimination rounds
Step 6: Player Score
- • Only the 10 best tournament results count
- • Only recent tournaments (last 52 weeks) are eligible
- • This rewards consistency: you need strong finishes across multiple recent events
- • Each player's profile shows exactly which 10 tournaments make up their score
Step 7: Bootstrap Refinement
The system runs 3 iterations. After each pass, player strengths are updated by blending their base PPG with their normalized ranking score. This means field ratings in later iterations better reflect actual player strength rather than just raw PPG.
Tournament Field Strength
Displayed on tournament pages, this measures how competitive the field was:
- • Field Strength — average PPG of all participants (after bootstrap refinement). Higher means a tougher field.
- • Max Points — the maximum ranking points the winner could earn. Combines field strength with tournament size.
You can sort the tournament list by "Field Strength" to find the most competitive events.
Why Diminishing Returns on Field Strength?
Without dampening, field strength dominates cross-tournament comparisons. For example, a player going 3-4 at a 158-player event with a strong field could earn more points than a 6-0-1 tournament winner at a 118-player event — purely because the first event's field rating was higher.
The power transform (field_rating / avg_field)α with α = 0.7 applies diminishing returns: a field that is 60% above average grants ~40% more points instead of 60%. This ensures that how well you played matters more than where you played, while still rewarding attendance at stronger events.
Why 0.7?
The form (power transform / diminishing returns) is a standard technique from economics and sports analytics — the raw field rating measures quality linearly, but the competitive advantage doesn't scale linearly.
The exponent was chosen by analyzing cross-tournament inversions — cases where a strong performer (PPG ≥ 3.0, top 25% standing) at one event earns fewer points than a weak performer (PPG < 2.5) at a similarly-sized event, purely because of field rating differences. We sweep α from 1.0 to 0.4 and measure:
- • At α = 1.0 (no dampening): ~6% of cross-tournament pairs are inverted
- • At α = 0.7: inversions drop to ~4.6%, fixing 55% of the fixable inversions while preserving 66% of the field strength signal
- • At α = 0.4: ~3.5% of inversions remain — these are irreducible, caused by size and standing differences rather than field rating
α = 0.7 sits in the middle of the useful range: it meaningfully reduces distortions without washing out the real signal that stronger fields are genuinely harder. This analysis can be re-run with field-alpha as the dataset grows.
Top Cut Conversion
Shown on player profiles, this counts how many times a player made the top cut at a tournament. Each tournament defines its own top cut (e.g., top 4, top 10, top 16), so we use that directly rather than a fixed threshold.
conversion_rate = top_cut_count / eligible_tournaments × 100%
- • Only tournaments that define a top cut are counted (some don't)
- • The conversion percentage uses eligible tournaments as the denominator — not total tournaments attended
- • Common top cut values: top 4 (~58% of tournaments), top 10 (~24%), top 16 (~15%)
Swiss WR vs Top Cut WR
Pod win rates computed separately for each phase of the tournament, using actual pod-level data:
- • Swiss WR — win rate in swiss-round pods (rounds labeled "1", "2", "3", etc.)
- • Top Cut WR — win rate in elimination-round pods (rounds labeled "Top 4", "Semifinals", "Finals", etc.)
In a 4-player pod, random chance is 25%. These stats reveal whether a player performs differently against the general field vs against other top players in elimination rounds. Only pods with a known winner are counted.
Floor, Veterans & Ceiling PPG
These metrics help answer: "How well can I expect to do with this deck?" by separating true beginners from experienced pilots.
Experience (XP)
Experience is not a count of games or tournaments. It is the cumulative sum of player_count across all tournament entries — measuring total competitive exposure. Playing one 64-player event gives 64 XP, while a 16-player local gives 16 XP.
- • Total XP — sum of player_count across all prior entries (any deck)
- • Commander XP — sum of player_count across prior entries with the same commander
XP eligibility is determined from all-time data, regardless of any time filter. When filtering by period, only entries within the selected window are counted — but whether a player qualifies as beginner or expert is based on their all-time XP at the time of each entry.
Floor PPG
The Bayesian-smoothed average PPG of true beginners: entries where the player's prior total XP (all decks, all tournaments) is ≤128 — roughly two 64-player events. This captures players still learning the format.
Veterans PPG
The Bayesian-smoothed average PPG of experienced pilots: entries where the player has at least 320 total XP (about five 64-player events) and at least 128 commander XP with this specific commander. Only entries after crossing both thresholds count — early games don't pollute the veterans estimate.
Why PPG Stays On The Raw Scale
Floor and veterans use the same 0–5 PPG scale as match records, so the values remain easy to compare against the neutral baseline, currently 1.194 for the 6-month field. Field strength still matters elsewhere, especially player ratings, entry points, and event strength. These buckets are meant to isolate pilot experience with the commander; uncertainty is handled through the Bayesian interval and 75-entry rank threshold.
Bayesian Credible Intervals
Rather than showing raw averages, floor and ceiling values include 95% Bayesian credible intervals. We use a Normal-Normal conjugate prior:
posterior mean = (n × x̄/s² + μ₀/σ₀²) / (n/s² + 1/σ₀²)
95% CI = posterior mean ± 1.96 × √(posterior variance)
With few observations, the interval is wide and pulls toward the drawless 1.25 prior. With many observations, the interval narrows around the sample mean. Commanders are ranked by the lower bound of the veterans CI — rewarding decks we're confident are strong, not just noisy high averages.
Ranking & Approximate Ranks
Official floor/veterans ranks require 75+ entries in the experience bucket. Decks are ranked by CI lower bound, which rewards both strong performance and statistical confidence.
Decks with fewer than 75 entries show an approximate rank (~#) instead — this compares their PPG point estimate against the PPG values of officially ranked decks. Unlike the official rank (which uses CI lower bound), the approximate rank uses the raw PPG because with few entries the CI is too wide to be informative. It answers: "if this deck's PPG held up with more data, where would it place?"
On the commander list, you can sort by Floor (best for beginners), Veterans (potential with experience), or Ceiling (what the deck's best pilots achieve). Values are colored green if above the global median or red if below.
Ceiling PPG
Ceiling PPG measures the performance of a deck's absolute best pilots — dedicated players who go beyond the veterans tier. While veterans reflects what experienced players can achieve with practice, the ceiling shows what's possible when a player truly dedicates themselves to a deck. The computation:
- Take the top 10 pilots by ranking points for this deck, requiring 128+ commander XP (cumulative tournament sizes) and 3+ tournaments with the commander. A pilot's ranking points with a commander are their best 10 entry results with that specific commander — any player who has played it qualifies, not just those who main it.
- Keep only pilots whose smoothed PPG exceeds the veterans PPG
- Average the top 5 by PPG — these players are the deck's ceiling pilots, and their average is the ceiling
If fewer than 5 pilots qualify, the value is shown as approximate (~). Using the smoothed top-10 PPG (rather than raw per-entry PPG) prevents single outlier runs (like a lucky 5-0-0) from inflating the ceiling. Ceiling pilots earn a ⭐ badge on their player profile.
The ceiling gap (ceiling PPG minus veterans PPG) shows how much more the best pilots extract from a deck compared to merely experienced players. A large gap means the deck rewards deep dedication beyond just practice.
Dashboard Stats
The Stats page features 26 precomputed statistics across 7 categories. Each stat card shows the top 3 — click any card to see the full top 10 ranking and methodology. All values are recomputed during each ranking cycle.
Only decks with at least 0.2% meta share over their respective period are eligible for all deck-related stats.
Hot & Trending
- • Deck of the Month (30d) — highest points per capita:
SUM(entry_points) / COUNT(DISTINCT pilot) - • Rising Star (30d vs 90d) — biggest points per capita increase from the 90-day baseline to the last 30 days
- • Breakout Deck (30d) — highest entry surge vs 90-day baseline, measured as a growth multiplier (e.g. 3.0x = triple the usual monthly entries)
- • Falling Giant (30d vs 90d) — largest points per capita drop among the top 20 most popular decks
Deck DNA
- • Most Beginner-Friendly (3mo) — highest floor PPG among decks with 75+ beginner entries (players with ≤128 total XP)
- • Biggest Skill Gap (6mo) — largest difference between veterans and floor PPG
- • Hardest to Master (6mo) — biggest gap between ceiling PPG and veterans PPG. High gap = dedicated mastery takes the deck to another level beyond just being experienced
- • Glass Cannon (3mo) — highest PPG standard deviation. Decks that produce spectacular highs and crushing lows.
Meta Edge
- • Sleeper Pick (6mo) — decks in the bottom half by popularity whose Bayesian-adjusted PPG is above the median. Adjusted PPG shrinks raw PPG toward the drawless 1.25 prior proportionally to sample size (K=20), so a deck needs sustained results to rank here.
- • Giant Killer (6mo) — win rate in swiss pods where at least one of the 10 most popular commanders is at the table. Ranked by Bayesian CI lower bound (Beta(1,3) prior, 200+ pods minimum). These decks feast on the meta favorites.
- • Serious Pick (3mo) — most overrepresented at large events (64+) vs smaller ones (<64). What players reach for when the stakes are higher.
- • Meta Trap (6mo) — bottom 10 performers among the 30 most popular decks, ranked by adjusted PPG (shrunk toward the drawless 1.25 prior for small samples). Sorted by popularity — the biggest traps first.
Battle Stats
Swiss/top cut win rates plus pod-level dynamics — how a deck's presence at the table affects everyone else's win rate.
- • Swiss Destroyer (3mo) — highest swiss win rate by Bayesian CI lower bound (Beta-Binomial, Beta(1,3) prior)
- • Top Cut Victim (3mo) — biggest win rate drop from swiss to top cut. Decks that make the cut but can't close.
- • Pod Shaper (6mo) — decks that reshape the pod asymmetrically. When present, some opponents' win rates spike while others drop. Ranked by spread (stddev) of opponent WR deviations — high spread means this deck creates clear winners and losers at the table.
- • The Boss (6mo) — decks that push every opponent below baseline equally. Low spread + negative average edge = the table bows uniformly.
Pod dynamics stats (Pod Shaper, The Boss) use a minimum of 30 pairwise observations per opponent and 100 total pods per deck. Win rates use Bayesian estimation with a Beta(1,3) prior centered on 25% (random 4-player pod expectation).
Seat Dynamics
How turn order affects performance, using pod-level seat data from Topdeck. All stats use Wilson CI lower bound for ranking so small samples don't dominate.
- • Pod Racer (6mo) — deck with the biggest PPG boost from seat 1 vs its own average across all seats
- • Comeback Kid (6mo) — deck with the best seat 4 PPG (global average is ~0.95)
- • Unbothered (6mo) — smallest PPG gap between best and worst seat
- • Fourth Seat Finest (1y) — player with the best seat 4 win rate, ranked by Wilson CI lower bound (minimum 10 pods)
Draw Dynamics
How often games end in draws, and how that changes the neutral PPG baseline. A deck with a higher draw rate has a lower neutral expectation than 1.25 PPG because drawn pods give out 4 total points instead of 5.
- • Draw Magnet (6mo): highest sample-adjusted draw rate among established decks
- • Closer (6mo): lowest sample-adjusted draw rate among established decks
- • Top-Table Grinder (6mo): biggest positive draw-rate gap for current top-100 players compared with the rest of the field
- • Swiss Pressure (6mo): Swiss quarter with the biggest draw-rate lift over the overall Swiss draw rate. Top cut is excluded, and events are normalized into Q1-Q4 by their Swiss round count.
Deck draw-rate awards use W-L-D records from 16+ player tournaments and shrink rates toward the global 6-month draw rate. Swiss Pressure uses completed non-bracket pods from the same 16+ player scope. Neutral PPG uses 1.25 - 0.25 × draw rate; the current 6-month neutral baseline is 1.194.
Player Spotlight
- • OTP GOAT (6mo) — highest player rating among those who play ≥80% of their tournaments with the same deck
- • Jack of All Trades (6mo) — highest player rating among those where no single deck exceeds 20% of their entries
- • Iron Player (3mo) — most total games played, measured as
SUM(player_count)across entries, so large events contribute more - • Unkillable Demon (3mo) — players who went undefeated in swiss (0 losses, 3+ rounds), ranked by ranking points earned at that tournament
Strongest Scenes
- • Most Diverse Meta (6mo) — region with the broadest commander spread, measured by inverse Simpson's index (effective number of equally-played commanders). Requires 100+ entries.
- • Strongest City / Region / Country (3mo) — highest average field strength across tournaments in the area
Bayesian Methods
Several stats use Bayesian credible intervals rather than raw averages to handle varying sample sizes:
- • Swiss Destroyer — Beta-Binomial model with Beta(1,3) prior (prior mean = 0.25, matching random 4-player pod win rate). Ranked by CI lower bound to ensure statistical significance.
- • Sleeper Pick — Bayesian shrinkage:
adj = (n × ppg + 20 × 1.25) / (n + 20). With few entries, the adjusted PPG is pulled toward the drawless 1.25 prior; with many entries it converges to the raw PPG. This prevents decks with one lucky tournament from topping the list.
Commander Card Stats
Commander card pages show what actually appears in parsed tournament decklists for a specific commander. These are deck construction stats, not generic EDH recommendations: a card can be important because it is nearly universal, because it marks a specific build, or because it is unusual for the wider field.
Dataset
- • The window is 6 months of decklists from eligible 16+ player events, implemented as the current calendar month plus the previous 5 calendar months.
- • A commander needs at least 16 parsed decklists in that window before card insights are built.
- • Commander cards are excluded from the list. Partner commanders are not treated as maindeck inclusions.
- • Cards are grouped by Scryfall oracle identity, so alternate print names, Universes Beyond names, and reprints collapse into one canonical card.
- • Each card counts once per decklist. EDH is singleton, so the question is whether a list plays the card, not how many copies it plays.
- • The default table shows cards at 10%+ inclusion. Search disables that cutoff so you can check niche cards directly.
- • Lands are hidden by default using Scryfall type lines, since mana bases can crowd out more strategic card signals. Use Show lands on a commander card page to include them.
Table Fields
- • Inclusion: parsed decklists for this commander containing the card divided by all parsed decklists for that commander.
- • Field inclusion: the same card's inclusion in the matched 6-month field. The matcher uses the same color identity when there is enough data, then falls back to the wider field.
- • Lift: commander inclusion divided by matched field inclusion. A 4.0x lift means the card is four times as common here as in comparable tournament lists.
- • PPG delta: average entry PPG for this commander when the card is present minus average entry PPG for the same commander when it is absent. This is a correlation, not proof that the card caused the result.
- • 90% range: a Bayesian uncertainty range around the observed PPG association. A Clear 90% signal means the whole range is above or below zero; it is still exploratory and observational, not causal.
- • PPG delta and 90% ranges are only shown when the smaller side of the comparison has at least 16 parsed decklists and at least 2% of that commander's sample. This keeps locked-core cards from showing misleading contrasts against a tiny group of lists without the card.
- • Growth: current 6-month inclusion compared with the previous 6 calendar months, used as one signal for cards that are becoming more important.
Card Roles
- • Locked core: cards in at least 95% of parsed lists.
- • Core shell: cards above the commander-specific high-inclusion cliff. The cutoff is detected from that deck's own inclusion curve, with a minimum around 90%, instead of using one universal threshold.
- • Signature: cards that explain this commander more than raw popularity does. The score favors mid-to-high inclusion, lift over the field, recent growth, positive correlated PPG delta, and enough sample size to trust the signal.
- • 🌶 Spice: minority, below-shell cards with 3% to 50% inclusion, 1.15x lift over the matched field, and either meaningful recent growth or a sample-gated clear 90% PPG signal. A card must also sit below that commander's own shell-edge cutoff; an 80% inclusion card is part of the deck's shell, not spice. The PPG signal can be positive or negative, so spice can mean a hot lead or a warning sign.
- • Shell edge / flex / deep cut: remaining cards, from common role players down to low-inclusion cards that usually need search to inspect.
Card Performance Intervals
- • PPG delta compares parsed lists that played a card with parsed lists for the same commander that did not play it.
- • The 90% interval uses the same Bayesian PPG interval model as the rest of the site, then compares the with-card and without-card estimates. Cards use 90% because this page is meant to surface promising deckbuilding leads, not define ranking-grade claims.
- • We do not use a fixed PPG threshold for spice. We checked the 6-month card-stat distribution and a within-commander randomization that preserves each card's sample size; the old 0.18 PPG cutoff was common enough under the null that it was not reliable as a discovery rule. The current role uses the uncertainty range instead.
- • We skip the delta entirely when either side has fewer than 10 decklists; tiny contrast groups produce dramatic but misleading numbers.
- • Wide intervals usually mean the card has too little sample, too much result variance, or both. Treat the number as an observational lead, not a causal claim.
Caveats
- • Card performance is observational. Strong pilots, local metagames, event size, card availability, and list quality can all affect PPG delta.
- • Missing or unparseable decklists are excluded from card stats, even though their tournament results still count elsewhere on the site.
- • Scryfall normalization makes most renamed and reprinted cards behave correctly, but brand-new cards may need the daily card enrichment job before land filtering and previews are complete.
- • Card stats are precomputed from monthly rollups. Daily refreshes update the current month; during the first week of a month, the previous month is refreshed too so late sync data is picked up.
Commander Combo Validation
Some tournaments use special house rules that allow any two commanders to be partnered (e.g., "partner with anyone" events). These create illegal pairings like Etali / Kinnan that would never appear in standard cEDH.
Since the Topdeck API doesn't distinguish custom rulesets from standard cEDH, we validate partner combos using card data from Scryfall.
How it works
- • We fetch all commanders with a pairing ability from Scryfall using the community-maintained
oracletag:pair-commandertag - • This covers all pairing mechanics: Partner, Choose a Background, Friends forever, Doctor's companion, Character Select, and any future mechanics added to the tag
- • A partner combo is marked invalid if either commander is missing from that list
- • Invalid combos are excluded from commander rankings, search results, and player top deck stats
- • Individual tournament results still show what was actually registered — nothing is deleted
Data Source & Limitations
- • All data comes from the Topdeck.gg API v2
- • Only tournaments with 16+ players are included by default
- • ~12% of tournaments are missing location data
- • Some decklists may be null or incomplete
- • 83,876 entries (38.9%) have no commander data and are labeled "Unknown Commander". These are excluded from commander rankings and meta stats, but their tournament results (standings, W-L-D, player ratings) remain fully counted
- • Region names are normalized where possible (e.g., "CA" → "California") but some international regions may still have inconsistencies
- • Rankings are recomputed after each data sync
- • Commander card data sourced from Scryfall