EndpointsTournaments

Run tournament simulation

POST/v2/divisions/{division_id}/tournament-sim

Simulate tournament placements from a division's recorded pairwise results.

Authorization

BearerAuth
AuthorizationBearer <token>

Bearer token issued by Softmax

In: header

Path Parameters

division_id*Division Id

Division whose recorded results should be simulated.

Match^div_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$

Request Body

application/json

structure*Structure

Tournament structure to simulate.

Value in

  • "single_elim"
  • "double_elim"
  • "round_robin"
  • "elimination_rounds"
  • "evolutionary"
rounds_window?Rounds Window

Recent completed rounds used when no explicit time window is set.

Range1 <= value <= 200
Default20
window_start?|

Earliest round creation time to include. Overrides rounds_window and retains at most 200 rounds.

window_end?|

Latest round creation time to include.

coworld_version_min?|

Oldest Coworld version to include; latest selects the newest version and null removes the bound.

Default"latest"
coworld_version_max?|

Newest Coworld version to include; latest selects the newest version in the window.

n_sims?N Sims

Monte Carlo tournament runs to sample.

Range1 <= value <= 2000
Default1000
seed?Seed

Random seed for deterministic simulation results.

Default0
best_of?Best Of

Odd number of games in each matchup series.

Range1 <= value <= 15
Default1
seeding?Seeding

How entrants are assigned bracket seeds.

Default"record"

Value in

  • "record"
  • "random"
mutual_rule?Mutual Rule

How recorded mutual-loss outcomes are resolved.

Default"loss_both"

Value in

  • "coinflip"
  • "redraw"
  • "loss_both"
smoothing?Smoothing

Additive smoothing applied to pairwise win rates.

Range0 <= value <= 10
Default1
rr_passes?Rr Passes

Round-robin passes over every entrant pairing.

Range1 <= value <= 20
Default1
eliminate_per_round?Eliminate Per Round

Lowest-ranked entrants removed after each elimination round.

Range1 <= value <= 8
Default1
grand_final_reset?Grand Final Reset

Play a reset final when the losers-bracket winner wins the first grand final.

Defaulttrue
pop_size?Pop Size

Population size for evolutionary tournaments.

Range2 <= value <= 500
Default100
generations?Generations

Generations run for evolutionary tournaments.

Range1 <= value <= 500
Default200
roster_mode?Roster Mode

Roster selection rule when policy_version_ids is omitted.

Default"window"

Value in

  • "window"
  • "champions"
  • "top_n"
  • "top_percent"
roster_n?Roster N

Entrants selected by top_n roster mode.

Range2 <= value <= 32
Default8
roster_percent?Roster Percent

Percent of entrants selected by top_percent roster mode.

Range0 < value <= 100
Default50
roster_only?Roster Only

Return the roster and win model without running simulations.

Defaultfalse
sufficiency?Sufficiency

Estimate whether the recorded pairwise data is sufficient for stable placements.

Defaulttrue
sufficiency_draws?Sufficiency Draws

Posterior win-model samples for sufficiency analysis.

Range1 <= value <= 100
Default24
sufficiency_inner_sims?Sufficiency Inner Sims

Tournament runs evaluated for each sufficiency sample.

Range10 <= value <= 500
Default150
policy_version_ids?array<string>|

Explicit policy-version roster; takes precedence over roster_mode. Champions without recorded games use model priors.

exclude_policy_version_ids?array<string>

Policy versions removed after roster selection.

policy_cutoff?|

Exclude later submissions and resolve each player's champion as of this time.

curl -X POST "https://softmax.com/api/observatory/v2/divisions/string/tournament-sim" \  -H "Content-Type: application/json" \  -d '{    "structure": "single_elim"  }'
{  "division_id": "string",  "league_id": "string",  "matrix": {},  "roster": [    {}  ],  "note_prefix": "",  "missing_data_pairs": [],  "data_requests": [],  "access": {},  "coworld_versions": [],  "win_model": {},  "config": {},  "showcase": {},  "monte_carlo": {},  "sufficiency": {}}