Tournament Simulator
A calculator for all of your tournament math needs. The defaults are set to match the typical rules for Magic: The Gathering events, but you can change the settings to use this for pretty much any Swiss-style tournament structure.
See the footnotes for more information about each setting, and the technical details at the bottom for implementation details. On complicated tournaments and/or when run on a mobile phone, it can take a little while to simulate enough tournaments to get reliable results, but it will always return an answer in at most 30 seconds. If you have any questions or suggestions for improvement, please get in touch.
Tournament details:
Player details:If you want to know a specific player's chances of making the cut, enter their info as of the last round to have ended.
Multiplayer settings:
Technical details:
- Points are calculated such that a draw includes all players in a multiplayer match, even those that previously lost the game.
- Players are assumed to have a mix of strategies for dropping; some drop once they're slightly behind, some drop only when it looks hopeless, and some never drop at all.
- Players are assumed to be evenly matched, each having an equal chance of winning against any other player.
- If the intentional draw checkbox is checked, all players will try to ID whenever doing so would increase their chance of making the cut. (Calculating this exactly is challenging due to the infinite regress inherent in most game theory problems, so this calculator uses an approximation. If you notice any situations in which players seem to be making irrational drawing decisions, please let me know so I can fix it.)
- For determining the most likely match point distributions, tiebreakers and all players below the target standing * 1.5 are ignored for the calculation of whether two standings pages are "the same". e.g. if you're targeting top 8, then two potential standings pages that only differ in 13th place will be considered the same, as will two pages where first place differs in their OMW percentage but not their match points.
- Note that the player details you enter do affect the most likely global match point distributions. e.g. if you enter player details of round 1 and 1 match point, then you're only simulating tournaments in which at least one player drew round 1, which will change the most likely final standings.
- This calculator simulates only the Swiss portion of events, not any single elimination rounds after a cut.
- The calculator assumes there are no weird edge cases like extra players losing round 1 due to joining the tournament late, an otherwise-invalid pairing being used because a player misreported a result that was later corrected, a double match loss penalty being issued by a judge, a double match win issued as a fix for judge error, etc.
- The top cut field doesn't account for mixed incentive structures, such as where a player both wants to top 8 but also assigns nonzero value to being in a higher place than 8th when the cut is made.
- The pairing algorithm for this simulation attempts to match the publicly-known details of popular Magic tournament software such as Eventlink and Command Tower.
These programs are all closed-source, so their exact algorithms are a secret. This means that it, for example, correctly handles power pairings and the 0.33 minimum on MW%.This minimum is generalized to multiplayer as floor((1 / (number of players in a match + 1)) * 100) / 100. However in order to speed up calculation, this simulator makes a few simplifications that are unlikely to significantly impact the final results. These are: 1) If players need to get byes due to a non-divisible number of players in the event, it grants these byes to random players in the lowest point bracket rather than prioritizing players with the fewest previous byes. 2) It does not track the OGW% and GW% tiebreakers. 3) It allows players to be paired against a player they've already played before if they're among the lowest ranked players. 4) It does not fully minimize the number of pairdowns.For example, if the only players in a certain point bracket are players A, B, C, and D, and player B has already played both A and D, there is a legal pairing among themselves: A plays D and B plays C. But this simulator isn't guaranteed to find that pairing, and it may instead pair A vs. C and give pairdowns 5) In 4-player-per-match tournaments, it does not follow the pairings guidelines from the Topdeck.gg MTR addendum and is willing to create multiple 3-player matches if needed to avoid byes. 6) If the tournament awards byes in multiple rounds, the simulation gives those byes to random players within the top bracket, not necessarily players who had a bye in the previous round. 7) In multiplayer it ignores the Topdeck directive to add fake opponents to the tiebreakers of a player who has a bye.Or byes if this is the lowest bracket. to both B and D.
Comparison to other calculators:
There are several other calculators to help with tournament math, but are all rather limited in what they can do. I list them here for comparison and verification purposes.
- Cards Realm: Can do a custom cut and rounds, but no draws.
- Sixprizes: Same as Cards Realm, can do a custom cut and rounds, but no draws.
- Galactic Treasures: Slight improvement, taking into account unintentional draws, but not intentional ones.
- Limited Information: Does factor in IDs, but relies on unrealistic assumptions like "any pair downs always wins" and "nobody ever draws unintentionally".
- LimitlessTCG: By far the best out of these calculators, but still can't account for byes, and has a somewhat confusing interface.
- Swiss Triangle: Aims to show you the raw numbers so you can do the calculation yourself. Helpful but requires the human to still do most of the heavy lifting.
- Brian Durkin's formula: Handy but can't account for events with extra rounds like GPs and RCs.
This calculator is intended to combine their functionality into a single package that's more flexible and accurate than all of the others, along with adding other useful features like custom tiebreakers and multiplayer math. If you notice anything that it can't do but you wish it could, please let me know and I'll see about adding that functionality.