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. 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:
Theoretical distribution:
Points Players Cumulative
Your chances:
Points Chance Cumulative
The most likely match point distributions among the top cut:
Intentionally drawn matches:
Technical details:
- This simulates only the Swiss portion of events, not anything that happens after the cut.
- Players are assumed to be evenly matched, each having an equal chance of winning against any other player.
- The "theoretical" readout assumes that if on average each player has a 1/X chance of winning, 1/X players in each point bracket do so.
This is similar to what the classic "swiss triangle" tools do, except it's more accurate because it doesn't assume that pairdowns always win. This results in fractional players, which can be interpreted as the averages you'd get across many tournaments.For example, if a player with 3 points is paired against a player with 0 points, the result of this match is 0.5 players with 6 points, 1 player with 3 points, and 0.5 players with 0 points. It doesn't account for tiebreakers, drops, random byes, differing pod sizes in multiplayer, or players being unable to play each other twice. It also doesn't restrict itself to only tournaments that include the player details you enter, so those won't affect its final readout like they do for the simulation results. - 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%.Notably Wizards Eventlink doesn't seem to respect this floor, and instead uses a floor of 1/3. 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/byes.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) 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. - Calculating exactly when it is correct for a player to ID is infeasible, so this calculator uses some simplified assumptions and heuristics. If you notice any situations in which players seem to be making irrational drawing decisions, please let me know so I can fix it. A non-exhaustive list of assumptions it makes: 1. Any player who ID's in one round will always want to ID in the next round. 2. If the cut is top X and a player has >= X other players whom they are below or tied with on the standings, they won't want to draw. 3. IDs are calculated in standings order, with the top match deciding whether to ID on the assumption that all lower matches will play, then the next match down doing the same with the knowledge that the match above them drew, etc. 4. There exists a single point on the standings above which all players want to draw and below which no players want to draw. 5. A player wants to ID if doing so guarantees them the target cut, or if it increases their chance of making it by at least 35 percentage points.
e.g. if playing it out gives that player a 50% chance of making the cut, they'll only ID if it gives them at least 85% to make it. If playing gives them a 90% chance, they'll only ID if it gives them a 100% chance. 6. Players are only trying to increase their chance of making the top cut; they don't care about getting a higher position within the cut. 7. If the top cut type is "tied with standings", players will only consider drawing in the last 2 rounds. - Players are assumed to have an arbitrary 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.
- 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.
- For determining the three most likely match point distributions to display, it first decides on a number of top standings to focus on. The most common results are determined only by comparing that many top standings.
If it didn't limit the comparisons to the top of the standings, the results would be meaningless on large tournaments. There are so many different ways the finals standings could look that you could simulate the same large tournament thousands of times and get a slightly different final standings printout every time, making it impossible to pick one that's meaningfully the "most common". It makes more sense to just look at, say, the top 12, and pick the most common point distributions within all the different top 12s. Within this standings position, it looks only at match points, not tiebreakers. After the most common top standings have been picked, it looks at all tournaments that ended with matching standings, and repeats this process for the next place down on the standings in order to pick out the most common next place. If this is still not sufficient to narrow things down to a single tournament to display, it goes through each place individually again, taking tiebreakers into account this time. - Note that if you enter details of a specific player, this can affect the global match point distributions that the calculator shows you. For example if you tell the calculator that you have 1 match point after round 1, it will only simulate tournaments in which at least one player drew round 1, which will change the most probable final standings that it displays.
Comparison to other tools:
There are several other tools that people have made over the years to help with tournament math. A list of the ones I'm aware of along with their limitations:
- Brian Durkin's formula: Handy but can't account for events with extra rounds like GPs and RCs.
- Swiss Triangle: Aims to show you the raw numbers so you can do the calculation yourself. Helpful but requires the human to do most of the heavy lifting.
- Sixprizes: A full calculator that can do a custom cut and rounds, but no draws.
- Cards Realm: Same as Sixprizes.
- Galactic Treasures: A slight improvement on the above, 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 can't account for byes, and has a somewhat confusing interface.
This calculator is intended to combine their functionality into a single package, 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.