# Major Pick'ems Simulator
Simulate tournament stage outcomes for Counter-Strike major tournaments, to assist decision making for pick'ems. The swiss system follows the seeding rules and format [documented by Valve](https://github.com/ValveSoftware/counter-strike/blob/main/major-supplemental-rulebook.md#seeding), and the tournament rounds are progressed with randomised match outcomes.
Each team's [regional standings](https://github.com/ValveSoftware/counter-strike_regional_standings) global ranking points are used to approximate a win probability for each head to head match up. This is by no means an exhaustive or accurate analysis but may give insight to some teams which have higher probability of facing weaker teams to get their 3 wins, or vice versa.
## Installation
Download the binary from the latest [release](https://github.com/ndunnett/major-pickems-sim/releases), or install from source using cargo with the nightly toolchain:
```shell
cargo +nightly install major-pickems-sim
```
## Common commands
### Run a basic simulation
```shell
pickems simulate --file data/2025_budapest_stage_3.toml
```
### Run the picks report
```shell
pickems simulate --file data/2025_budapest_stage_3.toml --report picks
```
### Assess a set of picks
```shell
pickems simulate --file data/2025_budapest_stage_3.toml --report assess \
--three-zero FURIA G2 \
--advancing MOUZ Falcons Vitality "The MongolZ" "Team Spirit" Liquid \
--zero-three Imperial "Passion UA"
```
### Update local data files from this repository
```shell
pickems data update --path data
```
### Create an input file with the data wizard
```shell
pickems data wizard --file data/custom_stage.toml
```
### Inspect an input file
```shell
pickems data inspect --file data/2025_budapest_stage_3.toml
```
## TOML input data format
Input files contain exactly 16 teams. Each team has an initial seed and rating.
```toml
["{string: team name}"]
seed = {integer: initial seed for tournament stage}
rating = {integer: current global ranking points}
```
## Latest Output: StarLadder Budapest Major 2025 - Stage 3
```shell
pickems simulate --file data/2025_budapest_stage_3.toml
```
```text
RESULTS FROM 1,000,000 TOURNAMENT SIMULATIONS
Most likely to 3-0:
1. FURIA 41.5%
2. Falcons 33.3%
3. Vitality 31.6%
4. MOUZ 20.2%
5. The MongolZ 19.6%
6. G2 11.8%
7. Team Spirit 10.0%
8. Liquid 7.3%
9. Natus Vincere 6.3%
10. paiN 4.5%
11. 3DMAX 4.2%
12. B8 3.4%
13. FaZe 3.0%
14. PARIVISION 1.9%
15. Passion UA 0.9%
16. Imperial 0.6%
Most likely to 3-1 or 3-2:
1. MOUZ 54.5%
2. Falcons 53.9%
3. Vitality 53.2%
4. The MongolZ 51.7%
5. FURIA 51.1%
6. Team Spirit 49.8%
7. G2 47.0%
8. Liquid 44.5%
9. Natus Vincere 44.5%
10. paiN 31.6%
11. 3DMAX 29.5%
12. B8 29.0%
13. FaZe 25.4%
14. PARIVISION 18.7%
15. Passion UA 9.2%
16. Imperial 6.5%
Most likely to 0-3:
1. Imperial 40.9%
2. Passion UA 36.5%
3. PARIVISION 24.0%
4. FaZe 18.5%
5. B8 16.4%
6. 3DMAX 15.4%
7. paiN 11.7%
8. Natus Vincere 9.4%
9. Liquid 8.8%
10. Team Spirit 5.3%
11. G2 4.6%
12. The MongolZ 2.6%
13. MOUZ 2.5%
14. Vitality 1.5%
15. Falcons 1.2%
16. FURIA 0.7%
Run time: 0.093 seconds
```
```shell
pickems simulate --file data/2025_budapest_stage_3.toml --report picks
```
```text
RESULTS FROM 1,000,000 TOURNAMENT SIMULATIONS
3-0 picks:
1. FURIA 41.6%
2. G2 11.8%
3-1 or 3-2 picks:
1. MOUZ 54.4%
2. Falcons 53.9%
3. Vitality 53.2%
4. The MongolZ 51.7%
5. Team Spirit 49.7%
6. Liquid 44.6%
0-3 picks:
1. Imperial 40.8%
2. Passion UA 36.5%
Simulated stars earned: 4.384 +/- 1.398
Expected success (>=5 stars): 46.7%
Run time: 0.197 seconds
```