iMatch Operator Quickstart

Run your first tournament end-to-end — the fast path. v1.0

This is the one-page version of running a tournament with iMatch: the happy path from an empty tournament to published results. Each step shows what you do in the iMatch Manager and the equivalent imgr command line. For the full reference — every format, edge case, and recovery move — see the iMatch Tournament Operator Manual. New to running events, or deciding which format to use? The Tournament Organizer's Quick Start Guide is a visual, format-by-format companion with worked examples and diagrams.

Before you start

The lifecycle, in order

A tournament moves through a fixed sequence. At every step the software is keeping you from an irreversible mistake under pressure — so the order matters.

  1. Create the tournament.

    Name it, pick the sport and venue, set the dates. Manager: Command Center → New Tournament.

    Using imgr
    imgr tournament create --name "Spring Open 2026" --venue "Main Hall" \
      --start-date 2026-04-15 --end-date 2026-04-17 --sport tt

    The tournament is just the container — the things players enter are its events.

  2. Add events & choose a format.

    Add each event (Men's Singles, Women's Doubles, U18…) and pin an event format — single-elim, round-robin, groups→knockout, Swiss, and more. The format is fixed by id + version, so the draw shape can't drift later.

    Using imgr
    imgr event create $TOURNAMENT_ID --name "Men's Singles Open" \
      --type singles --age-group "U18 Boys" \
      --format single_elim_standard --max-entries 32

    Format choices live in Ch. 12 (Event formats); team rubber sequences in Ch. 13.

  3. Open registration & take entries.

    Publish the tournament (draft → published) so registration can open, then register players one at a time. Accountless players are fine — they're added as shadow persons by phone or email and auto-claim later. (CSV roster bulk-import is coming soon.)

    Using imgr
    imgr tournament publish $TOURNAMENT_ID            # draft → published (required before registration)
    imgr tournament start-registration $TOURNAMENT_ID
    imgr entry register $EVENT_ID --player "Maria Lopez"
  4. Run the check-in desk.

    On the day, open check-in and mark who's actually present. No-shows are withdrawn so they don't end up in the draw.

    Using imgr
    imgr tournament close-registration $TOURNAMENT_ID
    imgr tournament start-checkin $TOURNAMENT_ID
    imgr entry check-in $ENTRY_ID
    imgr entry withdraw $ENTRY_ID --reason "no-show"

    Only checked-in entrants are seeded — see Ch. 7.

  5. Seed & generate the draw.

    Seed the field (rating is the seeding truth — highest rating becomes seed 1), then generate and publish the draw. Byes are assigned automatically to top seeds.

    Using imgr
    imgr seed generate $EVENT_ID --method rating
    imgr event generate-draw $EVENT_ID
    imgr event publish-draw $TOURNAMENT_ID $EVENT_ID

    Seeding then placement is two operations, not one — Ch. 8.

  6. Schedule the tables.

    Define your session block(s), then auto-schedule. The PRIORITY algorithm places matches across your tables within the session window under six hard constraints (a player is never in two matches at once; a table hosts one match at a time; minimum rest; team rubbers back-to-back; …). It runs one block per call.

    Using imgr
    imgr schedule block create --tournament $TOURNAMENT_ID --event $EVENT_ID \
      --session $SESSION_ID --start-time 2026-04-15T09:00:00Z --end-time 2026-04-15T17:00:00Z \
      --tables $TABLE_ID1,$TABLE_ID2          # the --session must reference a session that already exists
    imgr schedule generate --tournament $TOURNAMENT_ID --block $BLOCK_ID \
      --algorithm PRIORITY --match-duration 25 --buffer 5 --min-rest 20
    If the schedule can't fit, the run reports success=false and leaves your grid untouched — widen the block, add a table, or shorten the match format, then run again. Nothing is committed on a failed fit.
  7. Run the matches live.

    Start play and record results as they come in. The Live Console shows what's on, pending, and done. Scores are validated against the sport's format (best-of-N, point target).

    Using imgr
    imgr tournament start $TOURNAMENT_ID
    imgr match list $TOURNAMENT_ID --status in_progress
    imgr match result $MATCH_ID --winner entry1 --scores "11-7,11-9,11-6"
    imgr match result $MATCH_ID --winner entry1 --walkover

    Disputes, walkovers, and no-shows are all handled — Ch. 10.

  8. Finalize, check standings & publish.

    As results land, standings update (ranked by wins, then the tiebreak ladder: head-to-head → games ratio → points ratio). When the event is decided, complete it — the results are finalized and can be exported to federation formats (OTRF).

    Using imgr
    imgr bracket standings $BRACKET_ID       # look up the bracket id via: imgr match list $EVENT_ID
    imgr tournament complete $TOURNAMENT_ID

If you get stuck

iMatch is designed so that a blank screen or a disabled control usually means “not yet, in this order,” not “broken.” If you ever see a raw error code, that's a defect in the software, not a gap in your knowledge. Start with Ch. 15 (Troubleshooting), and keep the full manual within reach on the day.

Learn the concepts interactively

Every stage above — seeding, the draw archetypes, scheduling, scoring, standings, ratings — has a hands-on lesson in the iMatch Academy. Press play and watch the algorithm build the result.